[PATCH] bootm: fix boot failure from compressed image for IH_OS_EFI
kojima.masahisa at socionext.com
kojima.masahisa at socionext.com
Wed Jan 7 01:34:58 CET 2026
Hi Heinrich, Kunihiko,
> -----Original Message-----
> From: Kunihiko Hayashi <hayashi.kunihiko at socionext.com>
> Sent: Friday, December 26, 2025 4:38 PM
> To: u-boot at lists.denx.de; Heinrich Schuchardt <xypron.glpk at gmx.de>
> Cc: Kojima, Masahisa/小島 雅久 <kojima.masahisa at socionext.com>; Ilias
> Apalodimas <ilias.apalodimas at linaro.org>; Simon Glass
> <sjg at chromium.org>; Morimoto, Masashi/森本 真史
> <morimoto.masashi at socionext.com>
> Subject: Re: [PATCH] bootm: fix boot failure from compressed image for
> IH_OS_EFI
>
> On 2025/11/28 20:34, Kunihiko Hayashi wrote:
> > 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?
The current test, test/py/tests/test_efi_fit.py, is able to detect the original problem
of a boot failure with a compressed image, although running the test requires some
configuration changes.
> >>
> >> 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.
>
> It was a bit tricky, however, I have successfully reproduce the test in
> sandbox64.
> (sandbox causes SEGV because of the other issue).
>
> Before executing the test, disable the following definitions:
>
> CONFIG_ACPI
> CONFIG_BINFMT_FDT
>
> This test includes three items with gzip.
>
> # - fdt OFF, initrd OFF, gzip ON
> launch_efi(False, False, True)
> # - fdt ON, initrd OFF, gzip ON
> launch_efi(True, False, True)
> # - fdt OFF, initrd ON, gzip ON
> launch_efi(False, True, True)
>
> "initrd = ON" test item can't be executed.
>
> INITRD Dump
> ===========
> => load
> Load File2 protocol not found
>
> This item uses File2 protocol to read "initrd" file, however,
> test_efi_fit.py uses "bootm" on the FIT image, so there is no chance
> to set FilePathList in EFI.
>
> At this time, all we need to do is launch the compressed EFI app,
> so we can disable "initrd" test item tentatively.
>
> I found an error in this test before applying the patch,
>
> Booting /\home\user\u-boot\build-sandbox64\test-efi-fit.fit
> Not a PE-COFF file
> Loading image failed
> ...
> FAILED test/py/tests/test_efi_fit.py::test_efi_fit_launch - assert 'Hello,
> world'
>
> and found no error after applying the patch.
>
> test/py/tests/test_efi_fit.py .
> [100%]
>
> Tested-by: Kunihiko Hayashi <hayashi.kunihiko at socionext.com>
>
> If this patch is out of patchwork, maybe it should be re-posted with this tag.
This patch fixes the issue. I will resend it as v2.
Thanks,
Masahisa Kojima
>
> Thank you,
>
> ---
> Best Regards
> Kunihiko Hayashi
More information about the U-Boot
mailing list