[PATCH] toradex: configblock: fix module revision in config block

Oleksandr Suvorov oleksandr.suvorov at toradex.com
Wed Apr 7 16:28:53 CEST 2021


On Wed, Apr 7, 2021 at 3:31 PM <denys.drozdov at toradex.com> wrote:
>
> From: Denys Drozdov <denys.drozdov at toradex.com>
>
> 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 at toradex.com>

Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov at toradex.com>

> ---
>  board/toradex/common/tdx-cfg-block.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
> index adab0a0802..9be58d538b 100644
> --- a/board/toradex/common/tdx-cfg-block.c
> +++ b/board/toradex/common/tdx-cfg-block.c
> @@ -555,6 +555,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;
> @@ -563,7 +565,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);
> --
> 2.17.1
>


-- 
Best regards
Oleksandr Suvorov

Toradex AG
Ebenaustrasse 10 | 6048 Horw | Switzerland | T: +41 41 500 48 00


More information about the U-Boot mailing list