| /* |
| * (C) Copyright 2011 |
| * Heiko Schocher, DENX Software Engineering, hs@denx.de. |
| * |
| * Vased on: |
| * (C) Copyright 2009 |
| * Stefano Babic, DENX Software Engineering, sbabic@denx.de. |
| * |
| * SPDX-License-Identifier: GPL-2.0+ |
| */ |
| |
| #ifndef _UBLIMAGE_H_ |
| #define _UBLIMAGE_H_ |
| |
| enum ublimage_cmd { |
| CMD_INVALID, |
| CMD_BOOT_MODE, |
| CMD_ENTRY, |
| CMD_PAGE, |
| CMD_ST_BLOCK, |
| CMD_ST_PAGE, |
| CMD_LD_ADDR |
| }; |
| |
| enum ublimage_fld_types { |
| CFG_INVALID = -1, |
| CFG_COMMAND, |
| CFG_REG_VALUE |
| }; |
| |
| /* |
| * from sprufg5a.pdf Table 110 |
| * Used by RBL when doing NAND boot |
| */ |
| #define UBL_MAGIC_BASE (0xA1ACED00) |
| /* Safe boot mode */ |
| #define UBL_MAGIC_SAFE (0x00) |
| /* DMA boot mode */ |
| #define UBL_MAGIC_DMA (0x11) |
| /* I Cache boot mode */ |
| #define UBL_MAGIC_IC (0x22) |
| /* Fast EMIF boot mode */ |
| #define UBL_MAGIC_FAST (0x33) |
| /* DMA + ICache boot mode */ |
| #define UBL_MAGIC_DMA_IC (0x44) |
| /* DMA + ICache + Fast EMIF boot mode */ |
| #define UBL_MAGIC_DMA_IC_FAST (0x55) |
| |
| /* Define max UBL image size */ |
| #define UBL_IMAGE_SIZE (0x00003800u) |
| |
| /* one NAND block */ |
| #define UBL_BLOCK_SIZE 2048 |
| |
| /* from sprufg5a.pdf Table 109 */ |
| struct ubl_header { |
| uint32_t magic; /* Magic Number, see UBL_* defines */ |
| uint32_t entry; /* entry point address for bootloader */ |
| uint32_t pages; /* number of pages (size of bootloader) */ |
| uint32_t block; /* |
| * blocknumber where user bootloader is |
| * present |
| */ |
| uint32_t page; /* |
| * page number where user bootloader is |
| * present. |
| */ |
| uint32_t pll_m; /* |
| * PLL setting -Multiplier (only valid if |
| * Magic Number indicates PLL enable). |
| */ |
| uint32_t pll_n; /* |
| * PLL setting -Divider (only valid if |
| * Magic Number indicates PLL enable). |
| */ |
| uint32_t emif; /* |
| * fast EMIF setting (only valid if |
| * Magic Number indicates fast EMIF boot). |
| */ |
| /* to fit in one nand block */ |
| unsigned char res[UBL_BLOCK_SIZE - 8 * 4]; |
| }; |
| |
| #endif /* _UBLIMAGE_H_ */ |