diff mbox

[U-Boot,v4,5/7] apalis/colibri_imx7/pxa270/t20/t30/vf: integrate config block handling

Message ID 1478525794-20867-6-git-send-email-marcel.ziswiler@toradex.com
State Accepted
Commit b891d01038abcc8b25f12e1b91ff889b06eb07a2
Delegated to: Tom Rini
Headers show

Commit Message

Marcel Ziswiler Nov. 7, 2016, 1:36 p.m. UTC
With our common code in place actually make use of it across all our
modules.

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

---

Changes in v4: None
Changes in v3:
- use checkboard() rather than checkboard_fallback()
- drop CUSTOM_BOARDINFO

Changes in v2: None

 board/toradex/apalis_t30/Kconfig              | 18 ++++++++++++++++++
 board/toradex/apalis_t30/apalis_t30.c         | 12 +++++++++++-
 board/toradex/colibri_imx7/Kconfig            | 16 ++++++++++++++++
 board/toradex/colibri_pxa270/Kconfig          | 11 +++++++++++
 board/toradex/colibri_pxa270/colibri_pxa270.c |  8 ++++++++
 board/toradex/colibri_t20/Kconfig             | 11 +++++++++++
 board/toradex/colibri_t20/colibri_t20.c       | 13 +++++++++++++
 board/toradex/colibri_t30/Kconfig             | 18 ++++++++++++++++++
 board/toradex/colibri_t30/colibri_t30.c       |  9 ++++++++-
 board/toradex/colibri_vf/Kconfig              | 14 ++++++++++++++
 configs/colibri_vf_defconfig                  |  1 +
 include/configs/apalis_t30.h                  |  4 ++--
 include/configs/colibri_imx7.h                |  6 +++++-
 include/configs/colibri_pxa270.h              |  6 +++++-
 include/configs/colibri_t20.h                 |  2 +-
 include/configs/colibri_t30.h                 |  4 ++--
 include/configs/colibri_vf.h                  |  6 ++++--
 17 files changed, 148 insertions(+), 11 deletions(-)

Comments

Stefan Agner Nov. 14, 2016, 11:18 p.m. UTC | #1
Hi Marcel,

Just found an issue with this patch.

On 2016-11-07 05:36, Marcel Ziswiler wrote:
> With our common code in place actually make use of it across all our
> modules.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> 
> ---
> 
> Changes in v4: None
> Changes in v3:
> - use checkboard() rather than checkboard_fallback()
> - drop CUSTOM_BOARDINFO
> 
> Changes in v2: None
> 
>  board/toradex/apalis_t30/Kconfig              | 18 ++++++++++++++++++
>  board/toradex/apalis_t30/apalis_t30.c         | 12 +++++++++++-
>  board/toradex/colibri_imx7/Kconfig            | 16 ++++++++++++++++
>  board/toradex/colibri_pxa270/Kconfig          | 11 +++++++++++
>  board/toradex/colibri_pxa270/colibri_pxa270.c |  8 ++++++++
>  board/toradex/colibri_t20/Kconfig             | 11 +++++++++++
>  board/toradex/colibri_t20/colibri_t20.c       | 13 +++++++++++++
>  board/toradex/colibri_t30/Kconfig             | 18 ++++++++++++++++++
>  board/toradex/colibri_t30/colibri_t30.c       |  9 ++++++++-
>  board/toradex/colibri_vf/Kconfig              | 14 ++++++++++++++
>  configs/colibri_vf_defconfig                  |  1 +
>  include/configs/apalis_t30.h                  |  4 ++--
>  include/configs/colibri_imx7.h                |  6 +++++-
>  include/configs/colibri_pxa270.h              |  6 +++++-
>  include/configs/colibri_t20.h                 |  2 +-
>  include/configs/colibri_t30.h                 |  4 ++--
>  include/configs/colibri_vf.h                  |  6 ++++--
>  17 files changed, 148 insertions(+), 11 deletions(-)
> 
> diff --git a/board/toradex/apalis_t30/Kconfig b/board/toradex/apalis_t30/Kconfig
> index f1dcda5..16224da 100644
> --- a/board/toradex/apalis_t30/Kconfig
> +++ b/board/toradex/apalis_t30/Kconfig
> @@ -9,4 +9,22 @@ config SYS_VENDOR
>  config SYS_CONFIG_NAME
>  	default "apalis_t30"
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_MMC
> +	default y
> +
> +config TDX_CFG_BLOCK_DEV
> +	default "0"
> +
> +config TDX_CFG_BLOCK_PART
> +	default "1"
> +
> +# Toradex config block in eMMC, at the end of 1st "boot sector"
> +config TDX_CFG_BLOCK_OFFSET
> +	default "-512"
> +
> +source "board/toradex/common/Kconfig"

