All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v1 0/3] toradex: common: fix/improve config block handling
@ 2019-02-01 15:18 Marcel Ziswiler
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’ Marcel Ziswiler
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:18 UTC (permalink / raw)
  To: u-boot


This series adds a -y parameter to cfgblock create command, unifies the
behaviour when the config block is missing and fixes an off-by-one
issue.


Bhuvanchandra DV (1):
  toradex: common: unify behaviour when config block is missing

Dominik Sliwa (1):
  toradex: configblock: add an -y parameter to 'cfgblock create’

Marcel Ziswiler (1):
  tdx-cfg-block: fix off by one issue

 board/toradex/common/tdx-cfg-block.c | 41 ++++++++++++++++++----------
 board/toradex/common/tdx-common.c    | 33 +++++++++++-----------
 2 files changed, 44 insertions(+), 30 deletions(-)

-- 
2.20.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’
  2019-02-01 15:18 [U-Boot] [PATCH v1 0/3] toradex: common: fix/improve config block handling Marcel Ziswiler
@ 2019-02-01 15:18 ` Marcel Ziswiler
  2019-03-07  5:08   ` Igor Opaniuk
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing Marcel Ziswiler
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue Marcel Ziswiler
  2 siblings, 1 reply; 7+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:18 UTC (permalink / raw)
  To: u-boot

From: Dominik Sliwa <dominik.sliwa@toradex.com>

Add an optional -y parameter to 'cfgblock create’ to simplify
automation.

Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/common/tdx-cfg-block.c | 39 ++++++++++++++++++----------
 1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index d4f5b1803a..2fcb998ae4 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -418,6 +418,7 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 	int offset = 0;
 	int ret = CMD_RET_SUCCESS;
 	int err;
+	int force_overwrite = 0;
 
 	/* Allocate RAM area for config block */
 	config_block = memalign(ARCH_DMA_MINALIGN, size);
@@ -428,6 +429,11 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 
 	memset(config_block, 0xff, size);
 
+	if (argc >= 3) {
+		if (argv[2][0] == '-' && argv[2][1] == 'y')
+			force_overwrite = 1;
+	}
+
 	read_tdx_cfg_block();
 	if (valid_cfgblock) {
 #if defined(CONFIG_TDX_CFG_BLOCK_IS_IN_NAND)
@@ -448,24 +454,31 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 		       CONFIG_TDX_CFG_BLOCK_OFFSET);
 		goto out;
 #else
-		char message[CONFIG_SYS_CBSIZE];
-		sprintf(message,
-			"A valid Toradex config block is present, still recreate? [y/N] ");
+		if (!force_overwrite) {
+			char message[CONFIG_SYS_CBSIZE];
 
-		if (!cli_readline(message))
-			goto out;
+			sprintf(message,
+				"A valid Toradex config block is present, still recreate? [y/N] ");
 
-		if (console_buffer[0] != 'y' && console_buffer[0] != 'Y')
-			goto out;
+			if (!cli_readline(message))
+				goto out;
+
+			if (console_buffer[0] != 'y' &&
+			    console_buffer[0] != 'Y')
+				goto out;
+		}
 #endif
 	}
 
 	/* Parse new Toradex config block data... */
-	if (argc < 3)
+	if (argc < 3 || (force_overwrite && argc < 4)) {
 		err = get_cfgblock_interactive();
-	else
-		err = get_cfgblock_barcode(argv[2]);
-
+	} else {
+		if (force_overwrite)
+			err = get_cfgblock_barcode(argv[3]);
+		else
+			err = get_cfgblock_barcode(argv[2]);
+	}
 	if (err) {
 		ret = CMD_RET_FAILURE;
 		goto out;
@@ -549,8 +562,8 @@ static int do_cfgblock(cmd_tbl_t *cmdtp, int flag, int argc,
 }
 
 U_BOOT_CMD(
-	cfgblock, 3, 0, do_cfgblock,
+	cfgblock, 4, 0, do_cfgblock,
 	"Toradex config block handling commands",
-	"create [barcode] - (Re-)create Toradex config block\n"
+	"create [-y] [barcode] - (Re-)create Toradex config block\n"
 	"cfgblock reload - Reload Toradex config block from flash"
 );
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing
  2019-02-01 15:18 [U-Boot] [PATCH v1 0/3] toradex: common: fix/improve config block handling Marcel Ziswiler
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’ Marcel Ziswiler
@ 2019-02-01 15:18 ` Marcel Ziswiler
  2019-03-07  5:21   ` Igor Opaniuk
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue Marcel Ziswiler
  2 siblings, 1 reply; 7+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:18 UTC (permalink / raw)
  To: u-boot

From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>

If the config block is missing, various things may fail or behave
strangely on certain modules. This patch unifies that behaviour by
using a fake MAC address, until user updates the config block.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/common/tdx-common.c | 33 ++++++++++++++++---------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c
index fde230c955..e7234686ae 100644
--- a/board/toradex/common/tdx-common.c
+++ b/board/toradex/common/tdx-common.c
@@ -68,20 +68,26 @@ int show_board_info(void)
 	unsigned char ethaddr[6];
 
 	if (read_tdx_cfg_block()) {
-		printf("Missing Toradex config block\n");
+		printf("MISSING TORADEX CONFIG BLOCK\n");
+		tdx_eth_addr.oui = htonl(0x00142dUL << 8);
+		tdx_eth_addr.nic = htonl(tdx_serial << 8);
 		checkboard();
-		return 0;
+	} else {
+		/* board serial-number */
+		sprintf(tdx_serial_str, "%08u", tdx_serial);
+		sprintf(tdx_board_rev_str, "V%1d.%1d%c",
+			tdx_hw_tag.ver_major,
+			tdx_hw_tag.ver_minor,
+			(char)tdx_hw_tag.ver_assembly + 'A');
+
+		env_set("serial#", tdx_serial_str);
+
+		printf("Model: Toradex %s %s, Serial# %s\n",
+		       toradex_modules[tdx_hw_tag.prodid],
+		       tdx_board_rev_str,
+		       tdx_serial_str);
 	}
 
-	/* board serial-number */
-	sprintf(tdx_serial_str, "%08u", tdx_serial);
-	sprintf(tdx_board_rev_str, "V%1d.%1d%c",
-		tdx_hw_tag.ver_major,
-		tdx_hw_tag.ver_minor,
-		(char)tdx_hw_tag.ver_assembly + 'A');
-
-	env_set("serial#", tdx_serial_str);
-
 	/*
 	 * Check if environment contains a valid MAC address,
 	 * set the one from config block if not
@@ -101,11 +107,6 @@ int show_board_info(void)
 	}
 #endif
 
-	printf("Model: Toradex %s %s, Serial# %s\n",
-	       toradex_modules[tdx_hw_tag.prodid],
-	       tdx_board_rev_str,
-	       tdx_serial_str);
-
 	return 0;
 }
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue
  2019-02-01 15:18 [U-Boot] [PATCH v1 0/3] toradex: common: fix/improve config block handling Marcel Ziswiler
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’ Marcel Ziswiler
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing Marcel Ziswiler
@ 2019-02-01 15:18 ` Marcel Ziswiler
  2019-03-07  5:24   ` Igor Opaniuk
  2 siblings, 1 reply; 7+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:18 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Fix toradex_modules array off by one issue potentially leading to
spurious printout during boot e.g.

    Model: Toradex  V1.2A,

instead of

    Model: Toradex UNKNOWN MODULE V1.2A.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>

---

 board/toradex/common/tdx-cfg-block.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 2fcb998ae4..b90077bedc 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -261,7 +261,7 @@ int read_tdx_cfg_block(void)
 	}
 
 	/* Cap product id to avoid issues with a yet unknown one */
-	if (tdx_hw_tag.prodid > (sizeof(toradex_modules) /
+	if (tdx_hw_tag.prodid >= (sizeof(toradex_modules) /
 				  sizeof(toradex_modules[0])))
 		tdx_hw_tag.prodid = 0;
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’ Marcel Ziswiler
@ 2019-03-07  5:08   ` Igor Opaniuk
  0 siblings, 0 replies; 7+ messages in thread
From: Igor Opaniuk @ 2019-03-07  5:08 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Fri, 1 Feb 2019 at 17:24, Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Dominik Sliwa <dominik.sliwa@toradex.com>
>
> Add an optional -y parameter to 'cfgblock create’ to simplify
> automation.
>
> Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
> Acked-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
>  board/toradex/common/tdx-cfg-block.c | 39 ++++++++++++++++++----------
>  1 file changed, 26 insertions(+), 13 deletions(-)
>
> diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
> index d4f5b1803a..2fcb998ae4 100644
> --- a/board/toradex/common/tdx-cfg-block.c
> +++ b/board/toradex/common/tdx-cfg-block.c
> @@ -418,6 +418,7 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
>         int offset = 0;
>         int ret = CMD_RET_SUCCESS;
>         int err;
> +       int force_overwrite = 0;
>
>         /* Allocate RAM area for config block */
>         config_block = memalign(ARCH_DMA_MINALIGN, size);
> @@ -428,6 +429,11 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
>
>         memset(config_block, 0xff, size);
>
> +       if (argc >= 3) {
> +               if (argv[2][0] == '-' && argv[2][1] == 'y')
> +                       force_overwrite = 1;
> +       }
> +
>         read_tdx_cfg_block();
>         if (valid_cfgblock) {
>  #if defined(CONFIG_TDX_CFG_BLOCK_IS_IN_NAND)
> @@ -448,24 +454,31 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
>                        CONFIG_TDX_CFG_BLOCK_OFFSET);
>                 goto out;
>  #else
> -               char message[CONFIG_SYS_CBSIZE];
> -               sprintf(message,
> -                       "A valid Toradex config block is present, still recreate? [y/N] ");
> +               if (!force_overwrite) {
> +                       char message[CONFIG_SYS_CBSIZE];
>
> -               if (!cli_readline(message))
> -                       goto out;
> +                       sprintf(message,
> +                               "A valid Toradex config block is present, still recreate? [y/N] ");
>
> -               if (console_buffer[0] != 'y' && console_buffer[0] != 'Y')
> -                       goto out;
> +                       if (!cli_readline(message))
> +                               goto out;
> +
> +                       if (console_buffer[0] != 'y' &&
> +                           console_buffer[0] != 'Y')
> +                               goto out;
> +               }
>  #endif
>         }
>
>         /* Parse new Toradex config block data... */
> -       if (argc < 3)
> +       if (argc < 3 || (force_overwrite && argc < 4)) {
>                 err = get_cfgblock_interactive();
> -       else
> -               err = get_cfgblock_barcode(argv[2]);
> -
> +       } else {
> +               if (force_overwrite)
> +                       err = get_cfgblock_barcode(argv[3]);
> +               else
> +                       err = get_cfgblock_barcode(argv[2]);
> +       }
>         if (err) {
>                 ret = CMD_RET_FAILURE;
>                 goto out;
> @@ -549,8 +562,8 @@ static int do_cfgblock(cmd_tbl_t *cmdtp, int flag, int argc,
>  }
>
>  U_BOOT_CMD(
> -       cfgblock, 3, 0, do_cfgblock,
> +       cfgblock, 4, 0, do_cfgblock,
>         "Toradex config block handling commands",
> -       "create [barcode] - (Re-)create Toradex config block\n"
> +       "create [-y] [barcode] - (Re-)create Toradex config block\n"
>         "cfgblock reload - Reload Toradex config block from flash"
>  );
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing Marcel Ziswiler
@ 2019-03-07  5:21   ` Igor Opaniuk
  0 siblings, 0 replies; 7+ messages in thread
From: Igor Opaniuk @ 2019-03-07  5:21 UTC (permalink / raw)
  To: u-boot

Just some minor stuff:

On Fri, 1 Feb 2019 at 17:22, Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
>
> If the config block is missing, various things may fail or behave
> strangely on certain modules. This patch unifies that behaviour by
> using a fake MAC address, until user updates the config block.
>
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
>  board/toradex/common/tdx-common.c | 33 ++++++++++++++++---------------
>  1 file changed, 17 insertions(+), 16 deletions(-)
>
> diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c
> index fde230c955..e7234686ae 100644
> --- a/board/toradex/common/tdx-common.c
> +++ b/board/toradex/common/tdx-common.c
> @@ -68,20 +68,26 @@ int show_board_info(void)
>         unsigned char ethaddr[6];
>
>         if (read_tdx_cfg_block()) {
> -               printf("Missing Toradex config block\n");
> +               printf("MISSING TORADEX CONFIG BLOCK\n");
> +               tdx_eth_addr.oui = htonl(0x00142dUL << 8);

Could you please introduce a define for this magic number ("0x00142dUL")?

> +               tdx_eth_addr.nic = htonl(tdx_serial << 8);
>                 checkboard();
> -               return 0;
> +       } else {
> +               /* board serial-number */
redundant comment, this is obvious that the next few lines are for
printing board serial number.
> +               sprintf(tdx_serial_str, "%08u", tdx_serial);
> +               sprintf(tdx_board_rev_str, "V%1d.%1d%c",
> +                       tdx_hw_tag.ver_major,
> +                       tdx_hw_tag.ver_minor,
> +                       (char)tdx_hw_tag.ver_assembly + 'A');
> +
> +               env_set("serial#", tdx_serial_str);
> +
> +               printf("Model: Toradex %s %s, Serial# %s\n",
> +                      toradex_modules[tdx_hw_tag.prodid],
> +                      tdx_board_rev_str,
> +                      tdx_serial_str);
>         }
>
> -       /* board serial-number */
> -       sprintf(tdx_serial_str, "%08u", tdx_serial);
> -       sprintf(tdx_board_rev_str, "V%1d.%1d%c",
> -               tdx_hw_tag.ver_major,
> -               tdx_hw_tag.ver_minor,
> -               (char)tdx_hw_tag.ver_assembly + 'A');
> -
> -       env_set("serial#", tdx_serial_str);
> -
>         /*
>          * Check if environment contains a valid MAC address,
>          * set the one from config block if not
> @@ -101,11 +107,6 @@ int show_board_info(void)
>         }
>  #endif
>
> -       printf("Model: Toradex %s %s, Serial# %s\n",
> -              toradex_modules[tdx_hw_tag.prodid],
> -              tdx_board_rev_str,
> -              tdx_serial_str);
> -
>         return 0;
>  }
>
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue
  2019-02-01 15:18 ` [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue Marcel Ziswiler
@ 2019-03-07  5:24   ` Igor Opaniuk
  0 siblings, 0 replies; 7+ messages in thread
From: Igor Opaniuk @ 2019-03-07  5:24 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Fri, 1 Feb 2019 at 17:25, Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Fix toradex_modules array off by one issue potentially leading to
> spurious printout during boot e.g.
>
>     Model: Toradex  V1.2A,
>
> instead of
>
>     Model: Toradex UNKNOWN MODULE V1.2A.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
>
> ---
>
>  board/toradex/common/tdx-cfg-block.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
> index 2fcb998ae4..b90077bedc 100644
> --- a/board/toradex/common/tdx-cfg-block.c
> +++ b/board/toradex/common/tdx-cfg-block.c
> @@ -261,7 +261,7 @@ int read_tdx_cfg_block(void)
>         }
>
>         /* Cap product id to avoid issues with a yet unknown one */
> -       if (tdx_hw_tag.prodid > (sizeof(toradex_modules) /
> +       if (tdx_hw_tag.prodid >= (sizeof(toradex_modules) /
>                                   sizeof(toradex_modules[0])))
>                 tdx_hw_tag.prodid = 0;
>
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-03-07  5:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-01 15:18 [U-Boot] [PATCH v1 0/3] toradex: common: fix/improve config block handling Marcel Ziswiler
2019-02-01 15:18 ` [U-Boot] [PATCH v1 1/3] toradex: configblock: add an -y parameter to 'cfgblock create’ Marcel Ziswiler
2019-03-07  5:08   ` Igor Opaniuk
2019-02-01 15:18 ` [U-Boot] [PATCH v1 2/3] toradex: common: unify behaviour when config block is missing Marcel Ziswiler
2019-03-07  5:21   ` Igor Opaniuk
2019-02-01 15:18 ` [U-Boot] [PATCH v1 3/3] tdx-cfg-block: fix off by one issue Marcel Ziswiler
2019-03-07  5:24   ` Igor Opaniuk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.