[QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B

Jian-Hong Pan jhp at endlessos.org
Thu Jan 28 09:54:03 CET 2021


Hi,

We have tried to boot the Ubuntu kernel 5.10 [1] (arm64) with U-Boot
2020.10 on RPi 4B.  That includes the source code and build config.
The kernel's build config enables not only Broadcom chips, but also many
other platforms: Amlogic, MediaTek, Realtek, Rockchip ... by default.

Here is the output from U-Boot:

U-Boot 2020.10 (Jan 26 2021 - 15:28:45 +0800)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03111)
MMC:   mmcnr at 7e300000: 1, emmc2 at 7e340000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default
environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   eth0: genet at 7d580000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
Found U-Boot script /boot/boot.scr
1847 bytes read in 19 ms (94.7 KiB/s)
## Executing script at 02400000
Load u-Boot environment ... from mmc 0:2
622 bytes read in 24 ms (24.4 KiB/s)
Load device tree ...
25693 bytes read in 30 ms (835.9 KiB/s)
fdt_addr_r @  0x02600000 , size= 645d
Load kernel and unzip it ...
13013555 bytes read in 574 ms (21.6 MiB/s)
Uncompressed size: 38742528 = 0x24F2A00
kernel_addr_r @  0x00080000 , size= 24f2a00
Load RAM disk ...
54360540 bytes read in 2298 ms (22.6 MiB/s)
ramdisk_addr_r @  0x02700000 , size= 33d79dc
Boot ...
Moving Image from 0x80000 to 0x200000, end=2820000
ERROR: RD image overlaps OS image (OS=0x200000..0x2820000)
SCRIPT FAILED: continuing...
Card did not respond to voltage select!
genet at 7d580000 Waiting for PHY auto negotiation to complete........

It shows error: "RD image overlaps OS image (OS=0x200000..0x2820000)"

So, I calculated the memory address and space:

0x200000 (kernel start address) + 0x24F2A00 (kernel size) = 0x26F2A00 <
2820000 (kernel end), but > 0x2700000 (ramdisk start address) & > 0x2600000
(FDT start address)

The kernel image size 0x24F2A00 bytes is too fat to sit in the memory space
prepared by U-Boot and overlaps ramdisk and FDT's memory spaces.
It is more than 36.9MB, which is over 36MB mentioned in U-Boot's comment
[2].

We understand this can be fixed by a workaround like tuning/reducing the
kernel's build config.  However, is it possible to have another way to
resolve this problem?

[1]
https://kernel.ubuntu.com/git/ubuntu/unstable.git/tree/?h=Ubuntu-5.10-5.10.0-10.11
[2]
https://github.com/u-boot/u-boot/blob/v2021.01/include/configs/rpi.h#L140

Jain-Hong Pan


More information about the U-Boot mailing list