mem_map_from_dram_banks calls fdtdec_setup_memory_banksize to setup the
dram banks though that is expected to be done by dram_init_banksize as
part of board_r sequence.

This has the side effect of modifying gd->bd->bi_dram as well, therefore
this patch removes the call and updates spl_enable_cache for K3 to call
dram_init_banksize.

Signed-off-by: Anshul Dalal <[email protected]>
Reported-by: Francesco Dolcini <[email protected]>
Closes: https://lore.kernel.org/u-boot/20251027165225.GA71553@francesco-nb/
Fixes: fe2647f2a0d4 ("arm: armv8: mmu: add mem_map_from_dram_banks")
---
 arch/arm/cpu/armv8/cache_v8.c | 6 ------
 arch/arm/mach-k3/common.c     | 1 +
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
index 
672ec16d4834be501d5bfa343af9537aa9285252..0309da6d3971af6f2a349ce0760507765da9af4f
 100644
--- a/arch/arm/cpu/armv8/cache_v8.c
+++ b/arch/arm/cpu/armv8/cache_v8.c
@@ -61,12 +61,6 @@ static int get_effective_el(void)
 int mem_map_from_dram_banks(unsigned int index, unsigned int len, u64 attrs)
 {
        unsigned int i;
-       int ret = fdtdec_setup_memory_banksize();
-
-       if (ret) {
-               log_err("%s: Failed to setup dram banks\n", __func__);
-               return ret;
-       }
 
        if (index + CONFIG_NR_DRAM_BANKS >= len) {
                log_err("%s: Provided mem_map array has insufficient size for 
DRAM entries\n",
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
index 
7c06764af8256b7fd27f8e7f208a597b1b91652b..82a31b5178b9b5abdf7eae68cbbd22fe2a86dbee
 100644
--- a/arch/arm/mach-k3/common.c
+++ b/arch/arm/mach-k3/common.c
@@ -311,6 +311,7 @@ void spl_enable_cache(void)
        int ret = 0;
 
        dram_init();
+       dram_init_banksize();
 
        /* reserve TLB table */
        gd->arch.tlb_size = PGTABLE_SIZE;

---
base-commit: 08bf42e1faa4411cd347c2e370da790a0116e318
change-id: 20251031-k3_fix_mmu-bd62988ed62d

Best regards,
-- 
Anshul Dalal <[email protected]>

Reply via email to