[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