mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
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)
|
if (srcaddr == 0xFFFFFFFF)
|
||||||
hdr->srcaddr = cpu_to_le32(hdrsz);
|
hdr->srcaddr = cpu_to_le32(hdrsz);
|
||||||
break;
|
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);
|
is_secure = kwboot_img_is_secure(img);
|
||||||
|
|
Loading…
Reference in a new issue