diff mbox series

[U-Boot,2/3] mx6sxsabresd: Load the correct dtb for revA board

Message ID 1511356528-8005-2-git-send-email-festevam@gmail.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series [U-Boot,1/3] imx: Add a common way for detecting NXP boards revision | expand

Commit Message

Fabio Estevam Nov. 22, 2017, 1:15 p.m. UTC
From: Fabio Estevam <fabio.estevam@nxp.com>

Currently only imx6sx-sdb.dtb is loaded, but if revA board is used the
correct dtb is imx6sx-sdb-reva.dtb, so make this possible.

While at it, remove an extra 'mmc dev'.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
---
 arch/arm/mach-imx/mx6/Kconfig               |  1 +
 board/freescale/mx6sxsabresd/mx6sxsabresd.c | 16 +++++++++++++++-
 configs/mx6sxsabresd_defconfig              |  1 +
 include/configs/mx6sxsabresd.h              |  8 ++++++--
 4 files changed, 23 insertions(+), 3 deletions(-)

Comments

Stefano Babic Nov. 22, 2017, 2:01 p.m. UTC | #1
On 22/11/2017 14:15, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@nxp.com>
> 
> Currently only imx6sx-sdb.dtb is loaded, but if revA board is used the
> correct dtb is imx6sx-sdb-reva.dtb, so make this possible.
> 
> While at it, remove an extra 'mmc dev'.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
>  arch/arm/mach-imx/mx6/Kconfig               |  1 +
>  board/freescale/mx6sxsabresd/mx6sxsabresd.c | 16 +++++++++++++++-
>  configs/mx6sxsabresd_defconfig              |  1 +
>  include/configs/mx6sxsabresd.h              |  8 ++++++--
>  4 files changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
> index 6f5a92a..52d9984 100644
> --- a/arch/arm/mach-imx/mx6/Kconfig
> +++ b/arch/arm/mach-imx/mx6/Kconfig
> @@ -266,6 +266,7 @@ config TARGET_MX6SLLEVK
>  
>  config TARGET_MX6SXSABRESD
>  	bool "mx6sxsabresd"
> +	select BOARD_LATE_INIT
>  	select MX6SX
>  	select SUPPORT_SPL
>  	select DM
> diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> index 2aeef61..8a918a5 100644
> --- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> +++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> @@ -540,9 +540,23 @@ int board_init(void)
>  	return 0;
>  }
>  
> +static bool is_reva(void)
> +{
> +	return (nxp_board_rev() == 1);
> +}
> +
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +	if (is_reva())
> +		env_set("board_rev", "REVA");
> +#endif
> +	return 0;
> +}
> +
>  int checkboard(void)
>  {
> -	puts("Board: MX6SX SABRE SDB\n");
> +	printf("Board: MX6SX SABRE SDB rev%s\n", nxp_board_rev_string());
>  
>  	return 0;
>  }
> diff --git a/configs/mx6sxsabresd_defconfig b/configs/mx6sxsabresd_defconfig
> index c4eb7ca..ac36a18 100644
> --- a/configs/mx6sxsabresd_defconfig
> +++ b/configs/mx6sxsabresd_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
>  CONFIG_ARCH_MX6=y
>  CONFIG_TARGET_MX6SXSABRESD=y
>  # CONFIG_CMD_BMODE is not set
> +CONFIG_NXP_BOARD_REVISION=y
>  CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg"
>  # CONFIG_CONSOLE_MUX is not set
>  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
> diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h
> index 5ef78a7..85b8601 100644
> --- a/include/configs/mx6sxsabresd.h
> +++ b/include/configs/mx6sxsabresd.h
> @@ -43,6 +43,7 @@
>  #define UPDATE_M4_ENV ""
>  #endif
>  
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  #define CONFIG_EXTRA_ENV_SETTINGS \
>  	UPDATE_M4_ENV \
>  	"script=boot.scr\0" \
> @@ -104,10 +105,13 @@
>  			"fi; " \
>  		"else " \
>  			"bootz; " \
> -		"fi;\0"
> +		"fi;\0" \
> +	"findfdt="\
> +		"if test test $board_rev = REVA ; then " \
> +			"setenv fdt_file imx6sx-sdb-reva.dtb; fi; " \
>  
>  #define CONFIG_BOOTCOMMAND \
> -	   "mmc dev ${mmcdev};" \
> +	   "run findfdt; " \
>  	   "mmc dev ${mmcdev}; if mmc rescan; then " \
>  		   "if run loadbootscript; then " \
>  			   "run bootscript; " \
> 

Reviewed-by: Stefano Babic <sbabic@denx.de>

Best regards,
Stefano
Lukasz Majewski Nov. 23, 2017, 9:08 a.m. UTC | #2
On Wed, 22 Nov 2017 11:15:27 -0200
Fabio Estevam <festevam@gmail.com> wrote:

> From: Fabio Estevam <fabio.estevam@nxp.com>
> 
> Currently only imx6sx-sdb.dtb is loaded, but if revA board is used the
> correct dtb is imx6sx-sdb-reva.dtb, so make this possible.
> 
> While at it, remove an extra 'mmc dev'.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
>  arch/arm/mach-imx/mx6/Kconfig               |  1 +
>  board/freescale/mx6sxsabresd/mx6sxsabresd.c | 16 +++++++++++++++-
>  configs/mx6sxsabresd_defconfig              |  1 +
>  include/configs/mx6sxsabresd.h              |  8 ++++++--
>  4 files changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mx6/Kconfig
> b/arch/arm/mach-imx/mx6/Kconfig index 6f5a92a..52d9984 100644
> --- a/arch/arm/mach-imx/mx6/Kconfig
> +++ b/arch/arm/mach-imx/mx6/Kconfig
> @@ -266,6 +266,7 @@ config TARGET_MX6SLLEVK
>  
>  config TARGET_MX6SXSABRESD
>  	bool "mx6sxsabresd"
> +	select BOARD_LATE_INIT
>  	select MX6SX
>  	select SUPPORT_SPL
>  	select DM
> diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> b/board/freescale/mx6sxsabresd/mx6sxsabresd.c index 2aeef61..8a918a5
> 100644 --- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> +++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
> @@ -540,9 +540,23 @@ int board_init(void)
>  	return 0;
>  }
>  
> +static bool is_reva(void)
> +{
> +	return (nxp_board_rev() == 1);
> +}
> +
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +	if (is_reva())
> +		env_set("board_rev", "REVA");
> +#endif
> +	return 0;
> +}
> +
>  int checkboard(void)
>  {
> -	puts("Board: MX6SX SABRE SDB\n");
> +	printf("Board: MX6SX SABRE SDB rev%s\n",
> nxp_board_rev_string()); 
>  	return 0;
>  }
> diff --git a/configs/mx6sxsabresd_defconfig
> b/configs/mx6sxsabresd_defconfig index c4eb7ca..ac36a18 100644
> --- a/configs/mx6sxsabresd_defconfig
> +++ b/configs/mx6sxsabresd_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
>  CONFIG_ARCH_MX6=y
>  CONFIG_TARGET_MX6SXSABRESD=y
>  # CONFIG_CMD_BMODE is not set
> +CONFIG_NXP_BOARD_REVISION=y
>  CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg"
>  # CONFIG_CONSOLE_MUX is not set
>  CONFIG_SYS_CONSOLE_IS_IN_ENV=y
> diff --git a/include/configs/mx6sxsabresd.h
> b/include/configs/mx6sxsabresd.h index 5ef78a7..85b8601 100644
> --- a/include/configs/mx6sxsabresd.h
> +++ b/include/configs/mx6sxsabresd.h
> @@ -43,6 +43,7 @@
>  #define UPDATE_M4_ENV ""
>  #endif
>  
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  #define CONFIG_EXTRA_ENV_SETTINGS \
>  	UPDATE_M4_ENV \
>  	"script=boot.scr\0" \
> @@ -104,10 +105,13 @@
>  			"fi; " \
>  		"else " \
>  			"bootz; " \
> -		"fi;\0"
> +		"fi;\0" \
> +	"findfdt="\
> +		"if test test $board_rev = REVA ; then " \
> +			"setenv fdt_file imx6sx-sdb-reva.dtb; fi; " \
>  
>  #define CONFIG_BOOTCOMMAND \
> -	   "mmc dev ${mmcdev};" \
> +	   "run findfdt; " \
>  	   "mmc dev ${mmcdev}; if mmc rescan; then " \
>  		   "if run loadbootscript; then " \
>  			   "run bootscript; " \

Reviewed-by: Lukasz Majewski <lukma@denx.de>

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 6f5a92a..52d9984 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -266,6 +266,7 @@  config TARGET_MX6SLLEVK
 
 config TARGET_MX6SXSABRESD
 	bool "mx6sxsabresd"
+	select BOARD_LATE_INIT
 	select MX6SX
 	select SUPPORT_SPL
 	select DM
diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
index 2aeef61..8a918a5 100644
--- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
+++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
@@ -540,9 +540,23 @@  int board_init(void)
 	return 0;
 }
 
+static bool is_reva(void)
+{
+	return (nxp_board_rev() == 1);
+}
+
+int board_late_init(void)
+{
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+	if (is_reva())
+		env_set("board_rev", "REVA");
+#endif
+	return 0;
+}
+
 int checkboard(void)
 {
-	puts("Board: MX6SX SABRE SDB\n");
+	printf("Board: MX6SX SABRE SDB rev%s\n", nxp_board_rev_string());
 
 	return 0;
 }
diff --git a/configs/mx6sxsabresd_defconfig b/configs/mx6sxsabresd_defconfig
index c4eb7ca..ac36a18 100644
--- a/configs/mx6sxsabresd_defconfig
+++ b/configs/mx6sxsabresd_defconfig
@@ -2,6 +2,7 @@  CONFIG_ARM=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_MX6SXSABRESD=y
 # CONFIG_CMD_BMODE is not set
+CONFIG_NXP_BOARD_REVISION=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg"
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h
index 5ef78a7..85b8601 100644
--- a/include/configs/mx6sxsabresd.h
+++ b/include/configs/mx6sxsabresd.h
@@ -43,6 +43,7 @@ 
 #define UPDATE_M4_ENV ""
 #endif
 
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	UPDATE_M4_ENV \
 	"script=boot.scr\0" \
@@ -104,10 +105,13 @@ 
 			"fi; " \
 		"else " \
 			"bootz; " \
-		"fi;\0"
+		"fi;\0" \
+	"findfdt="\
+		"if test test $board_rev = REVA ; then " \
+			"setenv fdt_file imx6sx-sdb-reva.dtb; fi; " \
 
 #define CONFIG_BOOTCOMMAND \
-	   "mmc dev ${mmcdev};" \
+	   "run findfdt; " \
 	   "mmc dev ${mmcdev}; if mmc rescan; then " \
 		   "if run loadbootscript; then " \
 			   "run bootscript; " \