summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2025-04-30 12:55:46 +0200
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2025-05-01 09:24:39 +0200
commitac3b51ef727b052fce3b36e9a8b9b5984fd454c6 (patch)
tree91bfd5331008a79657a19e40517aab4d7a812a5d
parent6f399d4116cd80263cb8a79db1f5452fb5cd6a27 (diff)
bootm: pass kernel load address not entry point for IH_OS_EFI
The EFI sub-system needs the load address and not the entry point to boot the binary passed from the bootm command. The entry point is derived from the PE-COFF header of the binary. Fixes: ecc7fdaa9ef1 ("bootm: Add a bootm command for type IH_OS_EFI") Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-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 dc9d3e61fca..a3c7cb5332e 100644
--- a/boot/bootm_os.c
+++ b/boot/bootm_os.c
@@ -498,11 +498,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->ep, images->os.image_len);
+ image_buf = map_sysmem(images->os.image_start, images->os.image_len);
/* Run EFI image */
printf("## Transferring control to EFI (at address %08lx) ...\n",
- images->ep);
+ images->os.image_start);
bootstage_mark(BOOTSTAGE_ID_RUN_OS);
ret = efi_binary_run(image_buf, images->os.image_len,