
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Simon Glass Sent: Tuesday, December 10, 2024 4:55 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Tom Rini trini@konsulko.com; Stephen Warren swarren@wwwdotorg.org; Stephen Warren swarren@nvidia.com; Matthias Brugger mbrugger@suse.com; Simon Glass sjg@chromium.org; Peter Robinson pbrobinson@gmail.com Subject: [PATCH v3 4/5] rpi: Update environment to support booti and large initrd
The existing values don't provide for decompressing an arm64 boot-image. Add those values and move things apart a bit so that a 50MB kernel can be accommodated.
Signed-off-by: Simon Glass sjg@chromium.org
Reviewed-by: Jaehoon Chung jh80.chung@samsung.com Tested-by: Jaehoon Chung jh80.chung@samsung.com
Changes in v3:
- Update the comment block with the new values, including compression
board/raspberrypi/rpi/rpi.env | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env index 9b9fad82828..9ac9d6768ca 100644 --- a/board/raspberrypi/rpi/rpi.env +++ b/board/raspberrypi/rpi/rpi.env @@ -48,28 +48,33 @@ dfu_alt_info+=zImage fat 0 1
- scriptaddr and pxefile_addr_r can be pretty much anywhere that doesn't
- conflict with something else. Reserving 1M for each of them at
- 0x02400000-0x02500000 and 0x02500000-0x02600000 should be plenty.
- 0x05400000-0x05500000 and 0x05500000-0x05600000 should be plenty.
- On ARM, both the DTB and any possible initrd must be loaded such that they
- fit inside the lowmem mapping in Linux. In practice, this usually means not
- more than ~700M away from the start of the kernel image but this number can
- be larger OR smaller depending on e.g. the 'vmalloc=xxxM' command line
- parameter given to the kernel. So reserving memory from low to high
- satisfies this constraint again. Reserving 1M at 0x02600000-0x02700000 for
- the DTB leaves rest of the free RAM to the initrd starting at 0x02700000.
- Even with the smallest possible CPU-GPU memory split of the CPU getting
- only 64M, the remaining 25M starting at 0x02700000 should allow quite
- large initrds before they start colliding with U-Boot.
- satisfies this constraint again. Reserving 1M at 0x05600000-0x05700000 for
- the DTB leaves rest of the free RAM to the initrd starting at 0x05700000.
- This means that the board must have at least 128MB of RAM available to
- U-Boot, more if the initrd is large.
- Limit bootm_size to 512MB so that all boot images stay within the bottom
- For compressed kernels, the maximum size is just under 32MB, with an area for
- decompression at 0x02000000 with space for 52MB, which is plenty for current
- kernels.
*/
- limit bootm_size to 512MB so that all boot images stay within the bottom
- 512MB of memory
bootm_size=0x20000000
kernel_addr_r=0x00080000 -scriptaddr=0x02400000 -pxefile_addr_r=0x02500000 -fdt_addr_r=0x02600000 -ramdisk_addr_r=0x02700000 +kernel_comp_addr_r=0x02000000 +kernel_comp_size=0x03400000 +scriptaddr=0x05400000 +pxefile_addr_r=0x05500000 +fdt_addr_r=0x05600000 +ramdisk_addr_r=0x05700000
boot_targets=mmc usb pxe dhcp
2.34.1