Heinrich, Can you kindly review this series of patches, in particular, patch#10? I would like to push it for v2019.07.
-Takahiro Akashi On Wed, Mar 27, 2019 at 01:40:31PM +0900, AKASHI Takahiro wrote: > There are several reasons that I want to rework/refactor bootefi command > as well as bootmgr: > * Some previous commits on bootefi.c have made the code complicated > and a bit hard to understand. > > * do_bootefi_exec() would better be implemented using load_image() along > with start_image() to be aligned with UEFI interfaces. > > * Contrary to the other part, efi_selftest part of the code is unusal > in terms of loading/execution path in do_bootefi(). > > * When we will support "secure boot" in the future, EFI Boot Manager > is expected to be invoked as a standalone command without any arguments > to mitigate security surfaces. > > In this patch set, > Patch#1 is a bug fix. > Patch#2 to #9 are preparatory patches for patch#10. > Patch#10 is a core part of reworking. > Patch#11 is for standalone boot manager. > > # Please note that some patches, say patch#4 and #5, can be combined into one > # but I intentionally keep them separated to clearify my intentions of > changes. > > Prerequsite patch: > * "efi_loader: bootmgr: support BootNext and BootCurrent variable behavior" > * "efi_loader: release file buffer after loading image" > > Issues: > * load_image() will take an argument of "parent_handle," but obviously > we don't have any parent when invoking an application from command line. > (See FIXME in patch#10.) > * Starting EDK2's Shell.efi from boot manager fails. > (I need to find out a fix.) > * The semantics of efi_dp_from_name() should be changed. > (See FIXME in patch#10.) > > -Takahiro Akashi > > Changes in RFC v2 (Mar 27, 2019) > * rebased on v2019.04-rc4 > * use load_image API in do_bootmgr_load() > * merge efi_install_fdt() and efi_process_fdt() > * add EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL to image (patch#1) > * lots of minor changes > > AKASHI Takahiro (11): > efi_loader: boottime: add loaded image device path protocol to image > handle > efi_loader: boottime: export efi_[un]load_image() > efi_loader: device_path: handle special case of loading > cmd: bootefi: carve out fdt handling from do_bootefi() > cmd: bootefi: merge efi_install_fdt() and efi_process_fdt() > cmd: bootefi: carve out efi_selftest code from do_bootefi() > cmd: bootefi: move do_bootefi_bootmgr_exec() forward > cmd: bootefi: carve out bootmgr code from do_bootefi() > cmd: bootefi: carve out do_boot_efi() from do_bootefi() > efi_loader: rework bootmgr/bootefi using load_image API > cmd: add efibootmgr command > > cmd/Kconfig | 8 + > cmd/bootefi.c | 521 +++++++++++++++++++----------- > include/efi_api.h | 4 + > include/efi_loader.h | 15 +- > lib/efi_loader/efi_bootmgr.c | 43 +-- > lib/efi_loader/efi_boottime.c | 34 +- > lib/efi_loader/efi_device_path.c | 8 + > lib/efi_loader/efi_image_loader.c | 2 + > 8 files changed, 411 insertions(+), 224 deletions(-) > > -- > 2.20.1 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot