boot: Pass the correct FDT to the EVT_FT_FIXUP event
Now that we support multiple device trees with the ofnode interface, we can pass the correct FDT to this event. This allows the 'working' FDT to be fixed up, as expected, so long as OFNODE_MULTI_TREE is enabled. Also make sure we don't try to do this with livetree, which does not support fixups yet. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
0718c3154c
commit
33ba72700b
@ -665,15 +665,18 @@ int image_setup_libfdt(struct bootm_headers *images, void *blob,
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if (CONFIG_IS_ENABLED(EVENT)) {
|
||||
if (!of_live_active() && CONFIG_IS_ENABLED(EVENT)) {
|
||||
struct event_ft_fixup fixup;
|
||||
|
||||
fixup.tree = oftree_default();
|
||||
fixup.tree = oftree_from_fdt(blob);
|
||||
fixup.images = images;
|
||||
ret = event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup));
|
||||
if (ret) {
|
||||
printf("ERROR: fdt fixup event failed: %d\n", ret);
|
||||
goto err;
|
||||
if (oftree_valid(fixup.tree)) {
|
||||
ret = event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup));
|
||||
if (ret) {
|
||||
printf("ERROR: fdt fixup event failed: %d\n",
|
||||
ret);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user