[U-Boot] [PATCH 0/5] toradex: configblock: apalis-imx8 and colibri-imx8x fixes

This series fixes some shortcomings of the current apalis-imx8 and colibri-imx8x SKU handling.
Marcel Ziswiler (4): toradex: configblock: generic wi-fi/bt handling toradex: configblock: fix colibri imx8x target toradex: configblock: fix apalis imx8 target toradex: configblock: fix long line
Stefan Agner (1): toradex: configblock: initialize MMC before switching partition
board/toradex/common/tdx-cfg-block.c | 55 ++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 12 deletions(-)

From: Stefan Agner stefan.agner@toradex.com
If the module is in serial downloader mode, we do no longer read the environment from eMMC. Therefor, the eMMC is unitialized when trying to read the config block. Use mmc_init to initialize the selected MMC device before using it.
Note: In case the MMC has already been initialized, the mmc_init detects that and returns immediately.
Signed-off-by: Stefan Agner stefan.agner@toradex.com Acked-by: Max Krummenacher max.krummenacher@toradex.com
---
board/toradex/common/tdx-cfg-block.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index f69c4433b2..67e0557f67 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -129,6 +129,10 @@ static int tdx_cfg_block_mmc_storage(u8 *config_block, int write) ret = -ENODEV; goto out; } + if (mmc_init(mmc)) { + puts("MMC init failed\n"); + return -EINVAL; + } if (part != mmc_get_blk_desc(mmc)->hwpart) { if (blk_select_hwpart_devnum(IF_TYPE_MMC, dev, part)) { puts("MMC partition switch failed\n");

On Tue, Jul 9, 2019 at 12:42 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Stefan Agner stefan.agner@toradex.com
If the module is in serial downloader mode, we do no longer read the environment from eMMC. Therefor, the eMMC is unitialized when trying to read the config block. Use mmc_init to initialize the selected MMC device before using it.
Note: In case the MMC has already been initialized, the mmc_init detects that and returns immediately.
Signed-off-by: Stefan Agner stefan.agner@toradex.com Acked-by: Max Krummenacher max.krummenacher@toradex.com
board/toradex/common/tdx-cfg-block.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index f69c4433b2..67e0557f67 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -129,6 +129,10 @@ static int tdx_cfg_block_mmc_storage(u8 *config_block, int write) ret = -ENODEV; goto out; }
if (mmc_init(mmc)) {
puts("MMC init failed\n");
return -EINVAL;
} if (part != mmc_get_blk_desc(mmc)->hwpart) { if (blk_select_hwpart_devnum(IF_TYPE_MMC, dev, part)) { puts("MMC partition switch failed\n");
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com

On Tue, 9 Jul 2019 at 12:42, Marcel Ziswiler marcel@ziswiler.com wrote:
From: Stefan Agner stefan.agner@toradex.com
If the module is in serial downloader mode, we do no longer read the environment from eMMC. Therefor, the eMMC is unitialized when trying to read the config block. Use mmc_init to initialize the selected MMC device before using it.
Note: In case the MMC has already been initialized, the mmc_init detects that and returns immediately.
Signed-off-by: Stefan Agner stefan.agner@toradex.com Acked-by: Max Krummenacher max.krummenacher@toradex.com
board/toradex/common/tdx-cfg-block.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index f69c4433b2..67e0557f67 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -129,6 +129,10 @@ static int tdx_cfg_block_mmc_storage(u8 *config_block, int write) ret = -ENODEV; goto out; }
if (mmc_init(mmc)) {
puts("MMC init failed\n");
return -EINVAL;
} if (part != mmc_get_blk_desc(mmc)->hwpart) { if (blk_select_hwpart_devnum(IF_TYPE_MMC, dev, part)) { puts("MMC partition switch failed\n");
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com

From: Marcel Ziswiler marcel.ziswiler@toradex.com
Make the interactive Wi-Fi/BT handling generic by pulling it out of the Colibri iMX6ULL interactive part to be re-used for Apalis iMX8 and Colibri iMX8X.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
board/toradex/common/tdx-cfg-block.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 67e0557f67..73f4a50567 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -291,6 +291,7 @@ static int get_cfgblock_interactive(void) char message[CONFIG_SYS_CBSIZE]; char *soc; char it = 'n'; + char wb = 'n'; int len;
/* Unknown module by default */ @@ -300,10 +301,18 @@ static int get_cfgblock_interactive(void) sprintf(message, "Is the module the 312 MHz version? [y/N] "); else sprintf(message, "Is the module an IT version? [y/N] "); - len = cli_readline(message); it = console_buffer[0];
+#if defined(CONFIG_TARGET_APALIS_IMX8) || \ + defined(CONFIG_TARGET_COLIBRI_IMX6ULL) || \ + defined(CONFIG_TARGET_COLIBRI_IMX8X) + sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \ + "[y/N] "); + len = cli_readline(message); + wb = console_buffer[0]; +#endif + soc = env_get("soc"); if (!strcmp("mx6", soc)) { #ifdef CONFIG_TARGET_APALIS_IMX6 @@ -331,12 +340,6 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX6S; } #elif CONFIG_TARGET_COLIBRI_IMX6ULL - char wb = 'n'; - - sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \ - "[y/N] "); - len = cli_readline(message); - wb = console_buffer[0]; if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT;

On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
Make the interactive Wi-Fi/BT handling generic by pulling it out of the Colibri iMX6ULL interactive part to be re-used for Apalis iMX8 and Colibri iMX8X.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 67e0557f67..73f4a50567 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -291,6 +291,7 @@ static int get_cfgblock_interactive(void) char message[CONFIG_SYS_CBSIZE]; char *soc; char it = 'n';
char wb = 'n'; int len; /* Unknown module by default */
@@ -300,10 +301,18 @@ static int get_cfgblock_interactive(void) sprintf(message, "Is the module the 312 MHz version? [y/N] "); else sprintf(message, "Is the module an IT version? [y/N] ");
len = cli_readline(message); it = console_buffer[0];
+#if defined(CONFIG_TARGET_APALIS_IMX8) || \
defined(CONFIG_TARGET_COLIBRI_IMX6ULL) || \
defined(CONFIG_TARGET_COLIBRI_IMX8X)
sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
"[y/N] ");
len = cli_readline(message);
wb = console_buffer[0];
+#endif
soc = env_get("soc"); if (!strcmp("mx6", soc)) {
#ifdef CONFIG_TARGET_APALIS_IMX6 @@ -331,12 +340,6 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX6S; } #elif CONFIG_TARGET_COLIBRI_IMX6ULL
char wb = 'n';
sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
"[y/N] ");
len = cli_readline(message);
wb = console_buffer[0]; if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com

On Tue, 9 Jul 2019 at 12:43, Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
Make the interactive Wi-Fi/BT handling generic by pulling it out of the Colibri iMX6ULL interactive part to be re-used for Apalis iMX8 and Colibri iMX8X.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 67e0557f67..73f4a50567 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -291,6 +291,7 @@ static int get_cfgblock_interactive(void) char message[CONFIG_SYS_CBSIZE]; char *soc; char it = 'n';
char wb = 'n'; int len; /* Unknown module by default */
@@ -300,10 +301,18 @@ static int get_cfgblock_interactive(void) sprintf(message, "Is the module the 312 MHz version? [y/N] "); else sprintf(message, "Is the module an IT version? [y/N] ");
len = cli_readline(message); it = console_buffer[0];
+#if defined(CONFIG_TARGET_APALIS_IMX8) || \
defined(CONFIG_TARGET_COLIBRI_IMX6ULL) || \
defined(CONFIG_TARGET_COLIBRI_IMX8X)
sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
"[y/N] ");
len = cli_readline(message);
wb = console_buffer[0];
+#endif
soc = env_get("soc"); if (!strcmp("mx6", soc)) {
#ifdef CONFIG_TARGET_APALIS_IMX6 @@ -331,12 +340,6 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX6S; } #elif CONFIG_TARGET_COLIBRI_IMX6ULL
char wb = 'n';
sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
"[y/N] ");
len = cli_readline(message);
wb = console_buffer[0]; if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com

From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Colibri iMX8X target got re-named late in the cycle which we forgot to reflect here. Furthermore, it was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
board/toradex/common/tdx-cfg-block.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 73f4a50567..90df5bb2ff 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -8,7 +8,7 @@
#if defined(CONFIG_TARGET_APALIS_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ - defined(CONFIG_TARGET_COLIBRI_IMX8QXP) + defined(CONFIG_TARGET_COLIBRI_IMX8X) #include <asm/arch/sys_proto.h> #else #define is_cpu_type(cpu) (0) @@ -356,9 +356,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S; - else if (is_cpu_type(MXC_CPU_IMX8QXP)) - tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT; - else if (!strcmp("tegra20", soc)) { + else if (is_cpu_type(MXC_CPU_IMX8QXP)) { + if (it == 'y' || it == 'Y') { + if (wb == 'y' || wb == 'Y') + tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT; + else + tdx_hw_tag.prodid = COLIBRI_IMX8QXP_IT; + } else { + if (wb == 'y' || wb == 'Y') + tdx_hw_tag.prodid = COLIBRI_IMX8DX_WIFI_BT; + else + tdx_hw_tag.prodid = COLIBRI_IMX8DX; + } + } else if (!strcmp("tegra20", soc)) { if (it == 'y' || it == 'Y') if (gd->ram_size == 0x10000000) tdx_hw_tag.prodid = COLIBRI_T20_256MB_IT;

On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Colibri iMX8X target got re-named late in the cycle which we forgot to reflect here. Furthermore, it was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 73f4a50567..90df5bb2ff 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -8,7 +8,7 @@
#if defined(CONFIG_TARGET_APALIS_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \
defined(CONFIG_TARGET_COLIBRI_IMX8QXP)
defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> #else #define is_cpu_type(cpu) (0) @@ -356,9 +356,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP))
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
else if (!strcmp("tegra20", soc)) {
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
else
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = COLIBRI_IMX8DX_WIFI_BT;
else
tdx_hw_tag.prodid = COLIBRI_IMX8DX;
}
} else if (!strcmp("tegra20", soc)) { if (it == 'y' || it == 'Y') if (gd->ram_size == 0x10000000) tdx_hw_tag.prodid = COLIBRI_T20_256MB_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com

On Tue, 9 Jul 2019 at 12:43, Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Colibri iMX8X target got re-named late in the cycle which we forgot to reflect here. Furthermore, it was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 73f4a50567..90df5bb2ff 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -8,7 +8,7 @@
#if defined(CONFIG_TARGET_APALIS_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \
defined(CONFIG_TARGET_COLIBRI_IMX8QXP)
defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> #else #define is_cpu_type(cpu) (0) @@ -356,9 +356,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP))
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
else if (!strcmp("tegra20", soc)) {
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
else
tdx_hw_tag.prodid = COLIBRI_IMX8QXP_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = COLIBRI_IMX8DX_WIFI_BT;
else
tdx_hw_tag.prodid = COLIBRI_IMX8DX;
}
} else if (!strcmp("tegra20", soc)) { if (it == 'y' || it == 'Y') if (gd->ram_size == 0x10000000) tdx_hw_tag.prodid = COLIBRI_T20_256MB_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com

From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \ + defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X) #include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S; - else if (is_cpu_type(MXC_CPU_IMX8QXP)) { + else if (is_cpu_type(MXC_CPU_IMX8QM)) { + if (it == 'y' || it == 'Y') { + if (wb == 'y' || wb == 'Y') + tdx_hw_tag.prodid = APALIS_IMX8QM_WIFI_BT_IT; + else + tdx_hw_tag.prodid = APALIS_IMX8QM_IT; + } else { + if (wb == 'y' || wb == 'Y') + tdx_hw_tag.prodid = APALIS_IMX8QP_WIFI_BT; + else + tdx_hw_tag.prodid = APALIS_IMX8QP; + } + } else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;

HI Marcel,
On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid = APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = APALIS_IMX8QP_WIFI_BT;
Just curious why NXP guys decided to call this CPU type as MXC_CPU_IMX8QM, and why not to drop the last M, or even both QM (taking into account that marketing name is simple IMX8 for these SoC series [1]. and iMX8M and iMX8X respectively for M and X series), because it's not obvious for me that APALIS_IMX8QP has any relation to MXC_CPU_IMX8QM.
else
tdx_hw_tag.prodid = APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com
[1] https://en.wikipedia.org/wiki/I.MX#i.MX_8_series

Hi Igor
On Tue, 2019-07-09 at 10:27 +0000, Igor Opaniuk wrote:
HI Marcel,
On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid =
APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QP_WIFI_BT;
Just curious why NXP guys decided to call this CPU type as MXC_CPU_IMX8QM, and why not to drop the last M, or even both QM (taking into account that marketing name is simple IMX8 for these SoC series [1]. and iMX8M and iMX8X respectively for M and X series), because it's not obvious for me that APALIS_IMX8QP has any relation to MXC_CPU_IMX8QM.
Good questions. Maybe some of the NXP folks dare answering?
Cheers
Marcel
else
tdx_hw_tag.prodid = APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid =
COLIBRI_IMX8QXP_WIFI_BT_IT;
2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com
[1] https://en.wikipedia.org/wiki/I.MX#i.MX_8_series
-- Best regards - Freundliche Grüsse - Meilleures salutations
Senior Development Engineer, Igor Opaniuk
Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00 (main line)

Hi,
Subject: Re: [U-Boot] [PATCH 4/5] toradex: configblock: fix apalis imx8 target
Hi Igor
On Tue, 2019-07-09 at 10:27 +0000, Igor Opaniuk wrote:
HI Marcel,
On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid =
APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QP_WIFI_BT;
Just curious why NXP guys decided to call this CPU type as MXC_CPU_IMX8QM, and why not to drop the last M, or even both QM (taking into account that marketing name is simple IMX8 for these SoC series [1]. and iMX8M and iMX8X respectively for M and X series), because it's not obvious for me that APALIS_IMX8QP has any relation to MXC_CPU_IMX8QM.
Good questions. Maybe some of the NXP folks dare answering?
Thanks for adding me, please also add uboot-imx@nxp.com for i.MX patches for patch review. I am not able catch every thread in community.
Back to the question, MXC_CPU_IMX8QM is just follow i.MX8QM. no special reason.
So you are using i.MX8QP? or i.MX8QM?
Thanks, Peng.
Cheers
Marcel
else
tdx_hw_tag.prodid =
APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid =
COLIBRI_IMX8QXP_WIFI_BT_IT;
2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fli
sts.denx.de%2Flistinfo%2Fu-boot&data=02%7C01%7Cpeng.fan%40nxp.c o
m%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3bc2b4c6fa92cd99 c5c301
635%7C0%7C0%7C636983374525754073&sdata=heJJTIdWibdA9594lJu FXZ6AS
bWx%2FKrjL160ahWX0dM%3D&reserved=0
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com
[1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.w
ikipedia.org%2Fwiki%2FI.MX%23i.MX_8_series&data=02%7C01%7Cpen g.fan
%40nxp.com%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3bc2b
4c6fa92cd9
9c5c301635%7C0%7C0%7C636983374525754073&sdata=x7uth7RukJ1J x46Dzkav
39TtPidNmXrggBc7a4xi2Kk%3D&reserved=0
-- Best regards - Freundliche Grüsse - Meilleures salutations
Senior Development Engineer, Igor Opaniuk
Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00 (main line)

On Wed, 2019-07-10 at 08:11 +0000, Peng Fan wrote:
Hi,
Subject: Re: [U-Boot] [PATCH 4/5] toradex: configblock: fix apalis imx8 target
Hi Igor
On Tue, 2019-07-09 at 10:27 +0000, Igor Opaniuk wrote:
HI Marcel,
On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler < marcel@ziswiler.com> wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid =
APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QP_WIFI_BT;
Just curious why NXP guys decided to call this CPU type as MXC_CPU_IMX8QM, and why not to drop the last M, or even both QM (taking into account that marketing name is simple IMX8 for these SoC series [1]. and iMX8M and iMX8X respectively for M and X series), because it's not obvious for me that APALIS_IMX8QP has any relation to MXC_CPU_IMX8QM.
Good questions. Maybe some of the NXP folks dare answering?
Thanks for adding me, please also add uboot-imx@nxp.com for i.MX patches for patch review. I am not able catch every thread in community.
Back to the question, MXC_CPU_IMX8QM is just follow i.MX8QM. no special reason.
So you are using i.MX8QP? or i.MX8QM?
Initially it was just about the i.MX 8QM but eventually both. We are also experimenting with automatically detecting i.MX 8QM vs. 8QP and selecting resp. Apalis iMX8 SKU's memory size. Will there also be a MXC_CPU_IMX8QP or what exactly are your plans?
Thanks, Peng.
Cheers
Marcel
else
tdx_hw_tag.prodid =
APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid =
COLIBRI_IMX8QXP_WIFI_BT_IT;
2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fli
sts.denx.de%2Flistinfo%2Fu-boot&data=02%7C01%7Cpeng.fan%40nxp.c o m%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3bc2b4c6fa92cd99 c5c301 635%7C0%7C0%7C636983374525754073&sdata=heJJTIdWibdA9594lJu FXZ6AS
bWx%2FKrjL160ahWX0dM%3D&reserved=0
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com
[1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.w
ikipedia.org%2Fwiki%2FI.MX%23i.MX_8_series&data=02%7C01%7Cpen g.fan
%40nxp.com%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3bc2b
4c6fa92cd9 9c5c301635%7C0%7C0%7C636983374525754073&sdata=x7uth7RukJ1J x46Dzkav
39TtPidNmXrggBc7a4xi2Kk%3D&reserved=0
-- Best regards - Freundliche Grüsse - Meilleures salutations
Senior Development Engineer, Igor Opaniuk
Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00 (main line)

Subject: Re: [U-Boot] [PATCH 4/5] toradex: configblock: fix apalis imx8 target
On Wed, 2019-07-10 at 08:11 +0000, Peng Fan wrote:
Hi,
Subject: Re: [U-Boot] [PATCH 4/5] toradex: configblock: fix apalis imx8 target
Hi Igor
On Tue, 2019-07-09 at 10:27 +0000, Igor Opaniuk wrote:
HI Marcel,
On Tue, Jul 9, 2019 at 12:43 PM Marcel Ziswiler < marcel@ziswiler.com> wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid =
APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid =
APALIS_IMX8QP_WIFI_BT;
Just curious why NXP guys decided to call this CPU type as MXC_CPU_IMX8QM, and why not to drop the last M, or even both QM (taking into account that marketing name is simple IMX8 for these SoC series [1]. and iMX8M and iMX8X respectively for M and X series), because it's not obvious for me that APALIS_IMX8QP has any relation to MXC_CPU_IMX8QM.
Good questions. Maybe some of the NXP folks dare answering?
Thanks for adding me, please also add uboot-imx@nxp.com for i.MX patches for patch review. I am not able catch every thread in community.
Back to the question, MXC_CPU_IMX8QM is just follow i.MX8QM. no special reason.
So you are using i.MX8QP? or i.MX8QM?
Initially it was just about the i.MX 8QM but eventually both. We are also experimenting with automatically detecting i.MX 8QM vs. 8QP and selecting resp. Apalis iMX8 SKU's memory size. Will there also be a MXC_CPU_IMX8QP or what exactly are your plans?
I do not have QP chips to test. If get_cpu_rev returns same value for i.MX8QM/QP, MXC_CPU_IMX8QP will not be added. If different value, MXC_CPU_IMX8QP needs to be added.
Regards, Peng.
Thanks, Peng.
Cheers
Marcel
else
tdx_hw_tag.prodid =
APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid =
COLIBRI_IMX8QXP_WIFI_BT_IT;
2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://li
sts.denx.de%2Flistinfo%2Fu-boot&data=02%7C01%7Cpeng.fan%40nxp.c
o
m%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3bc2b4c6fa92cd99
c5c301
635%7C0%7C0%7C636983374525754073&sdata=heJJTIdWibdA9594lJu
FXZ6AS
bWx%2FKrjL160ahWX0dM%3D&reserved=0
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com
[1] https://en.w
ikipedia.org%2Fwiki%2FI.MX%23i.MX_8_series&data=02%7C01%7Cpen
g.fan
%40nxp.com%7C6f1126063c684a60ae7008d7050115ca%7C686ea1d3b
c2b
4c6fa92cd9
9c5c301635%7C0%7C0%7C636983374525754073&sdata=x7uth7RukJ1J
x46Dzkav
39TtPidNmXrggBc7a4xi2Kk%3D&reserved=0
-- Best regards - Freundliche Grüsse - Meilleures salutations
Senior Development Engineer, Igor Opaniuk
Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00 (main line)

On Tue, 9 Jul 2019 at 12:42, Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The Apalis iMX8 was missing the interactive part should a customer have bricked his module and want to re-create the configuration block. Fix this.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 90df5bb2ff..a81b0f637c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -7,6 +7,7 @@ #include "tdx-cfg-block.h"
#if defined(CONFIG_TARGET_APALIS_IMX6) || \
defined(CONFIG_TARGET_APALIS_IMX8) || \ defined(CONFIG_TARGET_COLIBRI_IMX6) || \ defined(CONFIG_TARGET_COLIBRI_IMX8X)
#include <asm/arch/sys_proto.h> @@ -356,7 +357,19 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_IMX7D; else if (!strcmp("imx7s", soc)) tdx_hw_tag.prodid = COLIBRI_IMX7S;
else if (is_cpu_type(MXC_CPU_IMX8QXP)) {
else if (is_cpu_type(MXC_CPU_IMX8QM)) {
if (it == 'y' || it == 'Y') {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = APALIS_IMX8QM_WIFI_BT_IT;
else
tdx_hw_tag.prodid = APALIS_IMX8QM_IT;
} else {
if (wb == 'y' || wb == 'Y')
tdx_hw_tag.prodid = APALIS_IMX8QP_WIFI_BT;
else
tdx_hw_tag.prodid = APALIS_IMX8QP;
}
} else if (is_cpu_type(MXC_CPU_IMX8QXP)) { if (it == 'y' || it == 'Y') { if (wb == 'y' || wb == 'Y') tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com

From: Marcel Ziswiler marcel.ziswiler@toradex.com
Fix long line issue as reported by checkpatch.pl.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
board/toradex/common/tdx-cfg-block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index a81b0f637c..329c289758 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -531,7 +531,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, char message[CONFIG_SYS_CBSIZE];
sprintf(message, - "A valid Toradex config block is present, still recreate? [y/N] "); + "A valid Toradex config block is present, " \ + "still recreate? [y/N] ");
if (!cli_readline(message)) goto out;

On Tue, Jul 9, 2019 at 12:42 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
Fix long line issue as reported by checkpatch.pl.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index a81b0f637c..329c289758 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -531,7 +531,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, char message[CONFIG_SYS_CBSIZE];
sprintf(message,
"A valid Toradex config block is present, still recreate? [y/N] ");
"A valid Toradex config block is present, " \
"still recreate? [y/N] "); if (!cli_readline(message)) goto out;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com

On Tue, 9 Jul 2019 at 12:43, Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
Fix long line issue as reported by checkpatch.pl.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
board/toradex/common/tdx-cfg-block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index a81b0f637c..329c289758 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -531,7 +531,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc, char message[CONFIG_SYS_CBSIZE];
sprintf(message,
"A valid Toradex config block is present, still recreate? [y/N] ");
"A valid Toradex config block is present, " \
"still recreate? [y/N] "); if (!cli_readline(message)) goto out;
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com
participants (6)
-
Igor Opaniuk
-
Marcel Ziswiler
-
Marcel Ziswiler
-
Oleksandr Suvorov
-
Oleksandr Suvorov
-
Peng Fan