summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorMasahisa Kojima <[email protected]>2026-01-07 09:35:31 +0900
committerHeinrich Schuchardt <[email protected]>2026-01-19 10:31:21 +0100
commite82f01a236b3bff89292703f732ede8f740b50f4 (patch)
treeb9404c404e308ca09ef7f1af030e7724b220860a /boot
parent8e16fbfd14b48d428062a0eec47912424963d01e (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.c4
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,