[PATCH v2] arch: arm: imx: esdctl: limit ram to 1GB on imx93 in case OPTEE is enabled

Michael Grzeschik m.grzeschik at pengutronix.de
Mon Jun 23 15:00:09 PDT 2025


In MX93 the ELE (Edge Lock Enclave) is limited to communicate with
messages addressed under 1.5GB. The ELE can not reach the memory between
(0xE0000000-0xFFFFFFFF).

So we limit the usable memory in case OPTEE is used.

Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>

---
v1 -> v2: moved the limitation to be active in imx93_barebox_entry only
---
 arch/arm/mach-imx/esdctl.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c
index 4b67b52ca45..c79d7c29245 100644
--- a/arch/arm/mach-imx/esdctl.c
+++ b/arch/arm/mach-imx/esdctl.c
@@ -1046,9 +1046,20 @@ void __noreturn imx7d_barebox_entry(void *boarddata)
 
 void __noreturn imx93_barebox_entry(void *boarddata)
 {
+	resource_size_t mem = 0;
+
 	imx93_init_scratch_space(false);
 	optee_set_membase(imx_scratch_get_optee_hdr());
 
-	barebox_arm_entry(MX9_DDR_CSD1_BASE_ADDR,
-			  imx9_ddrc_sdram_size(), boarddata);
+	mem = imx9_ddrc_sdram_size();
+	/* In MX93 the ELE is limited to comunicate with messages
+	 * under 1.5GB address space. This limits the overal memory
+	 * to be 1GB in case OPTEE is used.
+	 */
+	if (IS_ENABLED(CONFIG_PBL_OPTEE)) {
+	        if (mem > 0x40000000)
+	                mem = 0x40000000;
+	}
+
+	barebox_arm_entry(MX9_DDR_CSD1_BASE_ADDR, mem, boarddata);
 }
-- 
2.39.5




More information about the barebox mailing list