[PATCH v2 12/17] boot: Only run global bootmeths once each
Simon Glass
sjg at chromium.org
Wed Oct 1 23:26:37 CEST 2025
Use the methods_done flags to make sure that each global bootmeth is
only used once. For now this has no effect, since they are all processed
at the start.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
boot/bootflow.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/boot/bootflow.c b/boot/bootflow.c
index 711b971c419..5080096cd11 100644
--- a/boot/bootflow.c
+++ b/boot/bootflow.c
@@ -354,7 +354,13 @@ static int iter_incr(struct bootflow_iter *iter)
}
/* Get the next boothmethod */
- if (++iter->cur_method < iter->num_methods) {
+ for (iter->cur_method++; iter->cur_method < iter->num_methods;
+ iter->cur_method++) {
+ /* loop until we find a global bootmeth we haven't used */
+ if (IS_ENABLED(CONFIG_BOOTMETH_GLOBAL) && iter->doing_global &&
+ !bootmeth_glob_allowed(iter, iter->cur_method))
+ continue;
+
iter->method = iter->method_order[iter->cur_method];
log_debug("-> next method '%s'\n", iter->method->name);
return 0;
--
2.43.0
More information about the U-Boot
mailing list