[PATCH RFC u-boot-mvebu 06/59] tools: kwboot: Fix parsing SATA kwbimage

Pali Rohár pali at kernel.org
Tue Feb 21 21:18:32 CET 2023


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 <pali at kernel.org>
---
 tools/kwboot.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/tools/kwboot.c b/tools/kwboot.c
index 188f944263fa..bf410520de63 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:
-- 
2.20.1



More information about the U-Boot mailing list