Sourcing the common Kconfig in every board file leads to multiple
entries (e.g. make menuconfig looks rather crowded).

I just checked Documentation/kbuild/kconfig-language.txt, you can't
conditionally include a Kconfig file. It will always include it, that
seems to cause the issue.

I suggest to just add it to arch/arm/Kconfig once, there are some other
"common" includes already.

--
Stefan

> +
>  endif
> diff --git a/board/toradex/apalis_t30/apalis_t30.c
> b/board/toradex/apalis_t30/apalis_t30.c
> index 3f56971..3d83491 100644
> --- a/board/toradex/apalis_t30/apalis_t30.c
> +++ b/board/toradex/apalis_t30/apalis_t30.c
> @@ -1,5 +1,5 @@
>  /*
> - *  (C) Copyright 2014
> + *  (C) Copyright 2014-2016
>   *  Marcel Ziswiler <marcel@ziswiler.com>
>   *
>   * SPDX-License-Identifier:	GPL-2.0+
> @@ -17,6 +17,8 @@
>  
>  #include "pinmux-config-apalis_t30.h"
>  
> +DECLARE_GLOBAL_DATA_PTR;
> +
>  #define PMU_I2C_ADDRESS		0x2D
>  #define MAX_I2C_RETRY		3
>  
> @@ -29,6 +31,14 @@ int arch_misc_init(void)
>  	return 0;
>  }
>  
> +int checkboard(void)
> +{
> +	printf("Model: Toradex Apalis T30 %dGB\n",
> +	       (gd->ram_size == 0x40000000) ? 1 : 2);
> +
> +	return 0;
> +}
> +
>  /*
>   * Routine: pinmux_init
>   * Description: Do individual peripheral pinmux configs
> diff --git a/board/toradex/colibri_imx7/Kconfig
> b/board/toradex/colibri_imx7/Kconfig
> index 7bba26b..414a600 100644
> --- a/board/toradex/colibri_imx7/Kconfig
> +++ b/board/toradex/colibri_imx7/Kconfig
> @@ -16,5 +16,21 @@ config COLIBRI_IMX7_EXT_PHYCLK
>  	  clock source.
>  	default y
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_NAND
> +	default y
> +
> +config TDX_CFG_BLOCK_OFFSET
> +	default "2048"
> +
> +config TDX_CFG_BLOCK_OFFSET2
> +	default "133120"
> +
> +config TDX_CFG_BLOCK_2ND_ETHADDR
> +	default y
> +
> +source "board/toradex/common/Kconfig"
>  
>  endif
> diff --git a/board/toradex/colibri_pxa270/Kconfig
> b/board/toradex/colibri_pxa270/Kconfig
> index 949407a..f646baa 100644
> --- a/board/toradex/colibri_pxa270/Kconfig
> +++ b/board/toradex/colibri_pxa270/Kconfig
> @@ -9,4 +9,15 @@ config SYS_VENDOR
>  config SYS_CONFIG_NAME
>  	default "colibri_pxa270"
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_NOR
> +	default y
> +
> +config TDX_CFG_BLOCK_OFFSET
> +	default "262144"
> +
> +source "board/toradex/common/Kconfig"
> +
>  endif
> diff --git a/board/toradex/colibri_pxa270/colibri_pxa270.c
> b/board/toradex/colibri_pxa270/colibri_pxa270.c
> index 3def0a6..de8cb28 100644
> --- a/board/toradex/colibri_pxa270/colibri_pxa270.c
> +++ b/board/toradex/colibri_pxa270/colibri_pxa270.c
> @@ -2,6 +2,7 @@
>   * Toradex Colibri PXA270 Support
>   *
>   * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com>
> + * Copyright (C) 2016 Marcel Ziswiler <marcel.ziswiler@toradex.com>
>   *
>   * SPDX-License-Identifier:	GPL-2.0+
>   */
> @@ -32,6 +33,13 @@ int board_init(void)
>  	return 0;
>  }
>  
> +int checkboard(void)
> +{
> +	puts("Model: Toradex Colibri PXA270\n");
> +
> +	return 0;
> +}
> +
>  int dram_init(void)
>  {
>  	pxa2xx_dram_init();
> diff --git a/board/toradex/colibri_t20/Kconfig
> b/board/toradex/colibri_t20/Kconfig
> index 7f373b2..a43acdd 100644
> --- a/board/toradex/colibri_t20/Kconfig
> +++ b/board/toradex/colibri_t20/Kconfig
> @@ -9,4 +9,15 @@ config SYS_VENDOR
>  config SYS_CONFIG_NAME
>  	default "colibri_t20"
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_NAND
> +	default y
> +
> +config TDX_CFG_BLOCK_OFFSET
> +	default "3145728"
> +
> +source "board/toradex/common/Kconfig"
> +
>  endif
> diff --git a/board/toradex/colibri_t20/colibri_t20.c
> b/board/toradex/colibri_t20/colibri_t20.c
> index 68fbf49..01b55be 100644
> --- a/board/toradex/colibri_t20/colibri_t20.c
> +++ b/board/toradex/colibri_t20/colibri_t20.c
> @@ -14,6 +14,9 @@
>  #include <asm/gpio.h>
>  #include <asm/io.h>
>  #include <i2c.h>
> +#include <nand.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
>  
>  #define PMU_I2C_ADDRESS		0x34
>  #define MAX_I2C_RETRY		3
> @@ -61,6 +64,16 @@ int arch_misc_init(void)
>  	return 0;
>  }
>  
> +int checkboard(void)
> +{
> +	printf("Model: Toradex Colibri T20 %dMB V%s\n",
> +	       (gd->ram_size == 0x10000000) ? 256 : 512,
> +	       (nand_info[0]->erasesize >> 10 == 512) ?
> +	       ((gd->ram_size == 0x10000000) ? "1.1B" : "1.1C") : "1.2A");
> +
> +	return 0;
> +}
> +
>  #ifdef CONFIG_TEGRA_MMC
>  /*
>   * Routine: pin_mux_mmc
> diff --git a/board/toradex/colibri_t30/Kconfig
> b/board/toradex/colibri_t30/Kconfig
> index 3e436a2..68ef82b 100644
> --- a/board/toradex/colibri_t30/Kconfig
> +++ b/board/toradex/colibri_t30/Kconfig
> @@ -9,4 +9,22 @@ config SYS_VENDOR
>  config SYS_CONFIG_NAME
>  	default "colibri_t30"
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_MMC
> +	default y
> +
> +config TDX_CFG_BLOCK_DEV
> +	default "0"
> +
> +config TDX_CFG_BLOCK_PART
> +	default "1"
> +
> +# Toradex config block in eMMC, at the end of 1st "boot sector"
> +config TDX_CFG_BLOCK_OFFSET
> +	default "-512"
> +
> +source "board/toradex/common/Kconfig"
> +
>  endif
> diff --git a/board/toradex/colibri_t30/colibri_t30.c
> b/board/toradex/colibri_t30/colibri_t30.c
> index e32362a..707d07e 100644
> --- a/board/toradex/colibri_t30/colibri_t30.c
> +++ b/board/toradex/colibri_t30/colibri_t30.c
> @@ -1,5 +1,5 @@
>  /*
> - *  (C) Copyright 2014
> + *  (C) Copyright 2014-2016
>   *  Stefan Agner <stefan@agner.ch>
>   *
>   * SPDX-License-Identifier:	GPL-2.0+
> @@ -24,6 +24,13 @@ int arch_misc_init(void)
>  	return 0;
>  }
>  
> +int checkboard(void)
> +{
> +	puts("Model: Toradex Colibri T30 1GB\n");
> +
> +	return 0;
> +}
> +
>  /*
>   * Routine: pinmux_init
>   * Description: Do individual peripheral pinmux configs
> diff --git a/board/toradex/colibri_vf/Kconfig b/board/toradex/colibri_vf/Kconfig
> index 2c3cb30..bf9bb01 100644
> --- a/board/toradex/colibri_vf/Kconfig
> +++ b/board/toradex/colibri_vf/Kconfig
> @@ -15,4 +15,18 @@ config SYS_SOC
>  config SYS_CONFIG_NAME
>  	default "colibri_vf"
>  
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_NAND
> +	default y
> +
> +config TDX_CFG_BLOCK_OFFSET
> +	default "2048"
> +
> +config TDX_CFG_BLOCK_2ND_ETHADDR
> +	default y
> +
> +source "board/toradex/common/Kconfig"
> +
>  endif
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 1020e44..54d3581 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -4,6 +4,7 @@ CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
>
> CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND"
>  CONFIG_BOOTDELAY=1
>  CONFIG_VERSION_VARIABLE=y
> +# CONFIG_DISPLAY_BOARDINFO is not set
>  CONFIG_HUSH_PARSER=y
>  CONFIG_SYS_PROMPT="Colibri VFxx # "
>  CONFIG_CMD_BOOTZ=y
> diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h
> index d38302d..069ed20 100644
> --- a/include/configs/apalis_t30.h
> +++ b/include/configs/apalis_t30.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2014-2015 Marcel Ziswiler
> + * Copyright (c) 2014-2016 Marcel Ziswiler
>   *
>   * Configuration settings for the Toradex Apalis T30 modules.
>   *
> @@ -16,7 +16,7 @@
>  #define CONFIG_ARCH_MISC_INIT
>  
>  /* High-level configuration options */
> -#define CONFIG_TEGRA_BOARD_STRING	"Toradex Apalis T30"
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
>  
>  /* Board-specific serial config */
>  #define CONFIG_TEGRA_ENABLE_UARTA
> diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
> index 309aef8..5ce0a34 100644
> --- a/include/configs/colibri_imx7.h
> +++ b/include/configs/colibri_imx7.h
> @@ -21,10 +21,14 @@
>  /*#define CONFIG_DBG_MONITOR*/
>  #define PHYS_SDRAM_SIZE			SZ_512M
>  
> +#define CONFIG_ARCH_MISC_INIT
>  #define CONFIG_BOARD_EARLY_INIT_F
>  #define CONFIG_BOARD_LATE_INIT
>  
> -#define CONFIG_DISPLAY_BOARDINFO_LATE
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
> +
> +#define CONFIG_ENV_VARS_UBOOT_CONFIG
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  
>  /* Size of malloc() pool */
>  #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
> diff --git a/include/configs/colibri_pxa270.h b/include/configs/colibri_pxa270.h
> index e44a847..b15ed72 100644
> --- a/include/configs/colibri_pxa270.h
> +++ b/include/configs/colibri_pxa270.h
> @@ -2,7 +2,7 @@
>   * Toradex Colibri PXA270 configuration file
>   *
>   * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com>
> - * Copyright (C) 2015 Marcel Ziswiler <marcel@ziswiler.com>
> + * Copyright (C) 2015-2016 Marcel Ziswiler <marcel@ziswiler.com>
>   *
>   * SPDX-License-Identifier:	GPL-2.0+
>   */
> @@ -21,10 +21,14 @@
>  /* We will never enable dcache because we have to setup MMU first */
>  #define CONFIG_SYS_DCACHE_OFF
>  
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
> +
>  /*
>   * Environment settings
>   */
>  #define	CONFIG_ENV_OVERWRITE
> +#define CONFIG_ENV_VARS_UBOOT_CONFIG
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  #define	CONFIG_SYS_MALLOC_LEN		(128 * 1024)
>  #define	CONFIG_ARCH_CPU_INIT
>  #define	CONFIG_BOOTCOMMAND						\
> diff --git a/include/configs/colibri_t20.h b/include/configs/colibri_t20.h
> index 4634989..6a52869 100644
> --- a/include/configs/colibri_t20.h
> +++ b/include/configs/colibri_t20.h
> @@ -14,7 +14,7 @@
>  #define CONFIG_ARCH_MISC_INIT
>  
>  /* High-level configuration options */
> -#define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T20"
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
>  
>  /* Board-specific serial config */
>  #define CONFIG_TEGRA_ENABLE_UARTA
> diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
> index e2a2549..1ab5c41 100644
> --- a/include/configs/colibri_t30.h
> +++ b/include/configs/colibri_t30.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2013-2015 Stefan Agner
> + * Copyright (c) 2013-2016 Stefan Agner
>   *
>   * Configuration settings for the Toradex Colibri T30 modules.
>   *
> @@ -16,7 +16,7 @@
>  #define CONFIG_ARCH_MISC_INIT
>  
>  /* High-level configuration options */
> -#define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T30"
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
>  
>  /* Board-specific serial config */
>  #define CONFIG_TEGRA_ENABLE_UARTA
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index be773a3..0e622fb 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -1,7 +1,7 @@
>  /*
> - * Copyright 2015 Toradex, Inc.
> + * Copyright 2015-2016 Toradex, Inc.
>   *
> - * Configuration settings for the Toradex VF50/VF61 module.
> + * Configuration settings for the Toradex VF50/VF61 modules.
>   *
>   * Based on vf610twr.h:
>   * Copyright 2013 Freescale Semiconductor, Inc.
> @@ -21,6 +21,7 @@
>  #define CONFIG_SYS_FSL_CLK
>  
>  #define CONFIG_ARCH_MISC_INIT
> +#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
>  
>  #define CONFIG_SKIP_LOWLEVEL_INIT
>  
> @@ -36,6 +37,7 @@
>  
>  /* Allow to overwrite serial and ethaddr */
>  #define CONFIG_ENV_OVERWRITE
> +#define CONFIG_ENV_VARS_UBOOT_CONFIG
>  #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  #define CONFIG_BAUDRATE			115200
diff mbox

