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

Reply via email to