summaryrefslogtreecommitdiffstats
path: root/include/asm-generic
diff options
context:
space:
mode:
authorYork Sun <yorksun@freescale.com>2015-12-04 11:57:07 -0800
committerYork Sun <yorksun@freescale.com>2015-12-15 08:57:32 +0800
commite81495224f732f17ae6f379baf23b90cd1d5cb5f (patch)
treef0e798cad86d64d6c2978307c94299f7f30eb208 /include/asm-generic
parent000f4e7686f4291fbd74d8920b586caf10f9241f (diff)
downloadblackbird-obmc-uboot-e81495224f732f17ae6f379baf23b90cd1d5cb5f.tar.gz
blackbird-obmc-uboot-e81495224f732f17ae6f379baf23b90cd1d5cb5f.zip
Reserve secure memory
Secure memory is at the end of memory, separated and reserved from OS, tracked by gd->secure_ram. Secure memory can host MMU tables, security monitor, etc. This is different from PRAM used to reserve private memory. PRAM offers memory at the top of u-boot memory, not necessarily the real end of memory for systems with very large DDR. Using the end of memory simplifies MMU setup and avoid memory fragmentation. "bdinfo" command shows gd->secure_ram value if this memory is marked as secured. Signed-off-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'include/asm-generic')
-rw-r--r--include/asm-generic/global_data.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index 1abdcaa6b7..5d8b043f14 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -59,6 +59,20 @@ typedef struct global_data {
unsigned long relocaddr; /* Start address of U-Boot in RAM */
phys_size_t ram_size; /* RAM size */
+#ifdef CONFIG_SYS_MEM_RESERVE_SECURE
+#define MEM_RESERVE_SECURE_SECURED 0x1
+#define MEM_RESERVE_SECURE_MAINTAINED 0x2
+#define MEM_RESERVE_SECURE_ADDR_MASK (~0x3)
+ /*
+ * Secure memory addr
+ * This variable needs maintenance if the RAM base is not zero,
+ * or if RAM splits into non-consecutive banks. It also has a
+ * flag indicating the secure memory is marked as secure by MMU.
+ * Flags used: 0x1 secured
+ * 0x2 maintained
+ */
+ phys_addr_t secure_ram;
+#endif
unsigned long mon_len; /* monitor len */
unsigned long irq_sp; /* irq stack pointer */
unsigned long start_addr_sp; /* start_addr_stackpointer */
OpenPOWER on IntegriCloud