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>
This commit is contained in:
		| @@ -0,0 +1,48 @@ | |||||||
|  | From 22832a0a15227e3fcc364b356247d8aeb9ce45b3 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Daniel Golle <daniel@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@makrotopia.org> | ||||||
|  | --- | ||||||
|  |  boot/bootm.c | 8 ++++---- | ||||||
|  |  1 file changed, 4 insertions(+), 4 deletions(-) | ||||||
|  |  | ||||||
|  | --- a/boot/bootm.c | ||||||
|  | +++ b/boot/bootm.c | ||||||
|  | @@ -1006,7 +1006,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; | ||||||
|  |   | ||||||
|  | @@ -1024,20 +1024,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; | ||||||
|  |  	} | ||||||
| @@ -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 | ||||||
|  | @@ -1024,10 +1024,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 | ||||||
|  | @@ -477,7 +477,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; | ||||||
|  | @@ -794,7 +794,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; | ||||||
| @@ -70,7 +70,7 @@ | |||||||
|  { |  { | ||||||
| --- a/boot/image-fit.c | --- a/boot/image-fit.c | ||||||
| +++ b/boot/image-fit.c | +++ b/boot/image-fit.c | ||||||
| @@ -1995,6 +1995,51 @@ static const char *fit_get_image_type_pr | @@ -1994,6 +1994,51 @@ static const char *fit_get_image_type_pr | ||||||
|  	return "unknown"; |  	return "unknown"; | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Daniel Golle
					Daniel Golle