[U-Boot] [PATCH v1 02/14] tdx-cfg-block: simplify i.MX 6 module detection

Igor Opaniuk igor.opaniuk at toradex.com
Wed Apr 3 08:04:16 UTC 2019


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

On Fri, Mar 29, 2019 at 1:36 PM Marcel Ziswiler <marcel at ziswiler.com> wrote:
>
> From: Stefan Agner <stefan.agner at toradex.com>
>
> Use CONFIG_TARGET_... at compile time to differentiate between
> Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code
> duplication by moving question about Wi-Fi / Bluetooth before
> IT/non-IT decision.
>
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
>
> ---
>
>  board/toradex/common/tdx-cfg-block.c | 68 ++++++++++++++--------------
>  1 file changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
> index 3b73421243..71ff40cfad 100644
> --- a/board/toradex/common/tdx-cfg-block.c
> +++ b/board/toradex/common/tdx-cfg-block.c
> @@ -280,6 +280,9 @@ static int get_cfgblock_interactive(void)
>         char it = 'n';
>         int len;
>
> +       /* Unknown module by default */
> +       tdx_hw_tag.prodid = 0;
> +
>         if (cpu_is_pxa27x())
>                 sprintf(message, "Is the module the 312 MHz version? [y/N] ");
>         else
> @@ -290,54 +293,49 @@ static int get_cfgblock_interactive(void)
>
>         soc = env_get("soc");
>         if (!strcmp("mx6", soc)) {
> -#ifdef CONFIG_MACH_TYPE
> -               if (it == 'y' || it == 'Y')
> +#ifdef CONFIG_TARGET_APALIS_IMX6
> +               if (it == 'y' || it == 'Y') {
>                         if (is_cpu_type(MXC_CPU_MX6Q))
>                                 tdx_hw_tag.prodid = APALIS_IMX6Q_IT;
>                         else
>                                 tdx_hw_tag.prodid = APALIS_IMX6D_IT;
> -               else
> +               } else {
>                         if (is_cpu_type(MXC_CPU_MX6Q))
>                                 tdx_hw_tag.prodid = APALIS_IMX6Q;
>                         else
>                                 tdx_hw_tag.prodid = APALIS_IMX6D;
> -#else
> -               char wb = 'n';
> -
> +               }
> +#elif CONFIG_TARGET_COLIBRI_IMX6
>                 if (it == 'y' || it == 'Y') {
> -                       if (is_cpu_type(MXC_CPU_MX6DL)) {
> +                       if (is_cpu_type(MXC_CPU_MX6DL))
>                                 tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT;
> -                       } else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
> +                       else if (is_cpu_type(MXC_CPU_MX6SOLO))
>                                 tdx_hw_tag.prodid = COLIBRI_IMX6S_IT;
> -                       } else {
> -                               sprintf(message, "Does the module have WiFi /" \
> -                                                " Bluetooth? [y/N] ");
> -                               len = cli_readline(message);
> -                               wb = console_buffer[0];
> -                               if (wb == 'y' || wb == 'Y')
> -                                       tdx_hw_tag.prodid =
> -                                               COLIBRI_IMX6ULL_WIFI_BT_IT;
> -                               else
> -                                       tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
> -                       }
>                 } else {
> -                       if (is_cpu_type(MXC_CPU_MX6DL)) {
> +                       if (is_cpu_type(MXC_CPU_MX6DL))
>                                 tdx_hw_tag.prodid = COLIBRI_IMX6DL;
> -                       } else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
> +                       else if (is_cpu_type(MXC_CPU_MX6SOLO))
>                                 tdx_hw_tag.prodid = COLIBRI_IMX6S;
> -                       } else {
> -                               sprintf(message, "Does the module have WiFi /" \
> -                                                " Bluetooth? [y/N] ");
> -                               len = cli_readline(message);
> -                               wb = console_buffer[0];
> -                               if (wb == 'y' || wb == 'Y')
> -                                       tdx_hw_tag.prodid =
> -                                               COLIBRI_IMX6ULL_WIFI_BT;
> -                               else
> -                                       tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
> -                       }
>                 }
> -#endif /* CONFIG_MACH_TYPE */
> +#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;
> +                       else
> +                               tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
> +               } else {
> +                       if (wb == 'y' || wb == 'Y')
> +                               tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT;
> +                       else
> +                               tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
> +               }
> +#endif
>         } else if (!strcmp("imx7d", soc))
>                 tdx_hw_tag.prodid = COLIBRI_IMX7D;
>         else if (!strcmp("imx7s", soc))
> @@ -389,7 +387,9 @@ static int get_cfgblock_interactive(void)
>                         tdx_hw_tag.prodid = COLIBRI_VF61_IT;
>                 else
>                         tdx_hw_tag.prodid = COLIBRI_VF61;
> -       } else {
> +       }
> +
> +       if (!tdx_hw_tag.prodid) {
>                 printf("Module type not detectable due to unknown SoC\n");
>                 return -1;
>         }
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



-- 
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)


More information about the U-Boot mailing list