Patch

diff --git a/board/toradex/apalis_t30/Kconfig b/board/toradex/apalis_t30/Kconfig
index f1dcda5..16224da 100644
--- a/board/toradex/apalis_t30/Kconfig
+++ b/board/toradex/apalis_t30/Kconfig
@@ -9,4 +9,22 @@  config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "apalis_t30"
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_MMC
+	default y
+
+config TDX_CFG_BLOCK_DEV
+	default "0"
+
+config TDX_CFG_BLOCK_PART
+	default "1"
+
+# Toradex config block in eMMC, at the end of 1st "boot sector"
+config TDX_CFG_BLOCK_OFFSET
+	default "-512"
+
+source "board/toradex/common/Kconfig"
+
 endif
diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c
index 3f56971..3d83491 100644
--- a/board/toradex/apalis_t30/apalis_t30.c
+++ b/board/toradex/apalis_t30/apalis_t30.c
@@ -1,5 +1,5 @@ 
 /*
- *  (C) Copyright 2014
+ *  (C) Copyright 2014-2016
  *  Marcel Ziswiler <marcel@ziswiler.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
@@ -17,6 +17,8 @@ 
 
 #include "pinmux-config-apalis_t30.h"
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #define PMU_I2C_ADDRESS		0x2D
 #define MAX_I2C_RETRY		3
 
@@ -29,6 +31,14 @@  int arch_misc_init(void)
 	return 0;
 }
 
+int checkboard(void)
+{
+	printf("Model: Toradex Apalis T30 %dGB\n",
+	       (gd->ram_size == 0x40000000) ? 1 : 2);
+
+	return 0;
+}
+
 /*
  * Routine: pinmux_init
  * Description: Do individual peripheral pinmux configs
diff --git a/board/toradex/colibri_imx7/Kconfig b/board/toradex/colibri_imx7/Kconfig
index 7bba26b..414a600 100644
--- a/board/toradex/colibri_imx7/Kconfig
+++ b/board/toradex/colibri_imx7/Kconfig
@@ -16,5 +16,21 @@  config COLIBRI_IMX7_EXT_PHYCLK
 	  clock source.
 	default y
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_NAND
+	default y
+
+config TDX_CFG_BLOCK_OFFSET
+	default "2048"
+
+config TDX_CFG_BLOCK_OFFSET2
+	default "133120"
+
+config TDX_CFG_BLOCK_2ND_ETHADDR
+	default y
+
+source "board/toradex/common/Kconfig"
 
 endif
diff --git a/board/toradex/colibri_pxa270/Kconfig b/board/toradex/colibri_pxa270/Kconfig
index 949407a..f646baa 100644
--- a/board/toradex/colibri_pxa270/Kconfig
+++ b/board/toradex/colibri_pxa270/Kconfig
@@ -9,4 +9,15 @@  config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "colibri_pxa270"
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_NOR
+	default y
+
+config TDX_CFG_BLOCK_OFFSET
+	default "262144"
+
+source "board/toradex/common/Kconfig"
+
 endif
diff --git a/board/toradex/colibri_pxa270/colibri_pxa270.c b/board/toradex/colibri_pxa270/colibri_pxa270.c
index 3def0a6..de8cb28 100644
--- a/board/toradex/colibri_pxa270/colibri_pxa270.c
+++ b/board/toradex/colibri_pxa270/colibri_pxa270.c
@@ -2,6 +2,7 @@ 
  * Toradex Colibri PXA270 Support
  *
  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com>
+ * Copyright (C) 2016 Marcel Ziswiler <marcel.ziswiler@toradex.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
  */
