
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.