boot: Only run global bootmeths once each

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@chromium.org>
This commit is contained in:
Simon Glass
2025-10-15 16:44:10 +01:00
committed by Tom Rini
parent 8e31093dbc
commit e52053c93c

View File

@@ -294,7 +294,13 @@ static int iter_incr(struct bootflow_iter *iter)
return BF_NO_MORE_DEVICES;
/* 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];
return 0;
}