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") Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> --- 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 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, -- 2.48.1