From: Quentin Schulz <quentin.sch...@cherry.de>

Fit conf node may have a compatible property[1] which stores the root
compatible of the first blob in the fdt property of the node. This can
be used to automatically select the proper conf node based on the
compatible from the running U-Boot (matching the former's compatible
with the latter)[2].

This adds (and uses) this constant for FIT node parsing.

Note that this property may also appear in fpga image nodes[3] but that
isn't done in this commit.

[1] https://fitspec.osfw.foundation/#optional-properties compatible paragraph
[2] https://fitspec.osfw.foundation/#select-a-configuration-to-boot
[3] https://fitspec.osfw.foundation/#images-node 2.3.2 Conditionally mandatory 
property
Signed-off-by: Quentin Schulz <quentin.sch...@cherry.de>
---
 boot/image-fit.c | 2 +-
 include/image.h  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/boot/image-fit.c b/boot/image-fit.c
index 
7c822a39fd85554a716d9cada54cbaf91b3ec24a..52dbd7e96180da306da7f1516e8a3ab18a51ea33
 100644
--- a/boot/image-fit.c
+++ b/boot/image-fit.c
@@ -1756,7 +1756,7 @@ int fit_conf_find_compat(const void *fit, const void *fdt)
                        continue;
 
                /* If there's a compat property in the config node, use that. */
-               if (fdt_getprop(fit, noffset, "compatible", NULL)) {
+               if (fdt_getprop(fit, noffset, FIT_COMPAT_PROP, NULL)) {
                        fdt = fit;                /* search in FIT image */
                        compat_noffset = noffset; /* search under config node */
                } else {        /* Otherwise extract it from the kernel FDT. */
diff --git a/include/image.h b/include/image.h
index 
c1db8383459c9d7ce1ecc318ccccb4627a7066e5..c8286f2ffd32ed312f25d5d8cdc0a601f8e02f2f
 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1103,6 +1103,7 @@ int booti_setup(ulong image, ulong *relocated_addr, ulong 
*size,
 #define FIT_STANDALONE_PROP    "standalone"
 #define FIT_SCRIPT_PROP                "script"
 #define FIT_PHASE_PROP         "phase"
+#define FIT_COMPAT_PROP                "compatible"
 
 #define FIT_MAX_HASH_LEN       HASH_MAX_DIGEST_SIZE
 

-- 
2.49.0

Reply via email to