]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
toradex: configblock: fix module revision in config block
authorDenys Drozdov <denys.drozdov@toradex.com>
Wed, 7 Apr 2021 12:28:24 +0000 (15:28 +0300)
committerTom Rini <trini@konsulko.com>
Tue, 20 Apr 2021 11:31:12 +0000 (07:31 -0400)
U-boot might display wrong module revision information
for modules with an assembly version 'K'. "cfgblock create"
does not takes into account all revision digits from PID8.

This fix takes into account all digits of PID8
to store module revision.

Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
board/toradex/common/tdx-cfg-block.c

index b00467f976854aaadefdd0da8734d2a4866fca5c..93eb20cf6310d1cfdcaee8ff0b12738079856b7d 100644 (file)
@@ -556,6 +556,8 @@ static int get_cfgblock_interactive(void)
 static int get_cfgblock_barcode(char *barcode, struct toradex_hw *tag,
                                u32 *serial)
 {
+       char revision[3] = {barcode[6], barcode[7], '\0'};
+
        if (strlen(barcode) < 16) {
                printf("Argument too short, barcode is 16 chars long\n");
                return -1;
@@ -564,7 +566,7 @@ static int get_cfgblock_barcode(char *barcode, struct toradex_hw *tag,
        /* Get hardware information from the first 8 digits */
        tag->ver_major = barcode[4] - '0';
        tag->ver_minor = barcode[5] - '0';
-       tag->ver_assembly = barcode[7] - '0';
+       tag->ver_assembly = simple_strtoul(revision, NULL, 10);
 
        barcode[4] = '\0';
        tag->prodid = simple_strtoul(barcode, NULL, 10);