summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-zynq/include/mach/zynq-flash-header.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-zynq/include/mach/zynq-flash-header.h')
-rw-r--r--arch/arm/mach-zynq/include/mach/zynq-flash-header.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/mach-zynq/include/mach/zynq-flash-header.h b/arch/arm/mach-zynq/include/mach/zynq-flash-header.h
new file mode 100644
index 0000000000..3b67e55a71
--- /dev/null
+++ b/arch/arm/mach-zynq/include/mach/zynq-flash-header.h
@@ -0,0 +1,38 @@
+#ifndef __MACH_FLASH_HEADER_H
+#define __MACH_FLASH_HEADER_H
+
+#include <asm-generic/sections.h>
+
+#define __flash_header_section __section(.flash_header_0x0)
+#define __ps7reg_entry_section __section(.ps7reg_entry_0x0A0)
+#define __image_len_section __section(.image_len_0x08c0)
+#define FLASH_HEADER_OFFSET 0x0
+#define IMAGE_OFFSET 0x8c0
+
+#define DEST_BASE 0x8c0
+#define FLASH_HEADER_BASE (DEST_BASE + FLASH_HEADER_OFFSET)
+
+struct zynq_reg_entry {
+ __le32 addr;
+ __le32 val;
+};
+
+#define WIDTH_DETECTION_MAGIC 0xAA995566
+#define IMAGE_IDENTIFICATION 0x584C4E58 /* "XLNX" */
+
+struct zynq_flash_header {
+ __le32 width_det;
+ __le32 image_id;
+ __le32 enc_stat;
+ __le32 user;
+ __le32 flash_offset;
+ __le32 length;
+ __le32 res0;
+ __le32 start_of_exec;
+ __le32 total_len;
+ __le32 res1;
+ __le32 checksum;
+ __le32 res2;
+};
+
+#endif /* __MACH_FLASH_HEADER_H */