summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJianhui Zhao <zhaojh329@gmail.com>2023-10-20 11:59:34 +0800
committerDaniel Golle <daniel@makrotopia.org>2023-10-31 22:18:19 +0000
commit1157b8c1f1a37fe81fc652e4f7037ef5990fda4f (patch)
tree1b03d39f026be7a4dc16a0d5f9162ce72f08bfe6
parent89184b15cfce4aaffac8cda87c2fa74f829ace42 (diff)
downloadopenwrt-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.tar.gz
openwrt-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.tar.bz2
openwrt-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.zip
uboot-mediatek: fix determine the size of an uImage.FIT using 'imsz' or 'imszb'.
It must read the entire image for previous code of 'imsz' or 'imszb'. Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com> Suggested-by: Chuanhong Guo <gch981213@gmail.com> (cherry picked from commit 3bbc1d5fba1d700917138334a48c16bafdf48de9)
-rw-r--r--package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch12
1 files changed, 5 insertions, 7 deletions
diff --git a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch
index 574259fb39..ae7623086e 100644
--- a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch
+++ b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch
@@ -70,7 +70,7 @@
{
--- a/boot/image-fit.c
+++ b/boot/image-fit.c
-@@ -2051,6 +2051,49 @@ static const char *fit_get_image_type_pr
+@@ -2051,6 +2051,47 @@ static const char *fit_get_image_type_pr
return "unknown";
}
@@ -93,11 +93,8 @@
+ max_size = hdrsize;
+
+ images_noffset = fdt_path_offset(fit, FIT_IMAGES_PATH);
-+ if (images_noffset < 0) {
-+ printf("Can't find images parent node '%s' (%s)\n",
-+ FIT_IMAGES_PATH, fdt_strerror(images_noffset));
-+ return 0;
-+ }
++ if (images_noffset < 0)
++ goto out;
+
+ for (ndepth = 0,
+ noffset = fdt_next_node(fit, images_noffset, &ndepth);
@@ -106,7 +103,7 @@
+ if (ndepth == 1) {
+ ret = fit_image_get_data_and_size(fit, noffset, &data, &data_size);
+ if (ret)
-+ return 0;
++ goto out;
+
+ img_total = data_size + (data - fit);
+
@@ -114,6 +111,7 @@
+ }
+ }
+
++out:
+ return max_size;
+}
+