On 29 September 2017 at 21:26, Tom Rini trini@konsulko.com wrote:
On Fri, Sep 29, 2017 at 02:06:21AM +0300, Riku Voipio wrote:
[snip]
On arm64, Kernel doesn't self-decompress. The bootloaders are stringly recommended to support decompressing kernel images. It's optional in grub, make sure your grub does. At least iPXE and u-boot don't support booting Image.gz on arm64, and should be fixed.
Not strictly true. We do expect that if you're loading in a compressed something that you uncompress it then boot it. I assume part of the reason that Linux didn't go for self-decompression this time is the "my goodness, it's tricky to get here's where we are, here's what else is in the system, lets not stomp anything and get ourself to where we need to be" is in fact tricky.
Thanks for the clarification. The kernel Documentation/arm64/booting.txt is vague in reasoning, but you are right it's tricky. Kernel developers assume the bootloader is better equipped to know where in memory to decompress than a early kernel decompress loop.
That said, patches to check for ${VALID_COMPRESSION_HEADER}, uncompress a chunk, confirm valid Image header, and uncompress to where it needs to reside would be welcome.
While the unzip command hint is good, from cross-distro PoV I think this kind of transparent decompression is needed to make the syslinux bootmenu command "just work".
Riku