tools: kwboot: Patch destination address to DDR area for SPI image
SPI/NOR kwbimage may have destination address set to 0xFFFFFFFF, which means that the image is not downloaded to DDR but rather it is executed directly from SPI/NOR. In this case execution address is set to SPI/NOR area. When patching image to UART type, change destination and execution addresses from SPI/NOR XIP area to DDR area 0x00800000 (which is default for A38x). Signed-off-by: Pali Rohár <pali@kernel.org> [ refactored ] Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
792e423550
commit
f2c644e0b8
1 changed files with 8 additions and 0 deletions
|
@ -836,6 +836,14 @@ kwboot_img_patch_hdr(void *img, size_t size)
|
|||
if (srcaddr == 0xFFFFFFFF)
|
||||
hdr->srcaddr = cpu_to_le32(hdrsz);
|
||||
break;
|
||||
|
||||
case IBR_HDR_SPI_ID:
|
||||
if (hdr->destaddr == cpu_to_le32(0xFFFFFFFF)) {
|
||||
kwboot_printv("Patching destination and execution addresses from SPI/NOR XIP area to DDR area 0x00800000\n");
|
||||
hdr->destaddr = cpu_to_le32(0x00800000);
|
||||
hdr->execaddr = cpu_to_le32(0x00800000);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
is_secure = kwboot_img_is_secure(img);
|
||||
|
|
Loading…
Reference in a new issue