"Das U-Boot" Source Tree
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

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 <kojima.masahisa@socionext.com>
Tested-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

authored by

Masahisa Kojima and committed by
Heinrich Schuchardt
e82f01a2 8e16fbfd

+2 -2
+2 -2
boot/bootm_os.c
··· 509 509 /* We expect to return */ 510 510 images->os.type = IH_TYPE_STANDALONE; 511 511 512 - image_buf = map_sysmem(images->os.image_start, images->os.image_len); 512 + image_buf = map_sysmem(images->os.load, images->os.image_len); 513 513 514 514 /* Run EFI image */ 515 515 printf("## Transferring control to EFI (at address %08lx) ...\n", 516 - images->os.image_start); 516 + images->os.load); 517 517 bootstage_mark(BOOTSTAGE_ID_RUN_OS); 518 518 519 519 ret = efi_binary_run(image_buf, images->os.image_len,