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 |
> 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
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>
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
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
> 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&data=02%7C01%7Cpeng.fan%40nxp.com%7C432044d > 939ee4717a16808d731f4b329%7C686ea1d3bc2b4c6fa92cd99c5c301635%7 > C0%7C0%7C637032799372346468&sdata=MM2aitptGVWj3M7fdrgryth > cLoCif6wm9RAWDL7EaHc%3D&reserved=0 > > Regards, > > Fabio Estevam
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
> 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 --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 " \
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