
Some hard devices need specific routines to scan for block devices, e.g. NVMe (nvme scan), SCSI (scsi start).
Invoke bootdev_hunt() to find all block devices.
Reviewers complained that PXE boot was executed unexpectedly. eth_bootdev_hunt() should not execute dhcp_run() as this itself would load a file and boot it if autostart=yes. Instead just check that there is a network device.
To fix Gitlab CI issues the following changes were necessary:
In test_extension.py do not assume that extensions have not been loaded by bootdev hunter in a previous test.
Remove CONFIG_AMIGA_PARTITION from sandbox_deconfig to avoid a timeout.
Remove CONFIG_USB_DWC3 from xilinx_versal_virt_defconfig to avoid a boot failure.
Add a parameter '-e' to select if UEFI boot options shall be shown by the bootmenu command.
v2: Do not run dhcp_run() in eth_bootdev_hunt(). In test_extension.py do not assume initial state. Remove CONFIG_AMIGA_PARTITION from sandbox_deconfig. Remove CONFIG_USB_DWC3 from xilinx_versal_virt_defconfig. Add a parameter '-e' to bootmenu command.
Heinrich Schuchardt (6): test: fix test_extension.py configs: sandbox_deconfig: remove CONFIG_AMIGA_PARTITION configs: xilinx_versal_virt: disable USB_DWC3 net: eth_bootdev_hunt() must not try to boot cmd: bootmenu: add parameter -e for UEFI boot options efi_loader: run bootdev_hunt() to find ESP
cmd/bootmenu.c | 39 +++++++++++++++++++++------- configs/sandbox_defconfig | 1 - configs/xilinx_versal_virt_defconfig | 2 -- doc/usage/cmd/bootmenu.rst | 13 +++++++--- lib/efi_loader/efi_setup.c | 8 ++++++ net/eth_bootdev.c | 30 ++++++++++++--------- test/py/tests/test_extension.py | 4 ++- 7 files changed, 69 insertions(+), 28 deletions(-)