@@ -32,6 +33,13 @@  int board_init(void)
 	return 0;
 }
 
+int checkboard(void)
+{
+	puts("Model: Toradex Colibri PXA270\n");
+
+	return 0;
+}
+
 int dram_init(void)
 {
 	pxa2xx_dram_init();
diff --git a/board/toradex/colibri_t20/Kconfig b/board/toradex/colibri_t20/Kconfig
index 7f373b2..a43acdd 100644
--- a/board/toradex/colibri_t20/Kconfig
+++ b/board/toradex/colibri_t20/Kconfig
@@ -9,4 +9,15 @@  config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "colibri_t20"
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_NAND
+	default y
+
+config TDX_CFG_BLOCK_OFFSET
+	default "3145728"
+
+source "board/toradex/common/Kconfig"
+
 endif
diff --git a/board/toradex/colibri_t20/colibri_t20.c b/board/toradex/colibri_t20/colibri_t20.c
index 68fbf49..01b55be 100644
--- a/board/toradex/colibri_t20/colibri_t20.c
+++ b/board/toradex/colibri_t20/colibri_t20.c
@@ -14,6 +14,9 @@ 
 #include <asm/gpio.h>
 #include <asm/io.h>
 #include <i2c.h>
+#include <nand.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #define PMU_I2C_ADDRESS		0x34
 #define MAX_I2C_RETRY		3
@@ -61,6 +64,16 @@  int arch_misc_init(void)
 	return 0;
 }
 
