[PATCH 57/71] bootstd: Use hunters when scanning for bootflows
Simon Glass
sjg at chromium.org
Wed Dec 7 09:51:23 CET 2022
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 at chromium.org>
---
cmd/bootflow.c | 5 ++++-
include/bootflow.h | 21 ++++++++++++++++-----
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/cmd/bootflow.c b/cmd/bootflow.c
index c4bb68196f2..fdccb775a15 100644
--- a/cmd/bootflow.c
+++ b/cmd/bootflow.c
@@ -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
diff --git a/include/bootflow.h b/include/bootflow.h
index 70bed29355f..b3d7509a6d5 100644
--- a/include/bootflow.h
+++ b/include/bootflow.h
@@ -80,17 +80,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,
};
/**
--
2.39.0.rc0.267.gcb52ba06e7-goog
More information about the U-Boot-Custodians
mailing list