| #ifndef __MACH_FLASH_HEADER_H |
| #define __MACH_FLASH_HEADER_H |
| |
| #define __flash_header_start __section(.flash_header_start) |
| |
| #if defined(CONFIG_ARCH_IMX_INTERNAL_BOOT_NOR) |
| #define __flash_header_section __section(.flash_header_0x1000) |
| #define __dcd_entry_section __section(.dcd_entry_0x1000) |
| #define __image_len_section __section(.image_len_0x1000) |
| #define FLASH_HEADER_OFFSET 0x1000 |
| #elif defined(CONFIG_ARCH_IMX_INTERNAL_BOOT_ONENAND) |
| #define __flash_header_section __section(.flash_header_0x0100) |
| #define __dcd_entry_section __section(.dcd_entry_0x0100) |
| #define __image_len_section __section(.image_len_0x0100) |
| #define FLASH_HEADER_OFFSET 0x0100 |
| #else |
| #define __flash_header_section __section(.flash_header_0x0400) |
| #define __dcd_entry_section __section(.dcd_entry_0x0400) |
| #define __image_len_section __section(.image_len_0x0400) |
| #define FLASH_HEADER_OFFSET 0x0400 |
| #endif |
| |
| #define __flash_header_0x1000 __section(.flash_header_0x1000) |
| #define __dcd_entry_0x1000 __section(.dcd_entry_0x1000) |
| #define __image_len_0x1000 __section(.image_len_0x1000) |
| |
| #define __flash_header_0x0100 __section(.flash_header_0x0100) |
| #define __dcd_entry_0x0100 __section(.dcd_entry_0x0100) |
| #define __image_len_0x0100 __section(.image_len_0x0100) |
| |
| #define __flash_header_0x0400 __section(.flash_header_0x0400) |
| #define __dcd_entry_0x0400 __section(.dcd_entry_0x0400) |
| #define __image_len_0x0400 __section(.image_len_0x0400) |
| |
| /* |
| * NOR is not automatically copied anywhere by the boot ROM |
| */ |
| #if defined (CONFIG_ARCH_IMX_INTERNAL_BOOT_NOR) |
| #define DEST_BASE IMX_CS0_BASE |
| #else |
| #define DEST_BASE TEXT_BASE |
| #endif |
| |
| #define FLASH_HEADER_BASE (DEST_BASE + FLASH_HEADER_OFFSET) |
| |
| struct imx_dcd_entry { |
| unsigned long ptr_type; |
| unsigned long addr; |
| unsigned long val; |
| }; |
| |
| #define DCD_BARKER 0xb17219e9 |
| |
| struct imx_rsa_public_key { |
| unsigned char rsa_exponent[4]; |
| unsigned char *rsa_modululs; |
| unsigned short *exponent_size; |
| unsigned short modulus_size; |
| unsigned char init_flag; |
| }; |
| |
| #define APP_CODE_BARKER 0x000000b1 |
| |
| struct imx_flash_header { |
| unsigned long app_code_jump_vector; |
| unsigned long app_code_barker; |
| unsigned long app_code_csf; |
| unsigned long dcd_ptr_ptr; |
| unsigned long super_root_key; |
| unsigned long dcd; |
| unsigned long app_dest; |
| unsigned long dcd_barker; |
| unsigned long dcd_block_len; |
| }; |
| |
| #endif /* __MACH_FLASH_HEADER_H */ |