+int checkboard(void)
+{
+	printf("Model: Toradex Colibri T20 %dMB V%s\n",
+	       (gd->ram_size == 0x10000000) ? 256 : 512,
+	       (nand_info[0]->erasesize >> 10 == 512) ?
+	       ((gd->ram_size == 0x10000000) ? "1.1B" : "1.1C") : "1.2A");
+
+	return 0;
+}
+
 #ifdef CONFIG_TEGRA_MMC
 /*
  * Routine: pin_mux_mmc
diff --git a/board/toradex/colibri_t30/Kconfig b/board/toradex/colibri_t30/Kconfig
index 3e436a2..68ef82b 100644
--- a/board/toradex/colibri_t30/Kconfig
+++ b/board/toradex/colibri_t30/Kconfig
@@ -9,4 +9,22 @@  config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "colibri_t30"
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_MMC
+	default y
+
+config TDX_CFG_BLOCK_DEV
+	default "0"
+
+config TDX_CFG_BLOCK_PART
+	default "1"
+
+# Toradex config block in eMMC, at the end of 1st "boot sector"
+config TDX_CFG_BLOCK_OFFSET
+	default "-512"
+
+source "board/toradex/common/Kconfig"
+
 endif
diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c
index e32362a..707d07e 100644
--- a/board/toradex/colibri_t30/colibri_t30.c
+++ b/board/toradex/colibri_t30/colibri_t30.c
@@ -1,5 +1,5 @@ 
 /*
- *  (C) Copyright 2014
+ *  (C) Copyright 2014-2016
  *  Stefan Agner <stefan@agner.ch>
  *
  * SPDX-License-Identifier:	GPL-2.0+
@@ -24,6 +24,13 @@  int arch_misc_init(void)
 	return 0;
 }
 
+int checkboard(void)
+{
+	puts("Model: Toradex Colibri T30 1GB\n");
+
+	return 0;
+}
+
 /*
  * Routine: pinmux_init
  * Description: Do individual peripheral pinmux configs
diff --git a/board/toradex/colibri_vf/Kconfig b/board/toradex/colibri_vf/Kconfig
index 2c3cb30..bf9bb01 100644
--- a/board/toradex/colibri_vf/Kconfig
+++ b/board/toradex/colibri_vf/Kconfig
@@ -15,4 +15,18 @@  config SYS_SOC
 config SYS_CONFIG_NAME
 	default "colibri_vf"
 
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_NAND
+	default y
+
+config TDX_CFG_BLOCK_OFFSET
+	default "2048"
+
+config TDX_CFG_BLOCK_2ND_ETHADDR
+	default y
+
+source "board/toradex/common/Kconfig"
+
 endif
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 1020e44..54d3581 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -4,6 +4,7 @@  CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND"
 CONFIG_BOOTDELAY=1
 CONFIG_VERSION_VARIABLE=y
+# CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="Colibri VFxx # "
 CONFIG_CMD_BOOTZ=y
diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h
index d38302d..069ed20 100644
--- a/include/configs/apalis_t30.h
+++ b/include/configs/apalis_t30.h
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2014-2015 Marcel Ziswiler
+ * Copyright (c) 2014-2016 Marcel Ziswiler
  *
  * Configuration settings for the Toradex Apalis T30 modules.
  *
@@ -16,7 +16,7 @@ 
 #define CONFIG_ARCH_MISC_INIT
 
 /* High-level configuration options */
