]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Add an MMC hunter
authorSimon Glass <sjg@chromium.org>
Tue, 17 Jan 2023 17:47:38 +0000 (10:47 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 23 Jan 2023 23:11:40 +0000 (18:11 -0500)
Add a hunter for MMC. This doesn't do anything at present, since MMC is
currently set up when U-Boot starts. If MMC moves to lazy init then we can
add a hunter function.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/mmc/mmc_bootdev.c
test/boot/bootdev.c

index 037b67bc0ff692ff2ef0fd50aeae8e1f60d45453..300208f0c71c2fcd34a5b495969fba380239af40 100644 (file)
@@ -35,3 +35,9 @@ U_BOOT_DRIVER(mmc_bootdev) = {
        .bind           = mmc_bootdev_bind,
        .of_match       = mmc_bootdev_ids,
 };
+
+BOOTDEV_HUNTER(mmc_bootdev_hunter) = {
+       .prio           = BOOTDEVP_0_INTERNAL_FAST,
+       .uclass         = UCLASS_MMC,
+       .drv            = DM_DRIVER_REF(mmc_bootdev),
+};
index 7a0c5793890f0c73f944dd4e019b3c2d4d2e62a0..78cb0ac628a1ac94594760ba61e3180f406721c0 100644 (file)
@@ -238,8 +238,9 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
        bootdev_list_hunters(std);
        ut_assert_nextline("Prio  Used  Uclass           Hunter");
        ut_assert_nextlinen("----");
+       ut_assert_nextline("  10        mmc              mmc_bootdev");
        ut_assert_nextline("  40        usb              usb_bootdev");
-       ut_assert_nextline("(total hunters: 1)");
+       ut_assert_nextline("(total hunters: 2)");
        ut_assert_console_end();
 
        ut_assertok(bootdev_hunt("usb1", false));
@@ -247,7 +248,8 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
                "Bus usb@1: scanning bus usb@1 for devices... 5 USB Device(s) found");
        ut_assert_console_end();
 
-       ut_asserteq(GENMASK(0, 0), std->hunters_used);
+       /* USB is second in the list, so bit 1 */
+       ut_asserteq(BIT(1), std->hunters_used);
 
        return 0;
 }
@@ -267,12 +269,12 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
        ut_assertok(run_command("bootdev hunt -l", 0));
        ut_assert_nextline("Prio  Used  Uclass           Hunter");
        ut_assert_nextlinen("----");
-       ut_assert_nextline("  40        usb              usb_bootdev");
-       ut_assert_nextline("(total hunters: 1)");
+       ut_assert_skip_to_line("(total hunters: 2)");
        ut_assert_console_end();
 
        /* Scan all hunters */
        ut_assertok(run_command("bootdev hunt", 0));
+       ut_assert_nextline("Hunting with: mmc");
        ut_assert_nextline("Hunting with: usb");
        ut_assert_nextline(
                "Bus usb@1: scanning bus usb@1 for devices... 5 USB Device(s) found");
@@ -282,11 +284,13 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
        ut_assertok(run_command("bootdev hunt -l", 0));
        ut_assert_nextlinen("Prio");
        ut_assert_nextlinen("----");
+       ut_assert_nextline("  10     *  mmc              mmc_bootdev");
        ut_assert_nextline("  40     *  usb              usb_bootdev");
-       ut_assert_nextline("(total hunters: 1)");
+
+       ut_assert_nextline("(total hunters: 2)");
        ut_assert_console_end();
 
-       ut_asserteq(GENMASK(0, 0), std->hunters_used);
+       ut_asserteq(GENMASK(1, 0), std->hunters_used);
 
        return 0;
 }