From: Ye Li <[email protected]>

The default u-boot early MMU table address is at CFG_SYS_SDRAM_BASE.
The same address is used as alias target on Toradex's iMX95 boards in
RAM-size probe. When a probe address aliases that location, the test
temporarily overwrites an entry in the active page tables.

To avoid such overlap, move u-boot early MMU table to top 2MB of first
64MB DDR.

Signed-off-by: Ye Li <[email protected]>
---
Changes in v2:
 - no change

 arch/arm/mach-imx/imx9/scmi/soc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c 
b/arch/arm/mach-imx/imx9/scmi/soc.c
index 22f9c9d045b..fa6b9a0e53d 100644
--- a/arch/arm/mach-imx/imx9/scmi/soc.c
+++ b/arch/arm/mach-imx/imx9/scmi/soc.c
@@ -613,9 +613,12 @@ __weak unsigned long board_spl_mmu_tlb_base(void)
 #endif
 }
 
+/* Uboot early MMU only map first 64MB DDR before DM init.
+ * Set default early MMU table at top 2MB of first 64MB DDR
+ */
 __weak unsigned long board_early_mmu_tlb_base(void)
 {
-       return CFG_SYS_SDRAM_BASE;
+       return CFG_SYS_SDRAM_BASE + SZ_64M - SZ_2M;
 }
 
 /*
-- 
2.50.1

Reply via email to