summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <[email protected]>2023-01-21 13:45:36 +0100
committerStefan Roese <[email protected]>2023-03-01 06:39:17 +0100
commite1c4ed57d5190e3064ae10ae3a87cdc75d2786fc (patch)
tree8f8d16327944cf5afe5e15bb0a3291a08663404b
parent954c94aaccf825d0142b3a36ff65f46721f4c733 (diff)
tools: kwboot: Fix parsing SATA kwbimage
Despite the official specification, Marvell BootROM does not interpret srcaddr from SATA image as number of sectors the beginning of the hard drive, but as number of sectors relative to the main header. To parse SATA kwbimage in the same way as Marvell BootROM, it is needed to interpret srcaddr as relative offset to the main header. This change fixes loading of SATA images via kwboot over UART. Fixes: 792e42355083 ("tools: kwboot: Patch source address in image header") Signed-off-by: Pali Rohár <[email protected]>
-rw-r--r--tools/kwboot.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/tools/kwboot.c b/tools/kwboot.c
index 188f944263f..bf410520de6 100644
--- a/tools/kwboot.c
+++ b/tools/kwboot.c
@@ -1888,10 +1888,7 @@ kwboot_img_patch(void *img, size_t *size, int baudrate)
switch (hdr->blockid) {
case IBR_HDR_SATA_ID:
- if (srcaddr < 1)
- goto err;
-
- hdr->srcaddr = cpu_to_le32((srcaddr - 1) * 512);
+ hdr->srcaddr = cpu_to_le32(srcaddr * 512);
break;
case IBR_HDR_PEX_ID: