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 33e610ccb42d484383ebacf97a3ce71fe0a2bdfd..6b1c0a823c635d930766b0e0d0bef0dab38200a1 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 cb71ea88116ced9565f24719922e86dce5701ef2..da870b9baa56c6732f580774f4af0ece3001cbac 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"