]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
am57xx: restore bootm_size for ARMv7 HighMem constraint
authorMoteen Shah <m-shah@ti.com>
Wed, 20 May 2026 11:00:32 +0000 (16:30 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 25 May 2026 15:29:30 +0000 (09:29 -0600)
babae80169d removed bootm_size from ti_common.env to allow K3 boards
to process images larger than 256MB, but preserved it in
ti_armv7_keystone2.env for ARMv7 Keystone2 boards. AM57xx (also ARMv7)
was not covered by that preservation.

Without bootm_size, env_get_bootm_size() falls back to gd->ram_size,
causing initrd_high to be computed as the top of all RAM. On ARM32
boards with more RAM than the DMA zone (e.g. AM572x IDK with 2GiB),
this places the ramdisk above 0xafe00000 (HighMem), which is not
directly accessible by the kernel after MMU setup, causing a silent
crash.

With bootm_size=0x10000000, initrd_high is constrained to
0x80000000 + 0x10000000 = 0x90000000, keeping the ramdisk in the
DMA zone and allowing the kernel to access it correctly.

Fixes: babae80169dd ("include: env: ti_common: remove bootm_size")
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Moteen Shah <m-shah@ti.com>
board/ti/am57xx/am57xx.env

index a7cbbced099bb4f96662a980006550074c6f335b..4f712c5575ab5a46a6222b8cd9df4f6457fc940a 100644 (file)
@@ -2,6 +2,7 @@
 #include <env/ti/mmc.env>
 #include <env/ti/dfu.env>
 
+bootm_size=0x10000000
 bootpart=0:2
 bootdir=/boot
 get_name_kern=