Hi Heinrich,

> -----Original Message-----
> From: Heinrich Schuchardt <[email protected]>
> Sent: Friday, November 21, 2025 5:41 PM
> To: Kojima, Masahisa/小島 雅久 <[email protected]>
> Cc: Ilias Apalodimas <[email protected]>; Simon Glass
> <[email protected]>; Hayashi, Kunihiko/林 邦彦
> <[email protected]>; Morimoto, Masashi/森本 真史
> <[email protected]>; [email protected]
> 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 <[email protected]>
> 
> 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,

Reply via email to