-#define CONFIG_TEGRA_BOARD_STRING	"Toradex Apalis T30"
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
 
 /* Board-specific serial config */
 #define CONFIG_TEGRA_ENABLE_UARTA
diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index 309aef8..5ce0a34 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -21,10 +21,14 @@ 
 /*#define CONFIG_DBG_MONITOR*/
 #define PHYS_SDRAM_SIZE			SZ_512M
 
+#define CONFIG_ARCH_MISC_INIT
 #define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_BOARD_LATE_INIT
 
-#define CONFIG_DISPLAY_BOARDINFO_LATE
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
+
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
diff --git a/include/configs/colibri_pxa270.h b/include/configs/colibri_pxa270.h
index e44a847..b15ed72 100644
--- a/include/configs/colibri_pxa270.h
+++ b/include/configs/colibri_pxa270.h
@@ -2,7 +2,7 @@ 
  * Toradex Colibri PXA270 configuration file
  *
  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com>
- * Copyright (C) 2015 Marcel Ziswiler <marcel@ziswiler.com>
+ * Copyright (C) 2015-2016 Marcel Ziswiler <marcel@ziswiler.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
  */
@@ -21,10 +21,14 @@ 
 /* We will never enable dcache because we have to setup MMU first */
 #define CONFIG_SYS_DCACHE_OFF
 
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
+
 /*
  * Environment settings
  */
 #define	CONFIG_ENV_OVERWRITE
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define	CONFIG_SYS_MALLOC_LEN		(128 * 1024)
 #define	CONFIG_ARCH_CPU_INIT
 #define	CONFIG_BOOTCOMMAND						\
