diff mbox series

[U-Boot,v2,5/5] imx: add i.MX6ULZ board

Message ID 20190808101110.21912-5-peng.fan@nxp.com
State Accepted
Commit 1d293e6804fe077853636b0517ef00609299936e
Delegated to: Stefano Babic
Headers show
Series [U-Boot,v2,1/5] arm: dts: sync dts for i.MX6UL | expand

Commit Message

Peng Fan Aug. 8, 2019, 9:55 a.m. UTC
Add i.MX6ULZ board support. the i.MX6ULZ is SW compatible
with i.MX6ULL. so most code of i.MX6ULL can be reused
by i.MX6ULZ.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---

V2:
 Add entry in MAINTAINERS

 arch/arm/dts/imx6ulz-14x14-evk.dts    | 22 ++++++++++++++++++
 board/freescale/mx6ullevk/MAINTAINERS |  1 +
 board/freescale/mx6ullevk/mx6ullevk.c | 10 ++++++--
 configs/mx6ulz_14x14_evk_defconfig    | 44 +++++++++++++++++++++++++++++++++++
 include/configs/mx6ullevk.h           | 13 ++++++++++-
 5 files changed, 87 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/dts/imx6ulz-14x14-evk.dts
 create mode 100644 configs/mx6ulz_14x14_evk_defconfig

Comments

