image: support board_fit_config_name_match
authorSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 4 Jan 2021 19:48:04 +0000 (20:48 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 5 Jan 2021 13:21:48 +0000 (08:21 -0500)
Support reusing board_fit_config_name_match() to automatically
select a sensible default configuration for booting fitImages
using 'bootm'.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
common/image-fit.c

index 097cd38..6a8787c 100644 (file)
@@ -1738,12 +1738,19 @@ int fit_conf_get_node(const void *fit, const char *conf_uname)
        if (conf_uname == NULL) {
                /* get configuration unit name from the default property */
                debug("No configuration specified, trying default...\n");
-               conf_uname = (char *)fdt_getprop(fit, confs_noffset,
-                                                FIT_DEFAULT_PROP, &len);
-               if (conf_uname == NULL) {
-                       fit_get_debug(fit, confs_noffset, FIT_DEFAULT_PROP,
-                                     len);
-                       return len;
+               if (!host_build() && IS_ENABLED(CONFIG_MULTI_DTB_FIT)) {
+                       noffset = fit_find_config_node(fit);
+                       if (noffset < 0)
+                               return noffset;
+                       conf_uname = fdt_get_name(fit, noffset, NULL);
+               } else {
+                       conf_uname = (char *)fdt_getprop(fit, confs_noffset,
+                                                        FIT_DEFAULT_PROP, &len);
+                       if (conf_uname == NULL) {
+                               fit_get_debug(fit, confs_noffset, FIT_DEFAULT_PROP,
+                                             len);
+                               return len;
+                       }
                }
                debug("Found default configuration: '%s'\n", conf_uname);
        }