aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-08-15 13:19:15 +0200
committerDaniel Golle <daniel@makrotopia.org>2022-09-03 02:00:16 +0100
commit3889f90ee27f129340dc0ae7efccf8165e0fbe30 (patch)
tree7d0155144a6f9f03c76f59d11d511e450079c531 /package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch
parent8ff8a4dc9efba78966c9d2f1ace2b38e1bf28779 (diff)
downloadupstream-3889f90ee27f129340dc0ae7efccf8165e0fbe30.tar.gz
upstream-3889f90ee27f129340dc0ae7efccf8165e0fbe30.tar.bz2
upstream-3889f90ee27f129340dc0ae7efccf8165e0fbe30.zip
uboot-mediatek: no compression means IH_COMP_NONE
Treat missing compression node in FIT image as IH_COMP_NONE. This is implicentely already happening in most places, but for now was still triggering an annoying warning about initramfs compression being obsolete despite compression note being absent. Fix this. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 0a18456ffc25d6a26911fca6f9079090243c2284)
Diffstat (limited to 'package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch')
-rw-r--r--package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch b/package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch
new file mode 100644
index 0000000000..ec6b67032a
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/061-image-fit-don-t-set-compression-if-it-can-t-be-read.patch
@@ -0,0 +1,71 @@
+From b2c109c012ca946baebbb23e7f4301f6eee4c6f3 Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel@makrotopia.org>
+Date: Mon, 15 Aug 2022 12:15:50 +0200
+Subject: [PATCH 2/2] image-fit: don't set compression if it can't be read
+
+fit_image_get_comp() should not set value -1 in case it can't read
+the compression node. Instead, leave the value untouched in that case
+as it can be absent and a default value previously defined by the
+caller of fit_image_get_comp() should be used.
+
+As a result the warning message
+WARNING: 'compression' nodes for ramdisks are deprecated, please fix your .its file!
+no longer shows if the compression node is actually absent.
+
+Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+---
+ boot/bootm.c | 6 ++----
+ boot/image-fit.c | 3 +--
+ cmd/ximg.c | 7 ++-----
+ 3 files changed, 5 insertions(+), 11 deletions(-)
+
+--- a/boot/bootm.c
++++ b/boot/bootm.c
+@@ -991,10 +991,8 @@ static int bootm_host_load_image(const v
+ return -EINVAL;
+ }
+
+- if (fit_image_get_comp(fit, noffset, &image_comp)) {
+- puts("Can't get image compression!\n");
+- return -EINVAL;
+- }
++ if (fit_image_get_comp(fit, noffset, &image_comp))
++ image_comp = IH_COMP_NONE;
+
+ /* Allow the image to expand by a factor of 4, should be safe */
+ load_buf = malloc((1 << 20) + len * 4);
+--- a/boot/image-fit.c
++++ b/boot/image-fit.c
+@@ -476,7 +476,7 @@ void fit_print_contents(const void *fit)
+ void fit_image_print(const void *fit, int image_noffset, const char *p)
+ {
+ char *desc;
+- uint8_t type, arch, os, comp;
++ uint8_t type, arch, os, comp = IH_COMP_NONE;
+ size_t size;
+ ulong load, entry;
+ const void *data;
+@@ -793,7 +793,6 @@ int fit_image_get_comp(const void *fit,
+ data = fdt_getprop(fit, noffset, FIT_COMP_PROP, &len);
+ if (data == NULL) {
+ fit_get_debug(fit, noffset, FIT_COMP_PROP, len);
+- *comp = -1;
+ return -1;
+ }
+
+--- a/cmd/ximg.c
++++ b/cmd/ximg.c
+@@ -171,11 +171,8 @@ do_imgextract(struct cmd_tbl *cmdtp, int
+ return 1;
+ }
+
+- if (fit_image_get_comp(fit_hdr, noffset, &comp)) {
+- puts("Could not find script subimage "
+- "compression type\n");
+- return 1;
+- }
++ if (fit_image_get_comp(fit_hdr, noffset, &comp))
++ comp = IH_COMP_NONE;
+
+ data = (ulong)fit_data;
+ len = (ulong)fit_len;