[PATCH RFC u-boot-mvebu 04/59] cmd: mvebu/bubt: Fix parsing SDIO kwbimage

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


Despite the official specification, Marvell BootROM does not interpret
srcaddr from SDIO image as offset in number of sectors (like for SATA
image), but as offset in bytes (like for all other images except SATA).

To ensure that we do not store invalid SDIO image to the boot location
(read by the Marvell BootROM), we need to check that image is valid
and srcaddr is intepreted in bytes, in the same way as it is done by
Marvell BootROM.

This fixes rejecting valid and accepting invalid SDIO images by bubt command.

Fixes: 5a0653493307 ("cmd: mvebu/bubt: Check for A38x image data checksum")
Signed-off-by: Pali Rohár <pali at kernel.org>
---
 cmd/mvebu/bubt.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
index 1efbe2e607ca..6bb84da03ed6 100644
--- a/cmd/mvebu/bubt.c
+++ b/cmd/mvebu/bubt.c
@@ -747,9 +747,6 @@ static int check_image_header(void)
 		offset *= 512;
 	}
 
-	if (hdr->blockid == 0xAE) /* SDIO id */
-		offset *= 512;
-
 	if (offset % 4 != 0 || size < 4 || size % 4 != 0) {
 		printf("Error: Bad A38x image blocksize.\n");
 		return -ENOEXEC;
-- 
2.20.1



More information about the U-Boot mailing list