From: Daniel Golle Date: Mon, 15 Aug 2022 11:19:15 +0000 (+0200) Subject: uboot-mediatek: no compression means IH_COMP_NONE X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3889f90ee27f129340dc0ae7efccf8165e0fbe30;p=openwrt%2Fstaging%2Fblocktrron.git 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 (cherry picked from commit 0a18456ffc25d6a26911fca6f9079090243c2284) --- 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 +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 +--- + 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 +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 +--- + 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 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; }