This is a reworked version of v1[1]. If a (root) file system does not have any partition table, the generated boot option (BOOTxxxx) by the command, => efidebug boot add -b ... does not work because a device path in the option is in a short-form and does not contain any valid media device path which should expectedly support EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.
[1] https://lists.denx.de/pipermail/u-boot/2022-April/482697.html Test: ===== * Azure CI passed[2] [2] https://dev.azure.com/u-boot/u-boot/_build/results?buildId=4220&view=results TODO: ===== The other types of short-form device paths, USB_CLASS and HARD_DRIVE, should also be implemented in boot manager rather than LoadImage API so as to more properly comply with the UEFI specification. See "3.1.2 Load Option Processing". Change history: =============== v2 (May, 12, 2022) * fully re-write the code to implement the feature in boot manager (patch#2) * try removable media first (patch#1,#2) * add a test case (patch#3) v1 (Apr 28, 2022) * initial patch AKASHI Takahiro (3): efi_loader: disk: add efi_disk_is_removable() efi_loader: bootmgr: fix a problem in loading an image from a short-path test: efi_bootmgr: add a test case for a short-form path include/efi_loader.h | 3 + lib/efi_loader/efi_bootmgr.c | 98 ++++++++++++++++++- lib/efi_loader/efi_disk.c | 27 +++++ test/py/tests/test_efi_bootmgr/conftest.py | 25 +++++ .../test_efi_bootmgr/test_efi_bootmgr.py | 25 +++++ 5 files changed, 174 insertions(+), 4 deletions(-) -- 2.33.0