]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cmd: mvebu/bubt: Fix parsing SATA kwbimage
authorPali Rohár <pali@kernel.org>
Sat, 21 Jan 2023 12:59:20 +0000 (13:59 +0100)
committerStefan Roese <sr@denx.de>
Wed, 1 Mar 2023 05:39:17 +0000 (06:39 +0100)
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.

Reject invalid and accept valid SATA images.

Fixes: 5a0653493307 ("cmd: mvebu/bubt: Check for A38x image data checksum")
Signed-off-by: Pali Rohár <pali@kernel.org>
cmd/mvebu/bubt.c

index 6bb84da03ed6b7e409bca98025ef746aef985898..2bcdf145f64a9dcf61b931abfec1d3db8ac337bc 100644 (file)
@@ -738,14 +738,8 @@ static int check_image_header(void)
        offset = le32_to_cpu(hdr->srcaddr);
        size = le32_to_cpu(hdr->blocksize);
 
-       if (hdr->blockid == 0x78) { /* SATA id */
-               if (offset < 1) {
-                       printf("Error: Bad A38x image srcaddr.\n");
-                       return -ENOEXEC;
-               }
-               offset -= 1;
+       if (hdr->blockid == 0x78) /* SATA id */
                offset *= 512;
-       }
 
        if (offset % 4 != 0 || size < 4 || size % 4 != 0) {
                printf("Error: Bad A38x image blocksize.\n");