[PATCH 3/4] mmu-early: remove OP-TEE from the MMU mapping

Rouven Czerwinski r.czerwinski at pengutronix.de
Mon Nov 2 04:30:01 EST 2020


Remove OP-TEE from the CACHED mapping to preserve the XN bit set in the
default mapping. This should ensure that the Cortex-A7 does not try to
speculate into secure world memory.

Signed-off-by: Rouven Czerwinski <r.czerwinski at pengutronix.de>
---
 arch/arm/cpu/mmu-early.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/cpu/mmu-early.c b/arch/arm/cpu/mmu-early.c
index b985aa455f..a480cd7707 100644
--- a/arch/arm/cpu/mmu-early.c
+++ b/arch/arm/cpu/mmu-early.c
@@ -3,6 +3,7 @@
 #include <errno.h>
 #include <linux/sizes.h>
 #include <asm/memory.h>
+#include <asm-generic/memory_layout.h>
 #include <asm/system.h>
 #include <asm/cache.h>
 #include <asm-generic/sections.h>
@@ -55,6 +56,10 @@ void mmu_early_enable(unsigned long membase, unsigned long memsize,
 	 */
 	map_region((unsigned long)_stext, _etext - _stext, PMD_SECT_DEF_UNCACHED);
 
+	/* In case we might early load OP-TEE, remove it from the MMU mapping */
+	if(IS_ENABLED(CONFIG_PBL_OPTEE))
+		memsize -= OPTEE_SIZE;
+
 	/* maps main memory as cachable */
 	map_region(membase, memsize, PMD_SECT_DEF_CACHED);
 
-- 
2.28.0




More information about the barebox mailing list