diff --git a/include/configs/colibri_t20.h b/include/configs/colibri_t20.h
index 4634989..6a52869 100644
--- a/include/configs/colibri_t20.h
+++ b/include/configs/colibri_t20.h
@@ -14,7 +14,7 @@ 
 #define CONFIG_ARCH_MISC_INIT
 
 /* High-level configuration options */
-#define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T20"
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
 
 /* Board-specific serial config */
 #define CONFIG_TEGRA_ENABLE_UARTA
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index e2a2549..1ab5c41 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2013-2015 Stefan Agner
+ * Copyright (c) 2013-2016 Stefan Agner
  *
  * Configuration settings for the Toradex Colibri T30 modules.
  *
@@ -16,7 +16,7 @@ 
 #define CONFIG_ARCH_MISC_INIT
 
 /* High-level configuration options */
-#define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T30"
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
 
 /* Board-specific serial config */
 #define CONFIG_TEGRA_ENABLE_UARTA
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index be773a3..0e622fb 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -1,7 +1,7 @@ 
 /*
- * Copyright 2015 Toradex, Inc.
+ * Copyright 2015-2016 Toradex, Inc.
  *
- * Configuration settings for the Toradex VF50/VF61 module.
+ * Configuration settings for the Toradex VF50/VF61 modules.
  *
  * Based on vf610twr.h:
  * Copyright 2013 Freescale Semiconductor, Inc.
@@ -21,6 +21,7 @@ 
 #define CONFIG_SYS_FSL_CLK
 
 #define CONFIG_ARCH_MISC_INIT
+#define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */
 
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
@@ -36,6 +37,7 @@ 
 
 /* Allow to overwrite serial and ethaddr */
 #define CONFIG_ENV_OVERWRITE
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_BAUDRATE			115200