Global bootmeths are called before all device specific bootmeths. To move the EFI boot manager after the block devices it must be non-global.
As sorting will be controlled boot device priority remove the digit 3 from the name that was only used for sorting reasons. Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> --- boot/bootmeth_efi_mgr.c | 3 +-- test/boot/bootflow.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/boot/bootmeth_efi_mgr.c b/boot/bootmeth_efi_mgr.c index 1669cbed5bd..8f1d247c942 100644 --- a/boot/bootmeth_efi_mgr.c +++ b/boot/bootmeth_efi_mgr.c @@ -82,7 +82,6 @@ static int bootmeth_efi_mgr_bind(struct udevice *dev) struct bootmeth_uc_plat *plat = dev_get_uclass_plat(dev); plat->desc = "EFI bootmgr flow"; - plat->flags = BOOTMETHF_GLOBAL; return 0; } @@ -99,7 +98,7 @@ static const struct udevice_id efi_mgr_bootmeth_ids[] = { { } }; -U_BOOT_DRIVER(bootmeth_3efi_mgr) = { +U_BOOT_DRIVER(bootmeth_efi_mgr) = { .name = "bootmeth_efi_mgr", .id = UCLASS_BOOTMETH, .of_match = efi_mgr_bootmeth_ids, diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c index 5f9c037ff53..db35dad10d3 100644 --- a/test/boot/bootflow.c +++ b/test/boot/bootflow.c @@ -395,7 +395,7 @@ static int bootflow_system(struct unit_test_state *uts) if (!IS_ENABLED(CONFIG_EFI_BOOTMGR)) return -EAGAIN; ut_assertok(uclass_first_device_err(UCLASS_BOOTSTD, &bootstd)); - ut_assertok(device_bind(bootstd, DM_DRIVER_GET(bootmeth_3efi_mgr), + ut_assertok(device_bind(bootstd, DM_DRIVER_GET(bootmeth_efi_mgr), "efi_mgr", 0, ofnode_null(), &dev)); ut_assertok(device_probe(dev)); sandbox_set_fake_efi_mgr_dev(dev, true); -- 2.48.1