From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Mon, 12 Sep 2016 17:07:58 +0800 Subject: [U-Boot] [PATCH] cmd: booti: fix the image runtime location Message-ID: <1473671278-23831-1-git-send-email-peng.fan@nxp.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de We should not use "bi_dram[0].start + text_offset" as the image dst. The text_offset maybe 0 for some images, such as XEN. Then the dst is actually bi_dram[0].start, which maybe the location of spin table. Let's use "images->ep & ~(ih->text_offset)" as the dst address. Signed-off-by: Peng Fan Cc: Tom Rini --- cmd/booti.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/booti.c b/cmd/booti.c index 6c1c998..afc87e3 100644 --- a/cmd/booti.c +++ b/cmd/booti.c @@ -54,7 +54,9 @@ static int booti_setup(bootm_headers_t *images) * If we are not at the correct run-time location, set the new * correct location and then move the image there. */ - dst = gd->bd->bi_dram[0].start + le64_to_cpu(ih->text_offset); + dst = images->ep & ~(ih->text_offset); + if (dst < gd->bd->bi_dram[0].start) + dst = gd->bd->bi_dram[0].start + le64_to_cpu(ih->text_offset); unmap_sysmem(ih); -- 2.6.2