[PATCH] bootm: fix boot failure from compressed image for IH_OS_EFI
kojima.masahisa at socionext.com
kojima.masahisa at socionext.com
Thu Nov 27 10:17:32 CET 2025
Hi Heinrich,
> -----Original Message-----
> From: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Sent: Friday, November 21, 2025 5:41 PM
> To: Kojima, Masahisa/小島 雅久 <kojima.masahisa at socionext.com>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>; Simon Glass
> <sjg at chromium.org>; Hayashi, Kunihiko/林 邦彦
> <hayashi.kunihiko at socionext.com>; Morimoto, Masashi/森本 真史
> <morimoto.masashi at socionext.com>; u-boot at lists.denx.de
> Subject: Re: [PATCH] bootm: fix boot failure from compressed image for
> IH_OS_EFI
>
> 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.
Apologies for the delayed response. I'll look into this further.
Thanks,
Masahisa Kojima
>
> Best regards
>
> Heinrich
>
> > ---
> > boot/bootm_os.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/boot/bootm_os.c b/boot/bootm_os.c
> > index 88f7c183867..ae20b555f5c 100644
> > --- a/boot/bootm_os.c
> > +++ b/boot/bootm_os.c
> > @@ -509,11 +509,11 @@ static int do_bootm_efi(int flag, struct bootm_info
> *bmi)
> > /* We expect to return */
> > images->os.type = IH_TYPE_STANDALONE;
> >
> > - image_buf = map_sysmem(images->os.image_start,
> images->os.image_len);
> > + image_buf = map_sysmem(images->os.load,
> images->os.image_len);
> >
> > /* Run EFI image */
> > printf("## Transferring control to EFI (at address %08lx) ...\n",
> > - images->os.image_start);
> > + images->os.load);
> > bootstage_mark(BOOTSTAGE_ID_RUN_OS);
> >
> > ret = efi_binary_run(image_buf, images->os.image_len,
More information about the U-Boot
mailing list