summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lechner <[email protected]>2026-06-15 14:23:35 -0500
committerDavid Lechner <[email protected]>2026-06-24 10:06:16 -0500
commit6f274732f7960319ea0337e34210d440753ff11e (patch)
treea0a87b5fe1d1bf0d5a07c36f33ae7a6a6dee806c
parent3b7adad0b5223422d9993e08faa9c879c023742d (diff)
arm: mediatek: mt8188: fix gd->bd->bi_dram[0].size
Use board_get_usable_ram_top() instead of get_effective_memsize() to set gd->ram_top to something <= 4GiB. Both board_get_usable_ram_top() and get_effective_memsize() are used to set gd->ram_top in setup_dest_addr(). However, get_effective_memsize() also sets gd->bd->bi_dram[0].size in dram_init_banksize(), which is undesirable. Prior to commit b3467e51e92b ("arm: mediatek: mt8188: drop dram_init_banksize()"), gd->bd->bi_dram[0].size was overridden in a board-specific dram_init_banksize() implementation. When that was removed get_effective_memsize() set gd->bd->bi_dram[0].size to the wrong value because of get_effective_memsize() being overridden in commit 7518e10cd235 ("arm: mediatek: mt8188: fix gd->ram_top limit"). We can just use board_get_usable_ram_top() now to set gd->ram_top to the correct value instead. This is possible now, thanks to LMB_LIMIT_DMA_BELOW_RAM_TOP being set by default for 64-bit Mediatek ARM SoCs. Fixes: b3467e51e92b ("arm: mediatek: mt8188: drop dram_init_banksize()") Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
-rw-r--r--arch/arm/mach-mediatek/mt8188/init.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-mediatek/mt8188/init.c b/arch/arm/mach-mediatek/mt8188/init.c
index a48a41f3b97..1108bc19373 100644
--- a/arch/arm/mach-mediatek/mt8188/init.c
+++ b/arch/arm/mach-mediatek/mt8188/init.c
@@ -20,13 +20,13 @@ int dram_init(void)
return fdtdec_setup_mem_size_base();
}
-phys_size_t get_effective_memsize(void)
+phys_addr_t board_get_usable_ram_top(phys_size_t total_size)
{
/*
* Limit gd->ram_top not exceeding SZ_4G. Because some peripherals like
* MMC requires DMA buffer allocated below SZ_4G.
*/
- return min(SZ_4G - gd->ram_base, gd->ram_size);
+ return min(gd->ram_top, SZ_4G);
}
void reset_cpu(void)