summaryrefslogtreecommitdiffstats
path: root/src/lib/fit_payload.c
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2019-05-16 16:12:04 -0700
committerPatrick Georgi <pgeorgi@google.com>2019-06-21 09:22:31 +0000
commit21b0b1adec23d2f67e51a47207e691fb41f576dd (patch)
tree37630599fa21b408e58484c276daa72930a37b1d /src/lib/fit_payload.c
parentfec4206299aefba05cae3bb82421635543ca1a2b (diff)
downloadcoreboot-21b0b1adec23d2f67e51a47207e691fb41f576dd.tar.gz
coreboot-21b0b1adec23d2f67e51a47207e691fb41f576dd.tar.bz2
coreboot-21b0b1adec23d2f67e51a47207e691fb41f576dd.zip
fit: Add overlay support
This patch adds support to boot FIT image configurations consisting of a base device tree and one or more overlays. Since extracting the right compatible string from overlay FDTs is problematic, we'll only support this for FIT images that have the compatible string pulled out into the config node. This patch was adapted from depthcharge's http://crosreview.com/1555293 Change-Id: I0943f9a1869c9e416887c7ff16e33f7d91b74989 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32873 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/lib/fit_payload.c')
-rw-r--r--src/lib/fit_payload.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/fit_payload.c b/src/lib/fit_payload.c
index b0491889c99f..8e7591580680 100644
--- a/src/lib/fit_payload.c
+++ b/src/lib/fit_payload.c
@@ -206,6 +206,15 @@ void fit_payload(struct prog *payload)
return;
}
+ struct fit_overlay_chain *chain;
+ list_for_each(chain, config->overlays, list_node) {
+ struct device_tree *overlay = unpack_fdt(chain->overlay);
+ if (!overlay || dt_apply_overlay(dt, overlay)) {
+ printk(BIOS_ERR, "ERROR: Failed to apply overlay %s!\n",
+ chain->overlay->name);
+ }
+ }
+
dt_apply_fixups(dt);
/* Insert coreboot specific information */