[openwrt/openwrt] uboot-mediatek: no compression means IH_COMP_NONE

LEDE Commits lede-commits at lists.infradead.org
Fri Sep 2 18:15:21 PDT 2022


dangole pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/3889f90ee27f129340dc0ae7efccf8165e0fbe30

commit 3889f90ee27f129340dc0ae7efccf8165e0fbe30
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Mon Aug 15 13:19:15 2022 +0200

    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 at makrotopia.org>
    (cherry picked from commit 0a18456ffc25d6a26911fca6f9079090243c2284)
---
 .../060-bootm-fix-typo-imape_comp-image_comp.patch | 48 +++++++++++++++
 ...don-t-set-compression-if-it-can-t-be-read.patch | 71 ++++++++++++++++++++++
 .../patches/200-cmd-add-imsz-and-imszb.patch       |  2 +-
 ...-name-of-FIT-configuration-in-chosen-node.patch |  4 +-
 4 files changed, 121 insertions(+), 4 deletions(-)

diff --git a/package/boot/uboot-mediatek/patches/060-bootm-fix-typo-imape_comp-image_comp.patch b/package/boot/uboot-mediatek/patches/060-bootm-fix-typo-imape_comp-image_comp.patch
new file mode 100644
index 0000000000..530ecdf115
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/060-bootm-fix-typo-imape_comp-image_comp.patch
@@ -0,0 +1,48 @@
+From 22832a0a15227e3fcc364b356247d8aeb9ce45b3 Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel at makrotopia.org>
+Date: Sat, 27 Aug 2022 04:05:31 +0100
+Subject: [PATCH 1/2] bootm: fix typo imape_comp -> image_comp
+
+Chage variable name 'imape_comp' to the supposedly intended name
+'image_comp'.
+
+Signed-off-by: Daniel Golle <daniel at makrotopia.org>
+---
+ boot/bootm.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/boot/bootm.c
++++ b/boot/bootm.c
+@@ -973,7 +973,7 @@ static int bootm_host_load_image(const v
+ 	int noffset;
+ 	ulong load_end;
+ 	uint8_t image_type;
+-	uint8_t imape_comp;
++	uint8_t image_comp;
+ 	void *load_buf;
+ 	int ret;
+ 
+@@ -991,20 +991,20 @@ static int bootm_host_load_image(const v
+ 		return -EINVAL;
+ 	}
+ 
+-	if (fit_image_get_comp(fit, noffset, &imape_comp)) {
++	if (fit_image_get_comp(fit, noffset, &image_comp)) {
+ 		puts("Can't get image compression!\n");
+ 		return -EINVAL;
+ 	}
+ 
+ 	/* Allow the image to expand by a factor of 4, should be safe */
+ 	load_buf = malloc((1 << 20) + len * 4);
+-	ret = image_decomp(imape_comp, 0, data, image_type, load_buf,
++	ret = image_decomp(image_comp, 0, data, image_type, load_buf,
+ 			   (void *)data, len, CONFIG_SYS_BOOTM_LEN,
+ 			   &load_end);
+ 	free(load_buf);
+ 
+ 	if (ret) {
+-		ret = handle_decomp_error(imape_comp, load_end - 0, ret);
++		ret = handle_decomp_error(image_comp, load_end - 0, ret);
+ 		if (ret != BOOTM_ERR_UNIMPLEMENTED)
+ 			return ret;
+ 	}
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 at 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 at 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;
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 5dce177cfa..bf97c98dfb 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
@@ -68,7 +68,7 @@
  {
 --- a/boot/image-fit.c
 +++ b/boot/image-fit.c
-@@ -1993,6 +1993,51 @@ static const char *fit_get_image_type_pr
+@@ -1992,6 +1992,51 @@ static const char *fit_get_image_type_pr
  	return "unknown";
  }
  
diff --git a/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch b/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch
index 76e272a2c9..bb8edf49a0 100644
--- a/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch
+++ b/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch
@@ -41,11 +41,9 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  boot/image-fdt.c | 6 ++++++
  1 file changed, 6 insertions(+)
 
-diff --git a/boot/image-fdt.c b/boot/image-fdt.c
-index 692a9ad3e4..4017bc94a6 100644
 --- a/boot/image-fdt.c
 +++ b/boot/image-fdt.c
-@@ -601,6 +601,12 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
+@@ -601,6 +601,12 @@ int image_setup_libfdt(bootm_headers_t *
  		goto err;
  	}
  




More information about the lede-commits mailing list