]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: phytec: common: Fix eepom is empty check
authorDaniel Schultz <d.schultz@phytec.de>
Fri, 19 Apr 2024 15:55:39 +0000 (08:55 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 29 Apr 2024 16:55:58 +0000 (10:55 -0600)
The ptr variable is currently defined as int and sizeof
returns the size of the eeprom data struct as Byte (32 in total).

In case the eeprom is empty, the check, if the eeprom is empty,
will most likely stop after 8 iterations because it will continue
with the stack which should contain some data. Therefore, the
init function will detect an empty EEPROM as API0 and return with
the valid flag set to True.

Fixes: dc22188cdc8 ("board: phytec: Add common PHYTEC SoM detection")
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
board/phytec/common/phytec_som_detection.c

index 5a4cc9e8b022a8d795a58e5aad0e7dc1b67641d9..78c173df20d44c415d9ba8a3460e63e489452e3a 100644 (file)
@@ -53,7 +53,7 @@ int phytec_eeprom_data_init(struct phytec_eeprom_data *data,
 {
        int ret, i;
        unsigned int crc;
-       int *ptr;
+       u8 *ptr;
        const unsigned int payload_size = sizeof(struct phytec_eeprom_payload);
 
        if (!data)
@@ -85,7 +85,7 @@ int phytec_eeprom_data_init(struct phytec_eeprom_data *data,
                goto err;
        }
 
-       ptr = (int *)data;
+       ptr = (u8 *)data;
        for (i = 0; i < payload_size; ++i)
                if (ptr[i] != 0x0)
                        break;