Ye Li Aug. 9, 2019, 8:54 a.m. UTC | #1
> Add i.MX6ULZ board support. the i.MX6ULZ is SW compatible
> with i.MX6ULL. so most code of i.MX6ULL can be reused
> by i.MX6ULZ.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
> 
> V2:
>  Add entry in MAINTAINERS
> 
>  arch/arm/dts/imx6ulz-14x14-evk.dts    | 22 ++++++++++++++++++
>  board/freescale/mx6ullevk/MAINTAINERS |  1 +
>  board/freescale/mx6ullevk/mx6ullevk.c | 10 ++++++--
>  configs/mx6ulz_14x14_evk_defconfig    | 44 +++++++++++++++++++++++++++++++++++
>  include/configs/mx6ullevk.h           | 13 ++++++++++-
>  5 files changed, 87 insertions(+), 3 deletions(-)
>  create mode 100644 arch/arm/dts/imx6ulz-14x14-evk.dts
>  create mode 100644 configs/mx6ulz_14x14_evk_defconfig
> 
> diff --git a/arch/arm/dts/imx6ulz-14x14-evk.dts b/arch/arm/dts/imx6ulz-14x14-evk.dts
> new file mode 100644
> index 0000000000..483d9732c0
> --- /dev/null
> +++ b/arch/arm/dts/imx6ulz-14x14-evk.dts
> @@ -0,0 +1,22 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +//
> +// Copyright 2018 NXP.
> +
> +/dts-v1/;
> +
> +#include "imx6ulz.dtsi"
> +#include "imx6ul-14x14-evk.dtsi"
> +
> +/delete-node/ &fec1;
> +/delete-node/ &fec2;
> +/delete-node/ &can1;
> +/delete-node/ &can2;
> +/delete-node/ &lcdif;
> +/delete-node/ &tsc;
> +
> +/ {
> +	model = "Freescale i.MX6 ULZ 14x14 EVK Board";
> +	compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
> +
> +	/delete-node/ panel;
> +};
> diff --git a/board/freescale/mx6ullevk/MAINTAINERS b/board/freescale/mx6ullevk/MAINTAINERS
> index 73031cd121..3d1b256036 100644
> --- a/board/freescale/mx6ullevk/MAINTAINERS
> +++ b/board/freescale/mx6ullevk/MAINTAINERS
> @@ -5,3 +5,4 @@ F:	board/freescale/mx6ullevk/
>  F:	include/configs/mx6ullevk.h
>  F:	configs/mx6ull_14x14_evk_defconfig
>  F:	configs/mx6ull_14x14_evk_plugin_defconfig
> +F:	configs/mx6ulz_14x14_evk_defconfig
> diff --git a/board/freescale/mx6ullevk/mx6ullevk.c b/board/freescale/mx6ullevk/mx6ullevk.c
> index 1f0f70efbd..0a35eeb95e 100644
> --- a/board/freescale/mx6ullevk/mx6ullevk.c
> +++ b/board/freescale/mx6ullevk/mx6ullevk.c
> @@ -83,7 +83,10 @@ int board_late_init(void)
>  #endif
>  
>  #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> -	env_set("board_name", "EVK");
> +	if (is_cpu_type(MXC_CPU_MX6ULZ))
> +		env_set("board_name", "ULZ-EVK");
> +	else
> +		env_set("board_name", "EVK");
>  	env_set("board_rev", "14X14");
>  #endif
>  
> @@ -92,7 +95,10 @@ int board_late_init(void)
>  
>  int checkboard(void)
>  {
> -	puts("Board: MX6ULL 14x14 EVK\n");
> +	if (is_cpu_type(MXC_CPU_MX6ULZ))
> +		puts("Board: MX6ULZ 14x14 EVK\n");
> +	else
> +		puts("Board: MX6ULL 14x14 EVK\n");
>  
>  	return 0;
>  }
> diff --git a/configs/mx6ulz_14x14_evk_defconfig b/configs/mx6ulz_14x14_evk_defconfig
> new file mode 100644
> index 0000000000..f647d72c6e
> --- /dev/null
> +++ b/configs/mx6ulz_14x14_evk_defconfig
> @@ -0,0 +1,44 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_MX6=y
> +CONFIG_SYS_TEXT_BASE=0x87800000
> +CONFIG_TARGET_MX6ULL_14X14_EVK=y
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"
> +CONFIG_SUPPORT_RAW_INITRD=y
> +CONFIG_BOUNCE_BUFFER=y
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_CMD_BOOTZ=y
> +CONFIG_CMD_MEMTEST=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_SF=y
> +CONFIG_CMD_DHCP=y
> +CONFIG_CMD_PING=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_EXT2=y
> +CONFIG_CMD_EXT4=y
> +CONFIG_CMD_EXT4_WRITE=y
> +CONFIG_CMD_FAT=y
> +CONFIG_CMD_FS_GENERIC=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="imx6ulz-14x14-evk"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
> +CONFIG_DM_GPIO=y
> +CONFIG_DM_74X164=y
> +CONFIG_DM_I2C=y
> +CONFIG_DM_MMC=y
> +CONFIG_FSL_ESDHC_IMX=y
> +CONFIG_DM_SPI_FLASH=y
> +CONFIG_SPI_FLASH=y
> +CONFIG_SF_DEFAULT_MODE=0
> +CONFIG_SF_DEFAULT_SPEED=40000000
> +CONFIG_SPI_FLASH_STMICRO=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_IMX6=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_SPI=y
> +CONFIG_DM_SPI=y
> +CONFIG_FSL_QSPI=y
> diff --git a/include/configs/mx6ullevk.h b/include/configs/mx6ullevk.h
> index 1fc5c24dec..f5f3de6cd4 100644
> --- a/include/configs/mx6ullevk.h
> +++ b/include/configs/mx6ullevk.h
> @@ -55,7 +55,7 @@
>  	"console=ttymxc0\0" \
>  	"fdt_high=0xffffffff\0" \
>  	"initrd_high=0xffffffff\0" \
> -	"fdt_file=imx6ull-14x14-evk.dtb\0" \
> +	"fdt_file=undefined\0" \
>  	"fdt_addr=0x83000000\0" \
>  	"boot_fdt=try\0" \
>  	"ip_dyn=yes\0" \
> @@ -87,6 +87,16 @@
>  		"else " \
>  			"bootz; " \
>  		"fi;\0" \
> +		"findfdt="\
> +			"if test $fdt_file = undefined; then " \
> +				"if test $board_name = ULZ-EVK && test $board_rev = 14X14; then " \
> +					"setenv fdt_file imx6ulz-14x14-evk.dtb; fi; " \
> +				"if test $board_name = EVK && test $board_rev = 14X14; then " \
> +					"setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \
> +				"if test $fdt_file = undefined; then " \
> +					"echo WARNING: Could not determine dtb to use; " \
> +				"fi; " \
> +			"fi;\0" \
>  	"netargs=setenv bootargs console=${console},${baudrate} " \
>  		"root=/dev/nfs " \
>  	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
> @@ -113,6 +123,7 @@
>  		"fi;\0" \
>  
>  #define CONFIG_BOOTCOMMAND \
> +	   "run findfdt;" \
>  	   "mmc dev ${mmcdev};" \
>  	   "mmc dev ${mmcdev}; if mmc rescan; then " \
>  		   "if run loadbootscript; then " \
> 
Reviewed-by: Ye Li <ye.li@nxp.com>

