vbe: Allow test to run with live/flat tree

This test can operate in all conditions now. Update the test and comments.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2022-09-06 20:27:31 -06:00 committed by Tom Rini
parent 47a677c2eb
commit 0d63213c1e

View File

@ -74,26 +74,22 @@ static int vbe_simple_test_base(struct unit_test_state *uts)
node_ofs = fdt_add_subnode(fdt_buf, node_ofs, "firmware0"); node_ofs = fdt_add_subnode(fdt_buf, node_ofs, "firmware0");
ut_assert(node_ofs > 0); ut_assert(node_ofs > 0);
/* if (of_live_active()) {
* This can only work on the live tree, since the ofnode interface for ut_assertok(unflatten_device_tree(fdt_buf, &np));
* flat tree assumes that ofnode points to the control FDT fixup.tree = oftree_from_np(np);
*/ } else {
ut_assertok(unflatten_device_tree(fdt_buf, &np)); fixup.tree = oftree_from_fdt(fdt_buf);
}
/* /*
* It would be better to call image_setup_libfdt() here, but that * It would be better to call image_setup_libfdt() here, but that
* function does not allow passing an ofnode. We can pass fdt_buf but * function does not allow passing an ofnode. We can pass fdt_buf but
* when it comes to send the evenr, it creates an ofnode that uses the * when it comes to send the event, it creates an ofnode that uses the
* control FDT, since it has no way of accessing the live tree created * control FDT, since it has no way of accessing the live tree created
* here. * here.
* *
* Two fix this we need: * Two fix this we need image_setup_libfdt() is updated to use ofnode
* - image_setup_libfdt() is updated to use ofnode
* - ofnode updated to support access to an FDT other than the control
* FDT. This is partially implemented with live tree, but not with
* flat tree
*/ */
fixup.tree.np = np;
ut_assertok(event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup))); ut_assertok(event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup)));
node = oftree_path(fixup.tree, "/chosen/fwupd/firmware0"); node = oftree_path(fixup.tree, "/chosen/fwupd/firmware0");
@ -111,5 +107,4 @@ static int vbe_simple_test_base(struct unit_test_state *uts)
return 0; return 0;
} }
BOOTSTD_TEST(vbe_simple_test_base, UT_TESTF_DM | UT_TESTF_SCAN_FDT | BOOTSTD_TEST(vbe_simple_test_base, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
UT_TESTF_LIVE_TREE);