summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/include/mach/imx-flash-header.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/include/mach/imx-flash-header.h')
-rw-r--r--arch/arm/mach-imx/include/mach/imx-flash-header.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/include/mach/imx-flash-header.h b/arch/arm/mach-imx/include/mach/imx-flash-header.h
index b8f51767de..874426252a 100644
--- a/arch/arm/mach-imx/include/mach/imx-flash-header.h
+++ b/arch/arm/mach-imx/include/mach/imx-flash-header.h
@@ -49,6 +49,11 @@ struct imx_dcd_entry {
unsigned long val;
};
+struct imx_dcd_v2_entry {
+ __be32 addr;
+ __be32 val;
+};
+
#define DCD_BARKER 0xb17219e9
struct imx_rsa_public_key {
@@ -73,4 +78,51 @@ struct imx_flash_header {
unsigned long dcd_block_len;
};
+#define IVT_HEADER_TAG 0xd1
+#define IVT_VERSION 0x40
+
+#define DCD_HEADER_TAG 0xd2
+#define DCD_VERSION 0x40
+
+#define DCD_COMMAND_WRITE_TAG 0xcc
+#define DCD_COMMAND_WRITE_PARAM 0x04
+
+struct imx_ivt_header {
+ uint8_t tag;
+ __be16 length;
+ uint8_t version;
+} __attribute__((packed));
+
+struct imx_dcd_command {
+ uint8_t tag;
+ __be16 length;
+ uint8_t param;
+} __attribute__((packed));
+
+struct imx_dcd {
+ struct imx_ivt_header header;
+ struct imx_dcd_command command;
+};
+
+struct imx_boot_data {
+ uint32_t start;
+ uint32_t size;
+ uint32_t plugin;
+};
+
+struct imx_flash_header_v2 {
+ struct imx_ivt_header header;
+
+ uint32_t entry;
+ uint32_t reserved1;
+ uint32_t dcd_ptr;
+ uint32_t boot_data_ptr;
+ uint32_t self;
+ uint32_t csf;
+ uint32_t reserved2;
+
+ struct imx_boot_data boot_data;
+ struct imx_dcd dcd;
+};
+
#endif /* __MACH_FLASH_HEADER_H */