[PATCH v3 2/3] rockchip: sdram: Limit usable ram_top to max 4G
Jonas Karlman
jonas at kwiboo.se
Thu Jan 30 23:07:12 CET 2025
U-Boot only works correctly when it uses RAM below the 4G address
boundary on Rockchip SoCs. Limit usable gd->ram_top to max 4G.
Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
---
v3: Use u64 to fix 32-bit overflow
v2: New patch
---
arch/arm/mach-rockchip/sdram.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/sdram.c b/arch/arm/mach-rockchip/sdram.c
index 96a791bda2c3..4b8b6b9da7c5 100644
--- a/arch/arm/mach-rockchip/sdram.c
+++ b/arch/arm/mach-rockchip/sdram.c
@@ -487,7 +487,8 @@ int dram_init(void)
phys_addr_t board_get_usable_ram_top(phys_size_t total_size)
{
- unsigned long top = CFG_SYS_SDRAM_BASE + SDRAM_MAX_SIZE;
+ /* Make sure U-Boot only uses the space below the 4G address boundary */
+ u64 top = min_t(u64, CFG_SYS_SDRAM_BASE + SDRAM_MAX_SIZE, SZ_4G);
return (gd->ram_top > top) ? top : gd->ram_top;
}
--
2.48.1
More information about the U-Boot
mailing list