Skip to content
Snippets Groups Projects
Commit 94084eea authored by Mario Six's avatar Mario Six Committed by Stefan Roese
Browse files

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: default avatarMario Six <mario.six@gdsys.cc>
Reviewed-by: default avatarStefan Roese <sr@denx.de>
Signed-off-by: default avatarStefan Roese <sr@denx.de>
parent 7690be35
No related branches found
No related tags found
No related merge requests found
...@@ -410,7 +410,8 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, ...@@ -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)); cpu_to_le32(payloadsz - headersz + sizeof(uint32_t));
main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF); main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF);
main_hdr->headersz_msb = (headersz & 0xFFFF0000) >> 16; 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->execaddr = cpu_to_le32(params->ep);
main_hdr->srcaddr = cpu_to_le32(headersz); main_hdr->srcaddr = cpu_to_le32(headersz);
main_hdr->ext = hasext; main_hdr->ext = hasext;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment