part: Add a function to find the first bootable partition

If a disk has a bootable partition we are expected to use it to locate the
boot files. Add a function to find it.

To test this, update mmc1 to have two paritions, fixing up other tests
accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-01-17 10:47:41 -07:00
committed by Tom Rini
parent 4146c823fc
commit dcffa4428d
6 changed files with 49 additions and 7 deletions

View File

@@ -315,15 +315,15 @@ static int bootflow_iter(struct unit_test_state *uts)
ut_asserteq(BOOTFLOWST_FS, bflow.state);
bootflow_free(&bflow);
/* Then more to partition 2 which doesn't exist */
ut_asserteq(-ENOENT, bootflow_scan_next(&iter, &bflow));
/* Then more to partition 2 which exists but is not bootable */
ut_asserteq(-EPERM, bootflow_scan_next(&iter, &bflow));
ut_asserteq(2, iter.num_methods);
ut_asserteq(0, iter.cur_method);
ut_asserteq(2, iter.part);
ut_asserteq(0x1e, iter.max_part);
ut_asserteq_str("syslinux", iter.method->name);
ut_asserteq(0, bflow.err);
ut_asserteq(BOOTFLOWST_MEDIA, bflow.state);
ut_asserteq(BOOTFLOWST_PART, bflow.state);
bootflow_free(&bflow);
bootflow_iter_uninit(&iter);