Best regards,
Ye Li
Fabio Estevam Aug. 9, 2019, 4:46 p.m. UTC | #2
On Thu, Aug 8, 2019 at 6:55 AM Peng Fan <peng.fan@nxp.com> wrote:
>
> Add i.MX6ULZ board support. the i.MX6ULZ is SW compatible
> with i.MX6ULL. so most code of i.MX6ULL can be reused
> by i.MX6ULZ.
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>
Stefan Roese Sept. 5, 2019, 8:59 a.m. UTC | #3
Hi Peng,
Hi Fabio,

On 08.08.19 11:55, Peng Fan wrote:
> Add i.MX6ULZ board support. the i.MX6ULZ is SW compatible
> with i.MX6ULL. so most code of i.MX6ULL can be reused
> by i.MX6ULZ.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
> 
> V2:
>   Add entry in MAINTAINERS
> 
>   arch/arm/dts/imx6ulz-14x14-evk.dts    | 22 ++++++++++++++++++
>   board/freescale/mx6ullevk/MAINTAINERS |  1 +
>   board/freescale/mx6ullevk/mx6ullevk.c | 10 ++++++--
>   configs/mx6ulz_14x14_evk_defconfig    | 44 +++++++++++++++++++++++++++++++++++
>   include/configs/mx6ullevk.h           | 13 ++++++++++-
>   5 files changed, 87 insertions(+), 3 deletions(-)
>   create mode 100644 arch/arm/dts/imx6ulz-14x14-evk.dts
>   create mode 100644 configs/mx6ulz_14x14_evk_defconfig

I'm currently looking at this 6ULZ support and have a few questions
(mainly, since I would like to add support for new custom i.MX6ULZ
board in the future). So hopefully you can shed some light into
this.

a)
Why is SPL not used in the mainline i.MX6ULL/ULZ port? The i.MX6UL
(14x14) does use SPL.

b)
Do you have a reference board (eval kit) that supports LPDDR2 on the
i.MX6ULL/ULZ with the U-Boot source code? I'm asking since we plan
to use LPDDR2 instead of DDR3.

Thanks,
Stefan
Fabio Estevam Sept. 5, 2019, 11:32 a.m. UTC | #4
Hi Stefan,

On Thu, Sep 5, 2019 at 5:59 AM Stefan Roese <sr@denx.de> wrote:

> a)
> Why is SPL not used in the mainline i.MX6ULL/ULZ port? The i.MX6UL
> (14x14) does use SPL.

Yes, I think it could SPL as well. Maybe Peng can comment.

> b)
> Do you have a reference board (eval kit) that supports LPDDR2 on the
> i.MX6ULL/ULZ with the U-Boot source code? I'm asking since we plan
> to use LPDDR2 instead of DDR3.

I am only aware of a mx6ul LPDDR2 target, which can probably help:

https://source.codeaurora.org/external/imx/uboot-imx/tree/board/freescale/mx6ul_14x14_lpddr2_arm2/imximage.cfg?h=imx_v2019.04_4.19.35_1.0.0

Regards,

Fabio Estevam
Peng Fan Sept. 6, 2019, 7:43 a.m. UTC | #5
> Subject: Re: [U-Boot] [PATCH v2 5/5] imx: add i.MX6ULZ board
> 
> Hi Stefan,
> 
> On Thu, Sep 5, 2019 at 5:59 AM Stefan Roese <sr@denx.de> wrote:
> 
> > a)
> > Why is SPL not used in the mainline i.MX6ULL/ULZ port? The i.MX6UL
> > (14x14) does use SPL.
> 
> Yes, I think it could SPL as well. Maybe Peng can comment.

NXP vendor tree not support SPL, so when I upstream the code, SPL was not
included.

Regards,
Peng.

> 
> > b)
> > Do you have a reference board (eval kit) that supports LPDDR2 on the
> > i.MX6ULL/ULZ with the U-Boot source code? I'm asking since we plan to
> > use LPDDR2 instead of DDR3.
> 
> I am only aware of a mx6ul LPDDR2 target, which can probably help:
> 
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource
> .codeaurora.org%2Fexternal%2Fimx%2Fuboot-imx%2Ftree%2Fboard%2Ffree
> scale%2Fmx6ul_14x14_lpddr2_arm2%2Fimximage.cfg%3Fh%3Dimx_v2019.0
> 4_4.19.35_1.0.0&amp;data=02%7C01%7Cpeng.fan%40nxp.com%7C432044d
> 939ee4717a16808d731f4b329%7C686ea1d3bc2b4c6fa92cd99c5c301635%7
> C0%7C0%7C637032799372346468&amp;sdata=MM2aitptGVWj3M7fdrgryth
> cLoCif6wm9RAWDL7EaHc%3D&amp;reserved=0
> 
> Regards,
> 
> Fabio Estevam
Stefan Roese Sept. 10, 2019, 12:27 p.m. UTC | #6
Hi Peng,
Hi Fabio,

