diff options
| -rw-r--r-- | boot/bootmeth-uclass.c | 1 | ||||
| -rw-r--r-- | include/bootflow.h | 2 | ||||
| -rw-r--r-- | test/boot/bootflow.c | 4 |
3 files changed, 7 insertions, 0 deletions
diff --git a/boot/bootmeth-uclass.c b/boot/bootmeth-uclass.c index bb2dd8447cf..a0aa6336c9b 100644 --- a/boot/bootmeth-uclass.c +++ b/boot/bootmeth-uclass.c @@ -209,6 +209,7 @@ int bootmeth_setup_iter_order(struct bootflow_iter *iter, bool include_global) iter->first_glob_method != -1 && iter->first_glob_method != count) { iter->cur_method = iter->first_glob_method; iter->doing_global = true; + iter->have_global = true; } iter->method_order = order; iter->num_methods = count; diff --git a/include/bootflow.h b/include/bootflow.h index 2ef6eb25cf5..b18baebb4ba 100644 --- a/include/bootflow.h +++ b/include/bootflow.h @@ -255,6 +255,7 @@ enum bootflow_meth_flags_t { * @cur_prio: Current priority being scanned * @method_order: List of bootmeth devices to use, in order. The normal methods * appear first, then the global ones, if any + * @have_global: true if we have global bootmeths in @method_order[] * @doing_global: true if we are iterating through the global bootmeths (which * happens before the normal ones) * @method_flags: flags controlling which methods should be used for this @dev @@ -278,6 +279,7 @@ struct bootflow_iter { int first_glob_method; enum bootdev_prio_t cur_prio; struct udevice **method_order; + bool have_global; bool doing_global; int method_flags; }; diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c index 07bf239485c..83fb646babf 100644 --- a/test/boot/bootflow.c +++ b/test/boot/bootflow.c @@ -308,6 +308,7 @@ static int bootflow_iter(struct unit_test_state *uts) ut_asserteq_str("extlinux", iter.method->name); ut_asserteq(0, bflow.err); ut_assert(!iter.doing_global); + ut_assert(!iter.have_global); ut_asserteq(-1, iter.first_glob_method); /* @@ -405,6 +406,7 @@ static int bootflow_iter_glob(struct unit_test_state *uts) BOOTFLOWIF_SHOW, &bflow)); ut_asserteq(3, iter.num_methods); ut_assert(iter.doing_global); + ut_assert(iter.have_global); ut_asserteq(2, iter.first_glob_method); ut_asserteq(2, iter.cur_method); @@ -421,6 +423,7 @@ static int bootflow_iter_glob(struct unit_test_state *uts) ut_asserteq(2, iter.num_methods); ut_asserteq(2, iter.first_glob_method); ut_assert(!iter.doing_global); + ut_assert(iter.have_global); ut_asserteq(0, iter.cur_method); ut_asserteq(0, iter.part); @@ -486,6 +489,7 @@ static int bootflow_iter_disable(struct unit_test_state *uts) /* at this point the global bootmeths are stranded above num_methods */ ut_asserteq(3, iter.num_methods); ut_assert(!iter.doing_global); + ut_assert(iter.have_global); ut_asserteq(3, iter.first_glob_method); ut_asserteq_str("sandbox", iter.method->name); ut_assertok(inject_response(uts)); |
