ARM: imx: cm_fx6: env: try to determine dtb to use
authorChristopher Spinrath <christopher.spinrath@rwth-aachen.de>
Tue, 9 Jan 2018 21:01:36 +0000 (22:01 +0100)
committerStefano Babic <sbabic@denx.de>
Fri, 12 Jan 2018 13:28:04 +0000 (14:28 +0100)
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
include/configs/cm_fx6.h

index 33e610c..6b1c0a8 100644 (file)
@@ -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
index cb71ea8..da870b9 100644 (file)
@@ -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" \
                "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"