diff mbox series

[U-Boot,2/2] ARM: imx: cm_fx6: env: try to determine dtb to use

Message ID eeb1f8af-aaab-4818-9c84-696b5bf35b5c@rwthex-s3-b.rwth-ad.de
State Accepted
Commit edc57f1df8973e296e213819568ac116def0066a
Delegated to: Stefano Babic
Headers show
Series [U-Boot,1/2] ARM: imx: cm_fx6: export board and soc info to env | expand

Commit Message

Christopher Spinrath Jan. 9, 2018, 9:01 p.m. UTC
From: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>

Some distributions like Fedora expect U-Boot to select a proper
devicetree. Since there are several variants of the cm-fx6 module
featuring different SoC variants and the module can be paired with
several baseboards, it is not viable to hardcode a filename.

Instead, follow the lead of other i.MX6 based devices and try to
determine the devicetree to use with the help of the board name
and the SoC variant exported by the board code, before calling the
distro bootcommand.

For now, only for the Utilite Pro a proper devicetree filename is
known but further variants of the Utilite Computer or other devices
based on the cm-fx6 module may be added in the future.

Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
---
 configs/cm_fx6_defconfig | 2 +-
 include/configs/cm_fx6.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Stefano Babic Jan. 12, 2018, 1:36 p.m. UTC | #1
On 09/01/2018 22:01, christopher.spinrath@rwth-aachen.de wrote:
> From: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
> 
> Some distributions like Fedora expect U-Boot to select a proper
> devicetree. Since there are several variants of the cm-fx6 module
> featuring different SoC variants and the module can be paired with
> several baseboards, it is not viable to hardcode a filename.
> 
> Instead, follow the lead of other i.MX6 based devices and try to
> determine the devicetree to use with the help of the board name
> and the SoC variant exported by the board code, before calling the
> distro bootcommand.
> 
> For now, only for the Utilite Pro a proper devicetree filename is
> known but further variants of the Utilite Computer or other devices
> based on the cm-fx6 module may be added in the future.
> 
> Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
> ---
>  configs/cm_fx6_defconfig | 2 +-
>  include/configs/cm_fx6.h | 6 ++++++
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
> index 33e610ccb4..6b1c0a823c 100644
> --- a/configs/cm_fx6_defconfig
> +++ b/configs/cm_fx6_defconfig
> @@ -16,7 +16,7 @@ CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_OF_BOARD_SETUP=y
>  CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
>  CONFIG_BOOTDELAY=3
> -CONFIG_BOOTCOMMAND="run distro_bootcmd; run legacy_bootcmd"
> +CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run legacy_bootcmd"
>  CONFIG_SPL=y
>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x80
>  CONFIG_SPL_I2C_SUPPORT=y
> diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
> index cb71ea8811..da870b9baa 100644
> --- a/include/configs/cm_fx6.h
> +++ b/include/configs/cm_fx6.h
> @@ -76,6 +76,7 @@
>  	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
>  	"pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
>  	"scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
> +	"fdtfile=undefined\0" \
>  	"stdin=serial,usbkbd\0" \
>  	"stdout=serial,vga\0" \
>  	"stderr=serial,vga\0" \
> @@ -153,6 +154,11 @@
>  		"fi;" \
>  		"run setupnandboot;" \
>  		"run nandboot;\0" \
> +	"findfdt="\
> +		"if test $board_name = Utilite && test $board_rev = MX6Q ; then " \
> +			"setenv fdtfile imx6q-utilite-pro.dtb; fi; " \
> +		"if test $fdtfile = undefined; then " \
> +			"echo WARNING: Could not determine dtb to use; fi; \0" \
>  	BOOTENV
>  
>  #define CONFIG_PREBOOT		"usb start;sf probe"
> 

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index 33e610ccb4..6b1c0a823c 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -16,7 +16,7 @@  CONFIG_DISTRO_DEFAULTS=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTDELAY=3
-CONFIG_BOOTCOMMAND="run distro_bootcmd; run legacy_bootcmd"
+CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run legacy_bootcmd"
 CONFIG_SPL=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x80
 CONFIG_SPL_I2C_SUPPORT=y
diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
index cb71ea8811..da870b9baa 100644
--- a/include/configs/cm_fx6.h
+++ b/include/configs/cm_fx6.h
@@ -76,6 +76,7 @@ 
 	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
 	"pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
 	"scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
+	"fdtfile=undefined\0" \
 	"stdin=serial,usbkbd\0" \
 	"stdout=serial,vga\0" \
 	"stderr=serial,vga\0" \
@@ -153,6 +154,11 @@ 
 		"fi;" \
 		"run setupnandboot;" \
 		"run nandboot;\0" \
+	"findfdt="\
+		"if test $board_name = Utilite && test $board_rev = MX6Q ; then " \
+			"setenv fdtfile imx6q-utilite-pro.dtb; fi; " \
+		"if test $fdtfile = undefined; then " \
+			"echo WARNING: Could not determine dtb to use; fi; \0" \
 	BOOTENV
 
 #define CONFIG_PREBOOT		"usb start;sf probe"