diff options
| author | Masahisa Kojima <[email protected]> | 2026-01-07 09:35:31 +0900 |
|---|---|---|
| committer | Heinrich Schuchardt <[email protected]> | 2026-01-19 10:31:21 +0100 |
| commit | e82f01a236b3bff89292703f732ede8f740b50f4 (patch) | |
| tree | b9404c404e308ca09ef7f1af030e7724b220860a /boot | |
| parent | 8e16fbfd14b48d428062a0eec47912424963d01e (diff) | |
bootm: fix boot failure from compressed image for IH_OS_EFI
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]>
Tested-by: Kunihiko Hayashi <[email protected]>
Diffstat (limited to 'boot')
| -rw-r--r-- | boot/bootm_os.c | 4 |
1 files 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, |
