[U-Boot] Support of kernels > 16 MiB on Raspberry Pi

Stephen Warren swarren at wwwdotorg.org
Fri Feb 23 15:14:13 UTC 2018


On 02/22/2018 12:58 PM, Alexander Kurtz wrote:
> Hi!
> 
> I am using U-Boot to boot Debian Buster arm64 (standard kernel with a
> dracut-based initramfs) via an extlinux.conf on my Raspberry Pi 3.
> 
> Recently, the Debian kernel grew beyond 16 MiB:
> 
>      4.13: /boot/vmlinuz-4.13.0-1-arm64 == 16448000 bytes (< 16 MiB) [0]
>      4.14: /boot/vmlinuz-4.14.0-3-arm64 == 17539584 bytes (> 16 MiB) [1]
>      4.15: /boot/vmlinuz-4.15.0-1-arm64 == 17867264 bytes (> 16 MiB) [2]
> 
> https://github.com/u-boot/u-boot/blob/master/include/configs/rpi.h#L129 says:
> 
>      #define ENV_MEM_LAYOUT_SETTINGS \
>      "fdt_high=ffffffff\0" \
>      "initrd_high=ffffffff\0" \
>      "fdt_addr_r=0x00000100\0" \
>      "pxefile_addr_r=0x00100000\0" \
>      "kernel_addr_r=0x01000000\0" \
>      "scriptaddr=0x02000000\0" \
>      "ramdisk_addr_r=0x02100000\0" \
> 
> Am I correct in assuming that this default configuration will break
> with kernels > 16 MiB? The Readme [3] seems to confirm this, but I
> wanted to ask for explicit confirmation here.

Yes, I expect those values are broken for kernels over 16MiB (and 
perhaps even smaller ones too, which may use memory after the compressed 
image for BSS during boot, which could overlap the ramdisk).


More information about the U-Boot mailing list