[RFC 0/8] boot: run EFI boot manager after block devices
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Mon Apr 21 18:25:47 CEST 2025
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
More information about the U-Boot
mailing list