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]>

