From: Ye.Li <Ye.Li@freescale.com>
Date: Wed, 20 Aug 2014 08:55:32 +0000 (+0800)
Subject: imximage: Fix imximage IVT bug for EIM-NOR boot
X-Git-Tag: v2025.01-rc5-pxa1908~14663^2^2~13
X-Git-Url: http://git.dujemihanovic.xyz/browse.php?a=commitdiff_plain;h=03ea24b2a9f8baab9b857a7c4b4089979c4ae48b;p=u-boot.git

imximage: Fix imximage IVT bug for EIM-NOR boot

The load region size of EIM-NOR are defined to 0. For this case,
the parameter "imximage_init_loadsize" must be calculated.
The imximage tool implements the calculation in the "imximage_generate"
function, but the following function "imximage_set_header" resets the value
and not calculate. This bug cause some fields of IVT head are not
correct, for example the boot_data and DCD overlay the application area.

Signed-off-by: Ye.Li <B37916@freescale.com>
---

diff --git a/tools/imximage.c b/tools/imximage.c
index 18dc051c5e..faba23860f 100644
--- a/tools/imximage.c
+++ b/tools/imximage.c
@@ -568,6 +568,13 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
 	/* Parse dcd configuration file */
 	dcd_len = parse_cfg_file(imxhdr, params->imagename);
 
+	if (imximage_version == IMXIMAGE_V2) {
+		if (imximage_init_loadsize < imximage_ivt_offset +
+			sizeof(imx_header_v2_t))
+				imximage_init_loadsize = imximage_ivt_offset +
+					sizeof(imx_header_v2_t);
+	}
+
 	/* Set the imx header */
 	(*set_imx_hdr)(imxhdr, dcd_len, params->ep, imximage_ivt_offset);