summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Allred <d-allred@ti.com>2016-09-02 00:40:22 -0500
committerTom Rini <trini@konsulko.com>2016-10-02 08:09:56 -0400
commit501f0ef304549edf41bbcec0e6da008d92cbdf0c (patch)
tree2b6b7528a589607aed3745c8c2782ed5fe0b3ced
parent6d132b2b09b476131855b9350ccad360e065d3fc (diff)
downloadu-boot-imx-501f0ef304549edf41bbcec0e6da008d92cbdf0c.zip
u-boot-imx-501f0ef304549edf41bbcec0e6da008d92cbdf0c.tar.gz
u-boot-imx-501f0ef304549edf41bbcec0e6da008d92cbdf0c.tar.bz2
ARM: DRA7: Add secure emif setup calls
After EMIF DRAM is configured, but before it is used, calls are made on secure devices to reserve any configured memory region needed by the secure world and then to lock the EMIF firewall configuration. If any other firewall configuration needs to be applied, it must happen before the lock call. Signed-off-by: Daniel Allred <d-allred@ti.com>
-rw-r--r--arch/arm/cpu/armv7/omap-common/emif-common.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/emif-common.c b/arch/arm/cpu/armv7/omap-common/emif-common.c
index 2b79010..b26984e 100644
--- a/arch/arm/cpu/armv7/omap-common/emif-common.c
+++ b/arch/arm/cpu/armv7/omap-common/emif-common.c
@@ -14,6 +14,7 @@
#include <asm/arch/clock.h>
#include <asm/arch/sys_proto.h>
#include <asm/omap_common.h>
+#include <asm/omap_sec_common.h>
#include <asm/utils.h>
#include <linux/compiler.h>
@@ -1477,6 +1478,20 @@ void sdram_init(void)
debug("get_ram_size() successful");
}
+#if defined(CONFIG_TI_SECURE_DEVICE)
+ /*
+ * On HS devices, do static EMIF firewall configuration
+ * but only do it if not already running in SDRAM
+ */
+ if (!in_sdram)
+ if (0 != secure_emif_reserve())
+ hang();
+
+ /* On HS devices, ensure static EMIF firewall APIs are locked */
+ if (0 != secure_emif_firewall_lock())
+ hang();
+#endif
+
if (sdram_type == EMIF_SDRAM_TYPE_DDR3 &&
(!in_sdram && !warm_reset()) && (!is_dra7xx())) {
if (emif1_enabled)