On 06.09.19 09:43, Peng Fan wrote:
>> Subject: Re: [U-Boot] [PATCH v2 5/5] imx: add i.MX6ULZ board
>>
>> Hi Stefan,
>>
>> On Thu, Sep 5, 2019 at 5:59 AM Stefan Roese <sr@denx.de> wrote:
>>
>>> a)
>>> Why is SPL not used in the mainline i.MX6ULL/ULZ port? The i.MX6UL
>>> (14x14) does use SPL.
>>
>> Yes, I think it could SPL as well. Maybe Peng can comment.
> 
> NXP vendor tree not support SPL, so when I upstream the code, SPL was not
> included.

I see. Thanks for the update here. I might work on SPL support, if this
seems necessary for my custom i.MX6ULZ board.

I do have another question though. I'm currently testing QSPI booting
on the i.MX6ULL EVK. And this does not work 100% reliably. Sometimes
the board boots after programming of the IMX image to 0x1000 in QSPI
NOR to the U-Boot prompt. And sometimes I see no output at all. I
do have the QSPI binary programmed at 0x400. BTW, these binaries boot
all just fine when booted via the "imx_usb" loader. Only when booted
directly from QSPI (DIP switches) it fails sometimes.

Is this a known problem?

Do you have a reference U-Boot binary for QSPI booting for the i.MX6ULL
EVK? Best would be including the QSPI header (offset 0x400).

Thanks,
Stefan
Peng Fan Sept. 11, 2019, 12:51 a.m. UTC | #7
> Subject: Re: [U-Boot] [PATCH v2 5/5] imx: add i.MX6ULZ board
> 
> Hi Peng,
> Hi Fabio,
> 
> On 06.09.19 09:43, Peng Fan wrote:
> >> Subject: Re: [U-Boot] [PATCH v2 5/5] imx: add i.MX6ULZ board
> >>
> >> Hi Stefan,
> >>
> >> On Thu, Sep 5, 2019 at 5:59 AM Stefan Roese <sr@denx.de> wrote:
> >>
> >>> a)
> >>> Why is SPL not used in the mainline i.MX6ULL/ULZ port? The i.MX6UL
> >>> (14x14) does use SPL.
> >>
> >> Yes, I think it could SPL as well. Maybe Peng can comment.
> >
> > NXP vendor tree not support SPL, so when I upstream the code, SPL was
> > not included.
> 
> I see. Thanks for the update here. I might work on SPL support, if this seems
> necessary for my custom i.MX6ULZ board.
> 
> I do have another question though. I'm currently testing QSPI booting on the
> i.MX6ULL EVK. And this does not work 100% reliably. Sometimes the board
> boots after programming of the IMX image to 0x1000 in QSPI NOR to the
> U-Boot prompt. And sometimes I see no output at all. I do have the QSPI
> binary programmed at 0x400. BTW, these binaries boot all just fine when
> booted via the "imx_usb" loader. Only when booted directly from QSPI (DIP
> switches) it fails sometimes.
> 
> Is this a known problem?

I not heard such issue from our internal test.

> 
> Do you have a reference U-Boot binary for QSPI booting for the i.MX6ULL EVK?
> Best would be including the QSPI header (offset 0x400).

Have you ever tried mfgtool? I do not have such image.

Regards,
Peng.
> 
> Thanks,
> Stefan
diff mbox series

Patch

