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 <[email protected]>
> ---
>  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
> [email protected]
> 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 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to