meta-digi/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0005-imx8mm-set-BL32_BASE-a...

68 lines
2.6 KiB
Diff

From: Javier Viguera <javier.viguera@digi.com>
Date: Fri, 11 Apr 2025 15:01:33 +0200
Subject: [PATCH] imx8mm: set BL32_BASE and map high DRAM for ccimx8mm support
Set BL32_BASE to 0x7e000000 (32MiB below the first gigabyte of DDR) to
align with the OP-TEE layout used across ccimx8mm variants. Add support
for high-memory DDR by defining and mapping an extra 1GB mem at 0x100000000
to support the 4GB variant.
Upstream-Status: Inappropriate [DEY specific]
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c | 1 +
plat/imx/imx8m/imx8mm/include/platform_def.h | 6 ++++--
plat/imx/imx8m/imx8mm/platform.mk | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c b/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
index 388deae2b0e8..76f8a34d12fb 100644
--- a/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
+++ b/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
@@ -51,6 +51,7 @@ static const mmap_region_t imx_mmap[] = {
MAP_REGION_FLAT(IMX_ROM_BASE, IMX_ROM_SIZE, MT_MEMORY | MT_RO), /* ROM code */
#ifndef PLAT_XLAT_TABLES_DYNAMIC
MAP_REGION_FLAT(IMX_DRAM_BASE, IMX_DRAM_SIZE, MT_MEMORY | MT_RW | MT_NS), /* DRAM */
+ MAP_REGION_FLAT(IMX_DRAM2_BASE, IMX_DRAM2_SIZE, MT_MEMORY | MT_RW | MT_NS), /* DRAM */
#endif
MAP_REGION_FLAT(IMX_TCM_BASE, IMX_TCM_SIZE, MT_MEMORY | MT_RW | MT_NS), /* TCM */
{0},
diff --git a/plat/imx/imx8m/imx8mm/include/platform_def.h b/plat/imx/imx8m/imx8mm/include/platform_def.h
index e721664087f8..44926451b2a2 100644
--- a/plat/imx/imx8m/imx8mm/include/platform_def.h
+++ b/plat/imx/imx8m/imx8mm/include/platform_def.h
@@ -69,8 +69,8 @@
#define PLAT_GICD_BASE U(0x38800000)
#define PLAT_GICR_BASE U(0x38880000)
-#define PLAT_VIRT_ADDR_SPACE_SIZE (1ull << 32)
-#define PLAT_PHY_ADDR_SPACE_SIZE (1ull << 32)
+#define PLAT_VIRT_ADDR_SPACE_SIZE (1ull << 34)
+#define PLAT_PHY_ADDR_SPACE_SIZE (1ull << 34)
#ifdef SPD_trusty
#define MAX_XLAT_TABLES 10
@@ -125,6 +125,8 @@
#define IMX_CAAM_RAM_SIZE U(0x10000)
#define IMX_DRAM_BASE U(0x40000000)
#define IMX_DRAM_SIZE U(0xc0000000)
+#define IMX_DRAM2_BASE U(0x100000000)
+#define IMX_DRAM2_SIZE U(0x40000000)
#define IMX_TCM_BASE U(0x7E0000)
#define IMX_TCM_SIZE U(0x40000)
diff --git a/plat/imx/imx8m/imx8mm/platform.mk b/plat/imx/imx8m/imx8mm/platform.mk
index 1de30f40f397..4fe3cca34065 100644
--- a/plat/imx/imx8m/imx8mm/platform.mk
+++ b/plat/imx/imx8m/imx8mm/platform.mk
@@ -166,7 +166,7 @@ ERRATA_A53_835769 := 1
ERRATA_A53_843419 := 1
ERRATA_A53_855873 := 1
-BL32_BASE ?= 0xbe000000
+BL32_BASE ?= 0x7e000000
$(eval $(call add_define,BL32_BASE))
BL32_SIZE ?= 0x2000000