[PATCH] bootm: fix boot failure from compressed image for IH_OS_EFI

Kunihiko Hayashi hayashi.kunihiko at socionext.com
Fri Nov 28 12:34:48 CET 2025


Hi Heinrich,

On 2025/11/21 17:41, Heinrich Schuchardt wrote:
> On 11/21/25 00:38, Masahisa Kojima wrote:
>> The bootm command can handle the compressed image, but current
>> code fails to boot from it.
>>
>>       ## Loading kernel (any) from FIT Image at a8000000 ...
>>       <snip>
>>            Compression:  gzip compressed
>>            Data Start:   0xa80000d4
>>            Data Size:    10114520 Bytes = 9.6 MiB
>>            Architecture: AArch64
>>            OS:           EFI Firmware
>>            Load Address: 0x90000000
>>
>>       <snip>
>>          Uncompressing Kernel Image to 90000000
>>       ## Transferring control to EFI (at address a80000d4) ...
>>       Booting <NULL>
>>       Not a PE-COFF file
>>       Loading image failed
>>
>> To take care of the compressed image, the load address needs
>> to be passed instead of the original compressed image address.
>>
>> Signed-off-by: Masahisa Kojima <kojima.masahisa at socionext.com>
> 
> Hello Masahisa,
> 
> Thank you for diving into this problem.
> 
> In test/py/tests/test_efi_fit.py we are testing on the sandbox with and
> without compression. Why would the problem not show up in the test?
> 
> 539         # Run tests
> 540         # - fdt OFF, initrd OFF, gzip OFF
> 541         launch_efi(False, False, False)
> 542         # - fdt ON, initrd OFF, gzip OFF
> 543         launch_efi(True, False, False)
> 544         # - fdt OFF, initrd ON, gzip OFF
> 545         launch_efi(False, True, False)
> 546
> 547         if is_sandbox:
> 548             # - fdt OFF, initrd OFF, gzip ON
> 549             launch_efi(False, False, True)
> 550             # - fdt ON, initrd OFF, gzip ON
> 551             launch_efi(True, False, True)
> 552             # - fdt OFF, initrd ON, gzip ON
> 553             launch_efi(False, True, True)
> 
> The test should be corrected to show you issue.

Can you show us how to run it with sandbox?

To understand the situation, I tried running the test using v2025.10.

     ./test/py/test.py --bd sandbox   --build  -k efi_fit
     ./test/py/test.py --bd sandbox64 --build  -k efi_fit

The test was skipped as follows:
     test/py/tests/test_efi_fit.py::test_efi_fit_launch SKIPPED (.config feature "generate_acpi_table" enabled)

After disabling ACPI, the test failed with the following error
and could not be reproduced.

     => /u-boot
     Bloblist at 100 not found (err=-2)

There might be differences in the environment or procedure,
so please let us know if you have any tips.

Thank you,

---
Best Regards
Kunihiko Hayashi


More information about the U-Boot mailing list