diff --git a/arch/arm/dts/imx6ulz-14x14-evk.dts b/arch/arm/dts/imx6ulz-14x14-evk.dts
new file mode 100644
index 0000000000..483d9732c0
--- /dev/null
+++ b/arch/arm/dts/imx6ulz-14x14-evk.dts
@@ -0,0 +1,22 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+//
+// Copyright 2018 NXP.
+
+/dts-v1/;
+
+#include "imx6ulz.dtsi"
+#include "imx6ul-14x14-evk.dtsi"
+
+/delete-node/ &fec1;
+/delete-node/ &fec2;
+/delete-node/ &can1;
+/delete-node/ &can2;
+/delete-node/ &lcdif;
+/delete-node/ &tsc;
+
+/ {
+	model = "Freescale i.MX6 ULZ 14x14 EVK Board";
+	compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
+
+	/delete-node/ panel;
+};
diff --git a/board/freescale/mx6ullevk/MAINTAINERS b/board/freescale/mx6ullevk/MAINTAINERS
index 73031cd121..3d1b256036 100644
--- a/board/freescale/mx6ullevk/MAINTAINERS
+++ b/board/freescale/mx6ullevk/MAINTAINERS
@@ -5,3 +5,4 @@  F:	board/freescale/mx6ullevk/
 F:	include/configs/mx6ullevk.h
 F:	configs/mx6ull_14x14_evk_defconfig
 F:	configs/mx6ull_14x14_evk_plugin_defconfig
+F:	configs/mx6ulz_14x14_evk_defconfig
diff --git a/board/freescale/mx6ullevk/mx6ullevk.c b/board/freescale/mx6ullevk/mx6ullevk.c
index 1f0f70efbd..0a35eeb95e 100644
--- a/board/freescale/mx6ullevk/mx6ullevk.c
+++ b/board/freescale/mx6ullevk/mx6ullevk.c
@@ -83,7 +83,10 @@  int board_late_init(void)
 #endif
 
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
-	env_set("board_name", "EVK");
+	if (is_cpu_type(MXC_CPU_MX6ULZ))
+		env_set("board_name", "ULZ-EVK");
+	else
+		env_set("board_name", "EVK");
 	env_set("board_rev", "14X14");
 #endif
 
@@ -92,7 +95,10 @@  int board_late_init(void)
 
 int checkboard(void)
 {
-	puts("Board: MX6ULL 14x14 EVK\n");
+	if (is_cpu_type(MXC_CPU_MX6ULZ))
+		puts("Board: MX6ULZ 14x14 EVK\n");
+	else
+		puts("Board: MX6ULL 14x14 EVK\n");
 
 	return 0;
 }
diff --git a/configs/mx6ulz_14x14_evk_defconfig b/configs/mx6ulz_14x14_evk_defconfig
new file mode 100644
index 0000000000..f647d72c6e
--- /dev/null
+++ b/configs/mx6ulz_14x14_evk_defconfig
@@ -0,0 +1,44 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_TARGET_MX6ULL_14X14_EVK=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ulz-14x14-evk"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_74X164=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_ESDHC_IMX=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SF_DEFAULT_SPEED=40000000
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_REGULATOR=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_QSPI=y
diff --git a/include/configs/mx6ullevk.h b/include/configs/mx6ullevk.h
index 1fc5c24dec..f5f3de6cd4 100644
--- a/include/configs/mx6ullevk.h
+++ b/include/configs/mx6ullevk.h
@@ -55,7 +55,7 @@ 
 	"console=ttymxc0\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
-	"fdt_file=imx6ull-14x14-evk.dtb\0" \
+	"fdt_file=undefined\0" \
 	"fdt_addr=0x83000000\0" \
 	"boot_fdt=try\0" \
 	"ip_dyn=yes\0" \
@@ -87,6 +87,16 @@ 
 		"else " \
 			"bootz; " \
 		"fi;\0" \
+		"findfdt="\
+			"if test $fdt_file = undefined; then " \
+				"if test $board_name = ULZ-EVK && test $board_rev = 14X14; then " \
+					"setenv fdt_file imx6ulz-14x14-evk.dtb; fi; " \
+				"if test $board_name = EVK && test $board_rev = 14X14; then " \
+					"setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \
+				"if test $fdt_file = undefined; then " \
+					"echo WARNING: Could not determine dtb to use; " \
+				"fi; " \
+			"fi;\0" \
 	"netargs=setenv bootargs console=${console},${baudrate} " \
 		"root=/dev/nfs " \
 	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
@@ -113,6 +123,7 @@ 
 		"fi;\0" \
 
 #define CONFIG_BOOTCOMMAND \
+	   "run findfdt;" \
 	   "mmc dev ${mmcdev};" \
 	   "mmc dev ${mmcdev}; if mmc rescan; then " \
 		   "if run loadbootscript; then " \