From: Philippe Reynes <philippe.reynes@softathome.com>
Date: Tue, 24 Nov 2020 13:39:48 +0000 (+0100)
Subject: tools: image-host: add support for several sub-images
X-Git-Tag: v2025.01-rc5-pxa1908~2049^2~4
X-Git-Url: http://git.dujemihanovic.xyz/%22/icons/right.gif/static/git-favicon.png?a=commitdiff_plain;h=edfeba7538a23fdb82e7d0784c4b75d600f3547a;p=u-boot.git

tools: image-host: add support for several sub-images

The propoerty sign-images points to images in the configuration
node. But thoses images may references severals "sub-images" (for
example for images loadable). This commit adds the support of
severals sub-images.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
---

diff --git a/tools/image-host.c b/tools/image-host.c
index ce829a8ec9..33a224129a 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -805,25 +805,31 @@ static int fit_config_get_hash_list(void *fit, int conf_noffset,
 	image_count = 0;
 	for (iname = prop; iname < end; iname += strlen(iname) + 1) {
 		int image_noffset;
+		int index, max_index;
 
-		image_noffset = fit_conf_get_prop_node(fit, conf_noffset,
-						       iname);
-		if (image_noffset < 0) {
-			printf("Failed to find image '%s' in  configuration '%s/%s'\n",
-			       iname, conf_name, sig_name);
-			if (allow_missing)
-				continue;
+		max_index = fdt_stringlist_count(fit, conf_noffset, iname);
 
-			return -ENOENT;
-		}
+		for (index = 0; index < max_index; index++) {
+			image_noffset = fit_conf_get_prop_node_index(fit, conf_noffset,
+								     iname, index);
 
-		ret = fit_config_add_hash(fit, conf_name,
-					  sig_name, node_inc,
-					  iname, image_noffset);
-		if (ret < 0)
-			return ret;
+			if (image_noffset < 0) {
+				printf("Failed to find image '%s' in  configuration '%s/%s'\n",
+				       iname, conf_name, sig_name);
+				if (allow_missing)
+					continue;
 
-		image_count++;
+				return -ENOENT;
+			}
+
+			ret = fit_config_add_hash(fit, conf_name,
+						  sig_name, node_inc,
+						  iname, image_noffset);
+			if (ret < 0)
+				return ret;
+
+			image_count++;
+		}
 	}
 
 	if (!image_count) {