summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMario Six <mario.six@gdsys.cc>2017-01-11 16:00:53 +0100
committerStefan Roese <sr@denx.de>2017-02-01 09:03:15 +0100
commit94084eea3bd33a8a10b55a9717bd6ba762826323 (patch)
tree2c4ee25916aa0c6ce2997d013be54d8afbe09926 /tools
parent7690be35deaeac1cb51a5f7896c2a46afabdfad3 (diff)
downloadu-boot-imx-94084eea3bd33a8a10b55a9717bd6ba762826323.zip
u-boot-imx-94084eea3bd33a8a10b55a9717bd6ba762826323.tar.gz
u-boot-imx-94084eea3bd33a8a10b55a9717bd6ba762826323.tar.bz2
tools: kwbimage: Fix dest addr
To enable secure boot, we need to jump back into the BootROM to continue the SoC's boot process instead of letting the SPL load and run the main U-Boot image. But, since the u-boot-spl.img (including the 64 byte header) is loaded by the SoC as the main image, we need to compensate for the header length to get a correct entry point. Thus, we subtract the header size from the destination address, so that the execution address points at the actual entry point of the image. The current boards ignore both parameters anyway, so this change shouldn't concern them. Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'tools')
-rw-r--r--tools/kwbimage.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 69844d9..e04d319 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -410,7 +410,8 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
cpu_to_le32(payloadsz - headersz + sizeof(uint32_t));
main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF);
main_hdr->headersz_msb = (headersz & 0xFFFF0000) >> 16;
- main_hdr->destaddr = cpu_to_le32(params->addr);
+ main_hdr->destaddr = cpu_to_le32(params->addr)
+ - sizeof(image_header_t);
main_hdr->execaddr = cpu_to_le32(params->ep);
main_hdr->srcaddr = cpu_to_le32(headersz);
main_hdr->ext = hasext;