[RK3568] Default kernel_comp_addr_r can be too narrow

MichaIng micha at dietpi.com
Wed Nov 29 19:47:20 CET 2023


Hey guys,

for our PINE64 Quartz64 images, I am working on moving from an older 
U-Boot fork (by Peter Geis', but rebased until v2022.07: 
https://gitlab.com/MichaIng/u-boot) to upstream U-Boot.

But I was running into an error on boot:
ERROR: Did not find a cmdline Flattened Device Tree

It turned out to be the different kernel_comp_addr_r:
- I implemented it at 0x10000000, hence after fdt_addr_r: 
https://gitlab.com/MichaIng/u-boot/-/commit/170514b
- Upstream it is 0x08000000, hence before fdt_addr_r: 
https://github.com/u-boot/u-boot/commit/e1962a9

I am actually not sure why 0x08000000 (128M) causes an issue, since with 
kernel_comp_size=0x2000000 (32M) it should end just before fdt_addr_r 
(128M+32M=160M<161M). But "setenv kernel_comp_addr_r 0x10000000" was all 
it took to successfully boot the image.

If someone wants to try replicating it: Our compressed Linux image is 
13M, the decompressed one 35M.

In case the smallest RAM sizes of RK3568 SBCs are 512M or more, it 
should be safe to move the default address to 256M. In my fork we also 
allow a compressed kernel size of 128M, but I doubt that more than 32M 
would ever be required (not in our case). I can open a PR with this 
change, but probably I am interpreting something wrong, or it is not 
wanted for other reasons. Just let me know.

-- 
Best regards,

Micha (aka MichaIng)
DietPi project lead


More information about the U-Boot mailing list