]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Use hunters when scanning for bootflows
authorSimon Glass <sjg@chromium.org>
Tue, 17 Jan 2023 17:48:06 +0000 (10:48 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 23 Jan 2023 23:11:41 +0000 (18:11 -0500)
Add a flag to control whether hunters are used when scanning for
bootflows. Enable it by default and tidy up the flag comments a little.

Fow now this has no effect, until a future patch enables this feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
cmd/bootflow.c
include/bootflow.h

index c8b2f5efdebb7532a5d9eff2e1a57e9e6abcbb70..fe58de5fa5908e142788c2da6338d370d37c28cd 100644 (file)
@@ -96,7 +96,7 @@ static int do_bootflow_scan(struct cmd_tbl *cmdtp, int flag, int argc,
        struct udevice *dev;
        struct bootflow bflow;
        bool all = false, boot = false, errors = false, no_global = false;
-       bool list = false;
+       bool list = false, no_hunter = false;
        int num_valid = 0;
        bool has_args;
        int ret, i;
@@ -115,6 +115,7 @@ static int do_bootflow_scan(struct cmd_tbl *cmdtp, int flag, int argc,
                        errors = strchr(argv[1], 'e');
                        no_global = strchr(argv[1], 'G');
                        list = strchr(argv[1], 'l');
+                       no_hunter = strchr(argv[1], 'H');
                        argc--;
                        argv++;
                }
@@ -141,6 +142,8 @@ static int do_bootflow_scan(struct cmd_tbl *cmdtp, int flag, int argc,
                flags |= BOOTFLOWF_ALL;
        if (no_global)
                flags |= BOOTFLOWF_SKIP_GLOBAL;
+       if (!no_hunter)
+               flags |= BOOTFLOWF_HUNT;
 
        /*
         * If we have a device, just scan for bootflows attached to that device
index 9c6610bb922d7fd57eaca7736c83d0dca6fafaf0..4012f4b8a82d45dcfb9a65e402842cd347685f9f 100644 (file)
@@ -91,17 +91,28 @@ struct bootflow {
  * enum bootflow_flags_t - flags for the bootflow iterator
  *
  * @BOOTFLOWF_FIXED: Only used fixed/internal media
- * @BOOTFLOWF_SHOW: Show each bootdev before scanning it
+ * @BOOTFLOWF_SHOW: Show each bootdev before scanning it; show each hunter
+ * before using it
  * @BOOTFLOWF_ALL: Return bootflows with errors as well
- * @BOOTFLOWF_SINGLE_DEV: Just scan one bootmeth
- * @BOOTFLOWF_SKIP_GLOBAL: Don't scan global bootmeths
+ * @BOOTFLOWF_HUNT: Hunt for new bootdevs using the bootdrv hunters
+ *
+ * Internal flags:
+ * @BOOTFLOWF_SINGLE_DEV: (internal) Just scan one bootdev
+ * @BOOTFLOWF_SKIP_GLOBAL: (internal) Don't scan global bootmeths
+ * this uclass
  */
 enum bootflow_flags_t {
        BOOTFLOWF_FIXED         = 1 << 0,
        BOOTFLOWF_SHOW          = 1 << 1,
        BOOTFLOWF_ALL           = 1 << 2,
-       BOOTFLOWF_SINGLE_DEV    = 1 << 3,
-       BOOTFLOWF_SKIP_GLOBAL   = 1 << 4,
+       BOOTFLOWF_HUNT          = 1 << 3,
+
+       /*
+        * flags used internally by standard boot - do not set these when
+        * calling bootflow_scan_bootdev() etc.
+        */
+       BOOTFLOWF_SINGLE_DEV    = 1 << 16,
+       BOOTFLOWF_SKIP_GLOBAL   = 1 << 17,
 };
 
 /**