[PATCH 1/3] fixup! scripts: imx-image: Fix writing image with IVT offset = 0

Sascha Hauer s.hauer at pengutronix.de
Tue Jul 14 14:20:33 EDT 2020


On Mon, Jul 13, 2020 at 01:08:12AM +0200, Ahmad Fatoum wrote:
> When data.header_gap == 0, like on i.MX6, we seek to the start of the
> file after writing the barebox header there and proceed to overwrite
> it again.
> 
> Therefore we can no longer detect the filetype and affected images
> can't be booted/flashed directly on < i.MX8 anymore. Fix this up:
> 
> - on i.MX8, there is nothing at the start, so it's ok to write there
> - on i.MX6, we overwrite buf[0..sizeof_bb_header-1], but that's the way
>   it was before
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
>  scripts/imx/imx-image.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)

Applied, thanks

Sascha

> 
> diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c
> index 64be682417e0..de04962b09d1 100644
> --- a/scripts/imx/imx-image.c
> +++ b/scripts/imx/imx-image.c
> @@ -978,10 +978,7 @@ int main(int argc, char *argv[])
>  	}
>  
>  	if (data.cpu_type == IMX_CPU_IMX35) {
> -		xwrite(outfd, add_barebox_header ? bb_header : buf,
> -		       sizeof_bb_header);
> -		xwrite(outfd, buf + sizeof_bb_header,
> -		       header_len - sizeof_bb_header);
> +		xwrite(outfd, buf, header_len);
>  		xwrite(outfd, buf, header_len);
>  	} else {
>  		if (add_barebox_header &&
> @@ -990,9 +987,6 @@ int main(int argc, char *argv[])
>  			exit(1);
>  		}
>  
> -		xwrite(outfd, add_barebox_header ? bb_header : buf,
> -		       sizeof_bb_header);
> -
>  		if (lseek(outfd, data.header_gap, SEEK_SET) < 0) {
>  			perror("lseek");
>  			exit(1);
> @@ -1001,6 +995,9 @@ int main(int argc, char *argv[])
>  		xwrite(outfd, buf, header_len);
>  	}
>  
> +	if (add_barebox_header)
> +		pwrite(outfd, bb_header, sizeof_bb_header, 0);
> +
>  	xwrite(outfd, infile, insize);
>  
>  	/* pad until next 4k boundary */
> -- 
> 2.27.0
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list