]> git.dujemihanovic.xyz Git - u-boot.git/commit
efi_loader: support boot from URI device path
authorMasahisa Kojima <masahisa.kojima@linaro.org>
Fri, 10 Nov 2023 04:25:40 +0000 (13:25 +0900)
committerIlias Apalodimas <ilias.apalodimas@linaro.org>
Sat, 18 Nov 2023 08:08:09 +0000 (10:08 +0200)
commitd7d07a8b508bb8af564f6de1ea763be0f67f2456
tree883ac6ad9c076f9ca5b2eb277226d6450f200c23
parente0d1a1ea68c47b29d93bfc375d984fe0aee21093
efi_loader: support boot from URI device path

This supports to boot from the URI device path.
When user selects the URI device path, bootmgr downloads
the file using wget into the address specified by loadaddr
env variable.
If the file is .iso or .img file, mount the image with blkmap
then try to boot with the default file(e.g. EFI/BOOT/BOOTAA64.EFI).
Since boot option indicating the default file is automatically
created when new disk is detected, system can boot by selecting
the automatically created blkmap boot option.
If the file is PE-COFF file, load and start the downloaded file.

The buffer used to download the ISO image file must be
reserved to avoid the unintended access to the image and
expose the ramdisk to the OS.
For PE-COFF file case, this memory reservation is done
in LoadImage Boot Service.

[Ilias fix a few memory leaks by replacing returns with gotos]
Lore: https://lore.kernel.org/u-boot/20231110042542.3797301-1-masahisa.kojima@linaro.org/T/#mbac31da301ff465b60894b38f3a587b2868cf817
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
lib/efi_loader/Kconfig
lib/efi_loader/efi_bootmgr.c