Up to now the EFI boot manager is running as a global boot method before scanning block devices. This leads to failures to boot from unprobed devices. Scanning all devices before running the EFI boot manager is not wanted by some board maintainers.
Introduce a dummy bootdev with a priority between block devices and network devices. Add the dummy bootdeb to the QEMU ARM environment. Do not run the EFI bootdev as we must not run EFI\BOOT\BOOTARCH.EFI before the boot manager. Heinrich Schuchardt (8): boot: EFI boot manager does not depend on BootOrder boot: BOOTMETH_DISTRO should select BOOTMETH_EFI_BOOTMGR boot: make BOOTMETH_EFILOADER default=n boot: introduce BOOTDEVP_6_EFI boot: prevent recursion in bootdev_hunt_drv() boot: make EFI boot manager bootmeth non-global efi_loader: create EFI BOOTDEV board/emulation/qemu-arm: enable EFI boot manager board/emulation/qemu-arm/qemu-arm.env | 2 +- board/emulation/qemu-sbsa/qemu-sbsa.env | 2 +- boot/Kconfig | 6 +- boot/bootdev-uclass.c | 2 +- boot/bootmeth_efi_mgr.c | 24 +----- include/bootdev.h | 10 ++- include/dm/uclass-id.h | 1 + lib/efi_loader/Makefile | 1 + lib/efi_loader/efi_bootdev.c | 102 ++++++++++++++++++++++++ net/eth_bootdev.c | 4 +- test/boot/bootflow.c | 2 +- 11 files changed, 124 insertions(+), 32 deletions(-) create mode 100644 lib/efi_loader/efi_bootdev.c -- 2.48.1