summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Drozdov <denys.drozdov@toradex.com>2021-04-05 17:33:21 +0300
committerDenys Drozdov <denys.drozdov@toradex.com>2021-04-07 10:39:50 +0300
commitf48710dc4d9ee201f63a82242a4611d0f1f5f9b2 (patch)
treec6d8472b7aeb3fcfc10827cac535ef0cfd8d2119
parent5c2d46b32533cd873c7d821d9842905c9ef48765 (diff)
toradex: configblock: fix module revision in config block
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 6th,7th digits of PID8 to store module revision. Related-to: ELB-3893 Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
-rw-r--r--board/toradex/common/tdx-cfg-block.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 68ec51f3ec..aff3dd4d32 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -421,6 +421,8 @@ static int get_cfgblock_interactive(void)
static int get_cfgblock_barcode(char *barcode)
{
+ char revision[3] = {barcode[6], barcode[7], '\0'};
+
if (strlen(barcode) < 16) {
printf("Argument too short, barcode is 16 chars long\n");
return -1;
@@ -429,7 +431,7 @@ static int get_cfgblock_barcode(char *barcode)
/* Get hardware information from the first 8 digits */
tdx_hw_tag.ver_major = barcode[4] - '0';
tdx_hw_tag.ver_minor = barcode[5] - '0';
- tdx_hw_tag.ver_assembly = barcode[7] - '0';
+ tdx_hw_tag.ver_assembly = simple_strtoul(revision, NULL, 10);
barcode[4] = '\0';
tdx_hw_tag.prodid = simple_strtoul(barcode, NULL, 10);