]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Always create the EFI bootmgr bootmeth
authorSimon Glass <sjg@chromium.org>
Sat, 30 Jul 2022 21:52:28 +0000 (15:52 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 12 Aug 2022 12:17:11 +0000 (08:17 -0400)
Now that we can separate this out from the normal bootmeths, update the
code to create it always.

We cannot rely on the device tree to create this, since the EFI project
is quite opposed to having anything in the device tree that helps U-Boot
with its processing.

Signed-off-by: Simon Glass <sjg@chromium.org>
boot/bootstd-uclass.c
test/boot/bootflow.c

index 3c6c32ae604c11c3a87fa968a8d79d2b1f860783..5107b6d4c7f60a70a42254a4c5544113ad148b14 100644 (file)
@@ -133,12 +133,7 @@ int dm_scan_other(bool pre_reloc_only)
                return 0;
 
        for (i = 0; i < n_ents; i++, drv++) {
-               /*
-                * Disable EFI Manager for now as no one uses it so it is
-                * confusing
-                */
-               if (drv->id == UCLASS_BOOTMETH &&
-                   strcmp("efi_mgr_bootmeth", drv->name)) {
+               if (drv->id == UCLASS_BOOTMETH) {
                        const char *name = drv->name;
 
                        if (!strncmp("bootmeth_", name, 9))
index 07b0517718ec12376dc889078eb78a606c033198..b2f77972d1f7f834cc6d85f6a9bb9cbec17cc134 100644 (file)
@@ -324,34 +324,26 @@ BOOTSTD_TEST(bootflow_iter, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
 /* Check using the system bootdev */
 static int bootflow_system(struct unit_test_state *uts)
 {
-       struct udevice *bootstd, *dev;
+       struct udevice *dev;
 
-       /* Add the EFI bootmgr driver */
-       ut_assertok(uclass_first_device_err(UCLASS_BOOTSTD, &bootstd));
-       ut_assertok(device_bind_driver(bootstd, "bootmeth_efi_mgr", "bootmgr",
-                                      &dev));
-       ut_assertok(device_probe(dev));
+       ut_assertok(uclass_get_device_by_name(UCLASS_BOOTMETH, "efi_mgr",
+                                             &dev));
        sandbox_set_fake_efi_mgr_dev(dev, true);
 
-       /* Add the system bootdev that it uses */
-       ut_assertok(device_bind_driver(bootstd, "system_bootdev",
-                                      "system-bootdev", &dev));
-
-       ut_assertok(bootstd_test_drop_bootdev_order(uts));
-
        /* We should get a single 'bootmgr' method right at the end */
        bootstd_clear_glob();
        console_record_reset_enable();
        ut_assertok(run_command("bootflow scan -l", 0));
        ut_assert_skip_to_line(
-               "  0  bootmgr      ready   (none)       0  <NULL>                    <NULL>");
+               "  0  efi_mgr      ready   (none)       0  <NULL>                    <NULL>");
        ut_assert_skip_to_line("No more bootdevs");
-       ut_assert_skip_to_line("(2 bootflows, 2 valid)");
+       ut_assert_skip_to_line("(6 bootflows, 6 valid)");
        ut_assert_console_end();
 
        return 0;
 }
-BOOTSTD_TEST(bootflow_system, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
+BOOTSTD_TEST(bootflow_system, UT_TESTF_DM | UT_TESTF_SCAN_PDATA |
+            UT_TESTF_SCAN_FDT);
 
 /* Check disabling a bootmethod if it requests it */
 static int bootflow_iter_disable(struct unit_test_state *uts)