All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support
@ 2020-04-28  7:33 Stephane Viau
  2020-04-28  7:33 ` [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-28  7:33 UTC (permalink / raw)
  To: buildroot

This series adds support for the NXP i.MX8M Nano EVK board.

Since the i.MX8M Nano CPU was added for the Nitrogen8MNano board, which has a
type of memory (LPDDR4) different from the NXP reference board (DDR4), the first
couple of patches introduce the DDR training selection.

The second half of the series adds support for i.MX8M Nano EVK Board with kernel/
U-Boot based on 4.19.35_1.1.0, which is the current preferred version for all NXP
reference boards.

BR, 
Stephane.

Stephane Viau (4):
  package/freescale-imx/firmware-imx: add choice for DDR training
    binaries
  board/freescale/common/imx: use generic ddr_fw.bin name
  board/freescale/common/imx: add support for i.MX8M Nano
  configs/freescale_imx8mnevk: new defconfig

 .gitlab-ci.yml                                     |  1 +
 DEVELOPERS                                         |  4 ++
 .../common/imx/imx8-bootloader-prepare.sh          |  2 +-
 board/freescale/common/imx/post-image.sh           |  2 +
 board/freescale/imx8mnevk/readme.txt               | 74 ++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig              | 43 +++++++++++++
 package/freescale-imx/firmware-imx/Config.in       | 24 +++++++
 package/freescale-imx/firmware-imx/firmware-imx.mk | 29 ++++++++-
 8 files changed, 177 insertions(+), 2 deletions(-)
 create mode 100644 board/freescale/imx8mnevk/readme.txt
 create mode 100644 configs/freescale_imx8mnevk_defconfig

-- 
2.7.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
@ 2020-04-28  7:33 ` Stephane Viau
  2020-04-28  8:21   ` Gary Bisson
  2020-04-28  7:33 ` [Buildroot] [PATCH 2/4] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 21+ messages in thread
From: Stephane Viau @ 2020-04-28  7:33 UTC (permalink / raw)
  To: buildroot

i.MX 8M Nano support many DDR types (LPDDR4, DDR4, DDR3L). Some boards
have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4 (e.g.:
NXP's reference board EVK). This patch allows the selection of either
of the binaries used to train the DDR.

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
 package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
 package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
index 56d5b80..e6ae993 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
 
 	  This library is provided by Freescale as-is and doesn't have
 	  an upstream.
+
+if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
+
+choice
+	bool "DDR training binaries"
+	default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
+	help
+	  Choose the DDR training binaries to be used depending on the
+	  kind of memory that is available on the target board (DDR4,
+	  LPDDR4, etc...).
+
+config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
+	bool "lpddr4"
+	help
+	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
+
+config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
+	bool "DDR4"
+	help
+	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
+
+endchoice # DDR training FW
+
+endif
diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
index cd0dafb..33ee4bb 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
 	$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
 endef
 
-ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
 FIRMWARE_IMX_INSTALL_IMAGES = YES
 FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
 define FIRMWARE_IMX_PREPARE_LPDDR4_FW
@@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
 	cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
 		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
 		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
+	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
 	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
 		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
 endef
+else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
+FIRMWARE_IMX_INSTALL_IMAGES = YES
+FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
+define FIRMWARE_IMX_PREPARE_DDR4_FW
+	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
+	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
+	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
+endef
+
+define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
+	# Create padded versions of ddr4_* and generate ddr4_fw.bin.
+	# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
+	# which is done in post-image script.
+	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
+	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
+	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
+		$(BINARIES_DIR)/ddr4_201810_fw.bin
+	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
+endef
 else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
 define FIRMWARE_IMX_INSTALL_TARGET_CMDS
 	$(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_dec.bin \
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 2/4] board/freescale/common/imx: use generic ddr_fw.bin name
  2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-04-28  7:33 ` [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
@ 2020-04-28  7:33 ` Stephane Viau
  2020-04-28  7:33 ` [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-28  7:33 UTC (permalink / raw)
  To: buildroot

For some SoCs (i.e.: i.MX8M Nano for now), the DDR training firmware
in the boot image depends on the type of memory installed on a board
(LPDDR4, DDR4, etc...). The previous patch makes this firmware name
agnostic of the DDR type and uses ddr_fw.bin as a generic name. This
patch makes imx8-bootloader-prepare.sh use this generic name,
independently of the kind board DDR type.

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
 board/freescale/common/imx/imx8-bootloader-prepare.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/freescale/common/imx/imx8-bootloader-prepare.sh b/board/freescale/common/imx/imx8-bootloader-prepare.sh
index abf2e43..ad01cde 100755
--- a/board/freescale/common/imx/imx8-bootloader-prepare.sh
+++ b/board/freescale/common/imx/imx8-bootloader-prepare.sh
@@ -23,7 +23,7 @@ main ()
 
 		${HOST_DIR}/bin/mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
-		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
 		BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
 		${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
 		rm -f ${BINARIES_DIR}/u-boot.its
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano
  2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-04-28  7:33 ` [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
  2020-04-28  7:33 ` [Buildroot] [PATCH 2/4] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
@ 2020-04-28  7:33 ` Stephane Viau
  2020-04-28  8:22   ` Gary Bisson
  2020-04-28  7:33 ` [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig Stephane Viau
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  4 siblings, 1 reply; 21+ messages in thread
From: Stephane Viau @ 2020-04-28  7:33 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
 board/freescale/common/imx/post-image.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 138ea7b..06ccaac 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -38,6 +38,8 @@ genimage_type()
 		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
 		echo "genimage.cfg.template_imx8"
+	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
+		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then
 		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig
  2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
                   ` (2 preceding siblings ...)
  2020-04-28  7:33 ` [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
@ 2020-04-28  7:33 ` Stephane Viau
  2020-04-28  8:27   ` Gary Bisson
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  4 siblings, 1 reply; 21+ messages in thread
From: Stephane Viau @ 2020-04-28  7:33 UTC (permalink / raw)
  To: buildroot

This patch adds support for the i.MX8M Nano EVK Board [1].

The creation of u-boot.imx image is disabled since it fails and is not
required. The final boot image is created from uboot and firmware binaries
in post image script board/freescale/common/imx/imx8-bootloader-prepare.sh

Note that this config is based on 4.19.35_1.1.0 ; hence, the kernel
configuration needs host-openssl to build.

[1] https://www.nxp.com/document/guide/i-mx-8m-nano-evk-board-getting-started-guide:GS-8MNANOLPD4-EVK

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
 .gitlab-ci.yml                        |  1 +
 DEVELOPERS                            |  4 ++
 board/freescale/imx8mnevk/readme.txt  | 74 +++++++++++++++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig | 43 ++++++++++++++++++++
 4 files changed, 122 insertions(+)
 create mode 100644 board/freescale/imx8mnevk/readme.txt
 create mode 100644 configs/freescale_imx8mnevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fa8e077..0bf8a73 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -190,6 +190,7 @@ freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qmmek_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
+freescale_imx8mnevk_defconfig: { extends: .defconfig }
 freescale_p1025twr_defconfig: { extends: .defconfig }
 freescale_t1040d4rdb_defconfig: { extends: .defconfig }
 freescale_t2080_qds_rdb_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index 34e19b4..8accbe7 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2406,6 +2406,10 @@ F:	package/mtdev2tuio/
 N:	Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>
 F:	package/libhttpserver/
 
+N:	Stephane Viau <stephane.viau@oss.nxp.com>
+F:	board/freescale/imx8mnevk/
+F:	configs/freescale_imx8mnevk_defconfig
+
 N:	Steve Calfee <stevecalfee@gmail.com>
 F:	package/python-pymysql/
 F:	package/python-pyratemp/
diff --git a/board/freescale/imx8mnevk/readme.txt b/board/freescale/imx8mnevk/readme.txt
new file mode 100644
index 0000000..822aeb1
--- /dev/null
+++ b/board/freescale/imx8mnevk/readme.txt
@@ -0,0 +1,74 @@
+***************************
+Freescale i.MX8MN EVK board
+***************************
+
+This file documents the Buildroot support for the i.MX8M Nano EVK board.
+
+Build
+=====
+
+First, configure Buildroot for the i.MX8MN EVK board:
+
+  make freescale_imx8mnevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - bl31.bin
+  - boot.vfat
+  - ddr4_201810_fw.bin
+  - ddr_fw.bin
+  - fsl-imx8mn-ddr4-evk.dtb
+  - Image
+  - imx8-boot-sd.bin
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - signed_hdmi_imx8m.bin
+  - u-boot.bin
+  - u-boot.imx
+  - u-boot.itb
+  - u-boot-nodtb.bin
+  - u-boot-spl.bin
+  - u-boot-spl-ddr.bin
+
+Create a bootable SD card
+=========================
+
+To determine the device associated to the SD card have a look in the
+/proc/partitions file:
+
+  cat /proc/partitions
+
+Buildroot prepares a bootable "sdcard.img" image in the output/images/
+directory, ready to be dumped on a SD card. Launch the following
+command as root:
+
+  dd if=output/images/sdcard.img of=/dev/<your-sd-device>
+
+*** WARNING! This will destroy all the card content. Use with care! ***
+
+For details about the medium image layout, see the definition in
+board/freescale/common/imx/genimage.cfg.template_imx8.
+
+Boot the i.MX8MN EVK board
+==========================
+
+To boot your newly created system (refer to the i.MX8MNano EVK Quick Start Guide
+[1] for guidance):
+- insert the SD card in the SD slot of the board;
+- Configure the switches as follows (X = "don't care"):
+SW1101:	1100XXXXXX [D1-D10]
+SW1102:	XXXXXXXXXX [D1-D10]
+- put a micro USB cable into the Debug USB Port and connect using a terminal
+  emulator at 115200 bps, 8n1;
+- power on the board.
+
+Enjoy!
+
+References
+==========
+[1] https://www.nxp.com/document/guide/i-mx-8m-nano-evk-board-getting-started-guide:GS-8MNANOLPD4-EVK
diff --git a/configs/freescale_imx8mnevk_defconfig b/configs/freescale_imx8mnevk_defconfig
new file mode 100644
index 0000000..a859d1c
--- /dev/null
+++ b/configs/freescale_imx8mnevk_defconfig
@@ -0,0 +1,43 @@
+BR2_aarch64=y
+BR2_ARM_FPU_VFPV3=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/fsl-imx8mn-ddr4-evk.dtb"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-imx8mn-ddr4-evk"
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y
+BR2_PACKAGE_FIRMWARE_IMX=y
+BR2_PACKAGE_FIRMWARE_DDRFW_DDR4=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mn_ddr4_evk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin"
+BR2_TARGET_UBOOT_SPL=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_IMX_MKIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-28  7:33 ` [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
@ 2020-04-28  8:21   ` Gary Bisson
  2020-04-29  7:57     ` Stephane Viau
                       ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Gary Bisson @ 2020-04-28  8:21 UTC (permalink / raw)
  To: buildroot

Hi Stephane,

Thanks for this patch, it would indeed be nice to support several DDR
options. However I have a few remarks, see below.

On Tue, Apr 28, 2020 at 09:33:50AM +0200, Stephane Viau wrote:
> i.MX 8M Nano support many DDR types (LPDDR4, DDR4, DDR3L). Some boards

This is not i.MX8M Nano specific, this actually applies to the whole
i.MX8M family. You can have a i.MX8MQ platform with DDR4 too.

> have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4 (e.g.:
> NXP's reference board EVK). This patch allows the selection of either
> of the binaries used to train the DDR.
> 
> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
> ---
>  package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
>  package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
>  2 files changed, 52 insertions(+), 1 deletion(-)
> 
> diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
> index 56d5b80..e6ae993 100644
> --- a/package/freescale-imx/firmware-imx/Config.in
> +++ b/package/freescale-imx/firmware-imx/Config.in
> @@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
>  
>  	  This library is provided by Freescale as-is and doesn't have
>  	  an upstream.
> +
> +if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN

Please do not limit to IMX8MN

> +choice
> +	bool "DDR training binaries"
> +	default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4

Good that default is LPDDR4 for backward compatibility, thanks.

> +	help
> +	  Choose the DDR training binaries to be used depending on the
> +	  kind of memory that is available on the target board (DDR4,
> +	  LPDDR4, etc...).
> +
> +config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
> +	bool "lpddr4"
> +	help
> +	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
> +
> +config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
> +	bool "DDR4"
> +	help
> +	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).

Where is the DDR3 option?

> +endchoice # DDR training FW
> +
> +endif
> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
> index cd0dafb..33ee4bb 100644
> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
> @@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
>  	$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
>  endef
>  
> -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
>  FIRMWARE_IMX_INSTALL_IMAGES = YES
>  FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>  define FIRMWARE_IMX_PREPARE_LPDDR4_FW
> @@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>  	cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
>  		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
>  		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
> +	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>  	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>  		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
>  endef
> +else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
> +FIRMWARE_IMX_INSTALL_IMAGES = YES
> +FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
> +define FIRMWARE_IMX_PREPARE_DDR4_FW
> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
> +endef
> +
> +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
> +	# Create padded versions of ddr4_* and generate ddr4_fw.bin.
> +	# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
> +	# which is done in post-image script.
> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
> +		$(BINARIES_DIR)/ddr4_201810_fw.bin
> +	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
> +endef

Can you tell me the difference between ddr4_dmem_Xd_201810.bin and ddr4_dmem_Xd.bin?

Regards,
Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano
  2020-04-28  7:33 ` [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
@ 2020-04-28  8:22   ` Gary Bisson
  2020-04-29  8:16     ` Stephane Viau
  0 siblings, 1 reply; 21+ messages in thread
From: Gary Bisson @ 2020-04-28  8:22 UTC (permalink / raw)
  To: buildroot

Hi Stephane,

On Tue, Apr 28, 2020 at 09:33:52AM +0200, Stephane Viau wrote:
> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>

Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>

Regards,
Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig
  2020-04-28  7:33 ` [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig Stephane Viau
@ 2020-04-28  8:27   ` Gary Bisson
  2020-04-29  8:19     ` Stephane Viau
  0 siblings, 1 reply; 21+ messages in thread
From: Gary Bisson @ 2020-04-28  8:27 UTC (permalink / raw)
  To: buildroot

Hi Stephane,

On Tue, Apr 28, 2020 at 09:33:53AM +0200, Stephane Viau wrote:
> This patch adds support for the i.MX8M Nano EVK Board [1].
> 
> The creation of u-boot.imx image is disabled since it fails and is not
> required. 

I don't understand that sentence. What do you mean? AFAIK u-boot.imx is
the i.MX6 format, not sure why it is relevant to i.MX8M.

> The final boot image is created from uboot and firmware binaries
> in post image script board/freescale/common/imx/imx8-bootloader-prepare.sh
> 
> Note that this config is based on 4.19.35_1.1.0 ; hence, the kernel
> configuration needs host-openssl to build.
> 
> [1] https://www.nxp.com/document/guide/i-mx-8m-nano-evk-board-getting-started-guide:GS-8MNANOLPD4-EVK

Doesn't the name of the EVK suggest it's using LPDDR4?

Is there several versions of the same board?

Regards,
Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-28  8:21   ` Gary Bisson
@ 2020-04-29  7:57     ` Stephane Viau
  2020-04-29  8:30     ` Stephane Viau
  2020-05-19 16:01     ` Stephane Viau
  2 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  7:57 UTC (permalink / raw)
  To: buildroot


> Hi Stephane,
Hi Gary,
>
> Thanks for this patch, it would indeed be nice to support several DDR
> options. However I have a few remarks, see below.
Thanks for your review.
>
> On Tue, Apr 28, 2020 at 09:33:50AM +0200, Stephane Viau wrote:
>> i.MX 8M Nano support many DDR types (LPDDR4, DDR4, DDR3L). Some boards
> This is not i.MX8M Nano specific, this actually applies to the whole
> i.MX8M family. You can have a i.MX8MQ platform with DDR4 too.

Agreed. Will extend the comment to i.MX8 (e.g.: 8M, 8MM, 8MN).

>
>> have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4 (e.g.:
>> NXP's reference board EVK). This patch allows the selection of either
>> of the binaries used to train the DDR.
>>
>> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
>> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
>> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
>> ---
>>   package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
>>   package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
>>   2 files changed, 52 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
>> index 56d5b80..e6ae993 100644
>> --- a/package/freescale-imx/firmware-imx/Config.in
>> +++ b/package/freescale-imx/firmware-imx/Config.in
>> @@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
>>   
>>   	  This library is provided by Freescale as-is and doesn't have
>>   	  an upstream.
>> +
>> +if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> Please do not limit to IMX8MN

Upcoming v2 will extend this feature to the whole 8M family,
introducing a BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW symbol.

>
>> +choice
>> +	bool "DDR training binaries"
>> +	default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
> Good that default is LPDDR4 for backward compatibility, thanks.
you're welcome :-)
>
>> +	help
>> +	  Choose the DDR training binaries to be used depending on the
>> +	  kind of memory that is available on the target board (DDR4,
>> +	  LPDDR4, etc...).
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
>> +	bool "lpddr4"
>> +	help
>> +	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
>> +	bool "DDR4"
>> +	help
>> +	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
> Where is the DDR3 option?
Even though 8M Nano supports DDR3, we do not have any reference board 
with this type of DDR afaik, nor do I know if there is a need for a 
specific firmware.
>
>> +endchoice # DDR training FW
>> +
>> +endif
>> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> index cd0dafb..33ee4bb 100644
>> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
>> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> @@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
>>   	$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
>>   endef
>>   
>> -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
>> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
>>   FIRMWARE_IMX_INSTALL_IMAGES = YES
>>   FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>>   define FIRMWARE_IMX_PREPARE_LPDDR4_FW
>> @@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>>   	cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
>>   		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
>>   		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
>> +	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>>   	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>>   		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
>>   endef
>> +else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
>> +FIRMWARE_IMX_INSTALL_IMAGES = YES
>> +FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>> +define FIRMWARE_IMX_PREPARE_DDR4_FW
>> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
>> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
>> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
>> +endef
>> +
>> +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>> +	# Create padded versions of ddr4_* and generate ddr4_fw.bin.
>> +	# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
>> +	# which is done in post-image script.
>> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
>> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
>> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
>> +		$(BINARIES_DIR)/ddr4_201810_fw.bin
>> +	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>> +endef
> Can you tell me the difference between ddr4_dmem_Xd_201810.bin and ddr4_dmem_Xd.bin?

Not sure ; probably an update of the latter by the former. I'll let you 
know if I get more info on this.

BR,
Stephane.

>
> Regards,
> Gary
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20200429/36ed5e77/attachment-0001.html>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano
  2020-04-28  8:22   ` Gary Bisson
@ 2020-04-29  8:16     ` Stephane Viau
  0 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:16 UTC (permalink / raw)
  To: buildroot

>Hi Stephane,
>
>On Tue, Apr 28, 2020 at 09:33:52AM +0200, Stephane Viau wrote:
>> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
>> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
>> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
>
>Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>

Hi Gary, 
Thank you ; will add this.

BR, 
Stephane.

>
>Regards,
>Gary
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig
  2020-04-28  8:27   ` Gary Bisson
@ 2020-04-29  8:19     ` Stephane Viau
  0 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:19 UTC (permalink / raw)
  To: buildroot


> Hi Stephane,
>
> On Tue, Apr 28, 2020 at 09:33:53AM +0200, Stephane Viau wrote:
>> This patch adds support for the i.MX8M Nano EVK Board [1].
>>
>> The creation of u-boot.imx image is disabled since it fails and is not
>> required. 
>
> I don't understand that sentence. What do you mean? AFAIK u-boot.imx is
> the i.MX6 format, not sure why it is relevant to i.MX8M.

Hi Gary,

You are right. I will remove this (confusing) sentence in v2.
>
>
>> The final boot image is created from uboot and firmware binaries
>> in post image script board/freescale/common/imx/imx8-bootloader-prepare.sh
>>
>> Note that this config is based on 4.19.35_1.1.0 ; hence, the kernel
>> configuration needs host-openssl to build.
>>
>> [1] https://www.nxp.com/document/guide/i-mx-8m-nano-evk-board-getting-started-guide:GS-8MNANOLPD4-EVK
>
> Doesn't the name of the EVK suggest it's using LPDDR4?
>
> Is there several versions of the same board?

Not sure why this link contains "LPD4" in its name ; will use another one landing on a page, which is one step above and concerns i.MX8M Nano EVK[1]. On this page, you will notice that DDR4 is mentioned (and that is the one I have used for validation of this config).

[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK 

BR,
Stephane.
>
>
> Regards,
> Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-28  8:21   ` Gary Bisson
  2020-04-29  7:57     ` Stephane Viau
@ 2020-04-29  8:30     ` Stephane Viau
  2020-05-19 16:01     ` Stephane Viau
  2 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:30 UTC (permalink / raw)
  To: buildroot


> Hi Stephane,

Hi Gary,

>
>
> Thanks for this patch, it would indeed be nice to support several DDR
> options. However I have a few remarks, see below.

Thanks for your review.
>
>
> On Tue, Apr 28, 2020 at 09:33:50AM +0200, Stephane Viau wrote:
>> i.MX 8M Nano support many DDR types (LPDDR4, DDR4, DDR3L). Some boards
>
> This is not i.MX8M Nano specific, this actually applies to the whole
> i.MX8M family. You can have a i.MX8MQ platform with DDR4 too.

Agreed. Will extend the comment to i.MX8 (e.g.: 8M, 8MM, 8MN).
>
>
>> have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4 (e.g.:
>> NXP's reference board EVK). This patch allows the selection of either
>> of the binaries used to train the DDR.
>>
>> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
>> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
>> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
>> ---
>>  package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
>>  package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
>>  2 files changed, 52 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
>> index 56d5b80..e6ae993 100644
>> --- a/package/freescale-imx/firmware-imx/Config.in
>> +++ b/package/freescale-imx/firmware-imx/Config.in
>> @@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
>>  
>>  	  This library is provided by Freescale as-is and doesn't have
>>  	  an upstream.
>> +
>> +if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>
> Please do not limit to IMX8MN

Upcoming v2 will extend this feature to the whole 8M family,
introducing a BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW symbol.
>
>
>> +choice
>> +	bool "DDR training binaries"
>> +	default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
>
> Good that default is LPDDR4 for backward compatibility, thanks.
you're welcome :-)
>
>
>> +	help
>> +	  Choose the DDR training binaries to be used depending on the
>> +	  kind of memory that is available on the target board (DDR4,
>> +	  LPDDR4, etc...).
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
>> +	bool "lpddr4"
>> +	help
>> +	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
>> +	bool "DDR4"
>> +	help
>> +	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
>
> Where is the DDR3 option?
Even though 8M Nano supports DDR3, we do not have any reference board with this type of DDR afaik, nor do I know if there is a need for a specific firmware.
>
>
>> +endchoice # DDR training FW
>> +
>> +endif
>> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> index cd0dafb..33ee4bb 100644
>> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
>> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> @@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
>>  	$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
>>  endef
>>  
>> -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
>> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
>>  FIRMWARE_IMX_INSTALL_IMAGES = YES
>>  FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>>  define FIRMWARE_IMX_PREPARE_LPDDR4_FW
>> @@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>>  	cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
>>  		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
>>  		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
>> +	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>>  	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>>  		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
>>  endef
>> +else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
>> +FIRMWARE_IMX_INSTALL_IMAGES = YES
>> +FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>> +define FIRMWARE_IMX_PREPARE_DDR4_FW
>> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
>> +	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
>> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
>> +endef
>> +
>> +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>> +	# Create padded versions of ddr4_* and generate ddr4_fw.bin.
>> +	# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
>> +	# which is done in post-image script.
>> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
>> +	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
>> +	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
>> +		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
>> +		$(BINARIES_DIR)/ddr4_201810_fw.bin
>> +	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>> +endef
>
> Can you tell me the difference between ddr4_dmem_Xd_201810.bin and ddr4_dmem_Xd.bin?

Not sure ; probably an update of the latter by the former. I'll let you know if I get more info on this.

BR,
Stephane.
>
>
> Regards,
> Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support
  2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
                   ` (3 preceding siblings ...)
  2020-04-28  7:33 ` [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig Stephane Viau
@ 2020-04-29  8:31 ` Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
                     ` (4 more replies)
  4 siblings, 5 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

This series adds support for the NXP i.MX8M Nano EVK board.

Since the i.MX8M Nano CPU was added for the Nitrogen8MNano board, which has a
type of memory (LPDDR4) different from the NXP reference board (DDR4), the first
half of the series introduce the DDR training selection for the whole i.MX8 M
SoC family.

The second half of the series adds support for i.MX8M Nano EVK Board with kernel/
U-Boot based on 4.19.35_1.1.0, which is the current preferred version for all NXP
reference boards.

Stephane Viau (5):
  package/freescale-imx: Add option for DDR FW need
  package/freescale-imx/firmware-imx: add choice for DDR training
    binaries
  board/freescale/common/imx: use generic ddr_fw.bin name
  board/freescale/common/imx: add support for i.MX8M Nano
  configs/freescale_imx8mnevk: new defconfig

 .gitlab-ci.yml                                     |  1 +
 DEVELOPERS                                         |  4 ++
 .../common/imx/imx8-bootloader-prepare.sh          |  6 +-
 board/freescale/common/imx/post-image.sh           |  2 +
 board/freescale/imx8mnevk/readme.txt               | 74 ++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig              | 43 +++++++++++++
 package/freescale-imx/Config.in                    |  7 ++
 package/freescale-imx/firmware-imx/Config.in       | 24 +++++++
 package/freescale-imx/firmware-imx/firmware-imx.mk | 29 ++++++++-
 9 files changed, 186 insertions(+), 4 deletions(-)
 create mode 100644 board/freescale/imx8mnevk/readme.txt
 create mode 100644 configs/freescale_imx8mnevk_defconfig

-- 
2.7.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/freescale-imx: Add option for DDR FW need
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
@ 2020-04-29  8:31   ` Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

Only some i.MX8 need a DDR training firmware (8M, 8MM, 8MN). Some other
i.MX8 (QuadMax, QuadXPlus) rely on system controller for that task.

Suggested-by: Julien Olivain <julien.olivain@oss.nxp.com>
Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
v2:
  - introduce BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW to extend the DDR
    firmware selection to the whole i.MX 8M family (suggested by Gary)

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
 package/freescale-imx/Config.in | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index b0c7de8..6b10d2c 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -96,6 +96,13 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
 
+config BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
+	bool
+	default y if \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
+
 source "package/freescale-imx/imx-alsa-plugins/Config.in"
 source "package/freescale-imx/imx-codec/Config.in"
 source "package/freescale-imx/imx-kobs/Config.in"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
@ 2020-04-29  8:31   ` Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

Several i.MX8 (e.g.: 8M, 8MM, 8MN) support many DDR types (LPDDR4, DDR4,
etc.), for which the DDR training is performed in the bootloader.
Some boards have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4
(e.g.: NXP's reference board EVK). This patch allows the selection of either
of the binaries used to train the DDR.

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
v2:
  - use BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW to extend the DDR
    firmware selection for 8M, 8MM and 8MN (suggested by Gary)

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
 package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
 package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
index 56d5b80..4962992 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
 
 	  This library is provided by Freescale as-is and doesn't have
 	  an upstream.
+
+if BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
+
+choice
+	bool "DDR training binaries"
+	default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
+	help
+	  Choose the DDR training binaries to be used depending on the
+	  kind of memory that is available on the target board (DDR4,
+	  LPDDR4, etc...).
+
+config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
+	bool "lpddr4"
+	help
+	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
+
+config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
+	bool "DDR4"
+	help
+	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
+
+endchoice # DDR training FW
+
+endif
diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
index cd0dafb..fc2f69a 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
 	$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
 endef
 
-ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
+ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
 FIRMWARE_IMX_INSTALL_IMAGES = YES
 FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
 define FIRMWARE_IMX_PREPARE_LPDDR4_FW
@@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
 	cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
 		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
 		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
+	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
 	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
 		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
 endef
+else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
+FIRMWARE_IMX_INSTALL_IMAGES = YES
+FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
+define FIRMWARE_IMX_PREPARE_DDR4_FW
+	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
+	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
+	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
+endef
+
+define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
+	# Create padded versions of ddr4_* and generate ddr4_fw.bin.
+	# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
+	# which is done in post-image script.
+	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
+	$(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
+	cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
+		$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
+		$(BINARIES_DIR)/ddr4_201810_fw.bin
+	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
+endef
 else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
 define FIRMWARE_IMX_INSTALL_TARGET_CMDS
 	$(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_dec.bin \
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 3/5] board/freescale/common/imx: use generic ddr_fw.bin name
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
@ 2020-04-29  8:31   ` Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

For some SoCs (i.e.: i.MX8M Nano for now), the DDR training firmware
in the boot image depends on the type of memory installed on a board
(LPDDR4, DDR4, etc...). The previous patch makes this firmware name
agnostic of the DDR type and uses ddr_fw.bin as a generic name. This
patch makes imx8-bootloader-prepare.sh use this generic name,
independently of the kind board DDR type.

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
v2:
  - generic ddr_fw.bin name is now used also for 8M and 8MM, along with
    8MN (suggested by Gary)

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
 board/freescale/common/imx/imx8-bootloader-prepare.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/board/freescale/common/imx/imx8-bootloader-prepare.sh b/board/freescale/common/imx/imx8-bootloader-prepare.sh
index abf2e43..cb7c37b 100755
--- a/board/freescale/common/imx/imx8-bootloader-prepare.sh
+++ b/board/freescale/common/imx/imx8-bootloader-prepare.sh
@@ -9,21 +9,21 @@ main ()
 	fi
 
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
-		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
 		BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
 		${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
 		rm -f ${BINARIES_DIR}/u-boot.its
 
 		${HOST_DIR}/bin/mkimage_imx8 -fit -signed_hdmi ${BINARIES_DIR}/signed_hdmi_imx8m.bin -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
-		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
 		BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
 		${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
 		rm -f ${BINARIES_DIR}/u-boot.its
 
 		${HOST_DIR}/bin/mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
-		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+		cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
 		BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
 		${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
 		rm -f ${BINARIES_DIR}/u-boot.its
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 4/5] board/freescale/common/imx: add support for i.MX8M Nano
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
                     ` (2 preceding siblings ...)
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
@ 2020-04-29  8:31   ` Stephane Viau
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
 board/freescale/common/imx/post-image.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 138ea7b..06ccaac 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -38,6 +38,8 @@ genimage_type()
 		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
 		echo "genimage.cfg.template_imx8"
+	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
+		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then
 		echo "genimage.cfg.template_imx8"
 	elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH v2 5/5] configs/freescale_imx8mnevk: new defconfig
  2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
                     ` (3 preceding siblings ...)
  2020-04-29  8:31   ` [Buildroot] [PATCH v2 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
@ 2020-04-29  8:31   ` Stephane Viau
  4 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-04-29  8:31 UTC (permalink / raw)
  To: buildroot

This patch adds support for the i.MX8M Nano EVK Board [1].

The final boot image is created from uboot and firmware binaries in post
image script board/freescale/common/imx/imx8-bootloader-prepare.sh

Note that this config is based on 4.19.35_1.1.0 ; hence, the kernel
configuration needs host-openssl to build.

[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
---
v2:
  - reword commit title about uboot.imx generation: sentence removed (Gary)
  - replace link which was confusing because mentioning LPD4 when DDR4
    EVK is actually available (suggested by Gary)

Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
---
 .gitlab-ci.yml                        |  1 +
 DEVELOPERS                            |  4 ++
 board/freescale/imx8mnevk/readme.txt  | 74 +++++++++++++++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig | 43 ++++++++++++++++++++
 4 files changed, 122 insertions(+)
 create mode 100644 board/freescale/imx8mnevk/readme.txt
 create mode 100644 configs/freescale_imx8mnevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fa8e077..0bf8a73 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -190,6 +190,7 @@ freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qmmek_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
+freescale_imx8mnevk_defconfig: { extends: .defconfig }
 freescale_p1025twr_defconfig: { extends: .defconfig }
 freescale_t1040d4rdb_defconfig: { extends: .defconfig }
 freescale_t2080_qds_rdb_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index cc72b28..6fb2d84 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2402,6 +2402,10 @@ F:	package/mtdev2tuio/
 N:	Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>
 F:	package/libhttpserver/
 
+N:	Stephane Viau <stephane.viau@oss.nxp.com>
+F:	board/freescale/imx8mnevk/
+F:	configs/freescale_imx8mnevk_defconfig
+
 N:	Steve Calfee <stevecalfee@gmail.com>
 F:	package/python-pymysql/
 F:	package/python-pyratemp/
diff --git a/board/freescale/imx8mnevk/readme.txt b/board/freescale/imx8mnevk/readme.txt
new file mode 100644
index 0000000..379d851
--- /dev/null
+++ b/board/freescale/imx8mnevk/readme.txt
@@ -0,0 +1,74 @@
+***************************
+Freescale i.MX8MN EVK board
+***************************
+
+This file documents the Buildroot support for the i.MX8M Nano EVK board.
+
+Build
+=====
+
+First, configure Buildroot for the i.MX8MN EVK board:
+
+  make freescale_imx8mnevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - bl31.bin
+  - boot.vfat
+  - ddr4_201810_fw.bin
+  - ddr_fw.bin
+  - fsl-imx8mn-ddr4-evk.dtb
+  - Image
+  - imx8-boot-sd.bin
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - signed_hdmi_imx8m.bin
+  - u-boot.bin
+  - u-boot.imx
+  - u-boot.itb
+  - u-boot-nodtb.bin
+  - u-boot-spl.bin
+  - u-boot-spl-ddr.bin
+
+Create a bootable SD card
+=========================
+
+To determine the device associated to the SD card have a look in the
+/proc/partitions file:
+
+  cat /proc/partitions
+
+Buildroot prepares a bootable "sdcard.img" image in the output/images/
+directory, ready to be dumped on a SD card. Launch the following
+command as root:
+
+  dd if=output/images/sdcard.img of=/dev/<your-sd-device>
+
+*** WARNING! This will destroy all the card content. Use with care! ***
+
+For details about the medium image layout, see the definition in
+board/freescale/common/imx/genimage.cfg.template_imx8.
+
+Boot the i.MX8MN EVK board
+==========================
+
+To boot your newly created system (refer to the i.MX8MNano EVK Quick Start Guide
+[1] for guidance):
+- insert the SD card in the SD slot of the board;
+- Configure the switches as follows (X = "don't care"):
+SW1101:	1100XXXXXX [D1-D10]
+SW1102:	XXXXXXXXXX [D1-D10]
+- put a micro USB cable into the Debug USB Port and connect using a terminal
+  emulator at 115200 bps, 8n1;
+- power on the board.
+
+Enjoy!
+
+References
+==========
+[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
diff --git a/configs/freescale_imx8mnevk_defconfig b/configs/freescale_imx8mnevk_defconfig
new file mode 100644
index 0000000..a859d1c
--- /dev/null
+++ b/configs/freescale_imx8mnevk_defconfig
@@ -0,0 +1,43 @@
+BR2_aarch64=y
+BR2_ARM_FPU_VFPV3=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/fsl-imx8mn-ddr4-evk.dtb"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-imx8mn-ddr4-evk"
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y
+BR2_PACKAGE_FIRMWARE_IMX=y
+BR2_PACKAGE_FIRMWARE_DDRFW_DDR4=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/imx-atf"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.1.0"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mn_ddr4_evk"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-nodtb.bin"
+BR2_TARGET_UBOOT_SPL=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_IMX_MKIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-04-28  8:21   ` Gary Bisson
  2020-04-29  7:57     ` Stephane Viau
  2020-04-29  8:30     ` Stephane Viau
@ 2020-05-19 16:01     ` Stephane Viau
  2020-05-20  7:24       ` Gary Bisson
  2 siblings, 1 reply; 21+ messages in thread
From: Stephane Viau @ 2020-05-19 16:01 UTC (permalink / raw)
  To: buildroot

>Hi Stephane,
>
>Thanks for this patch, it would indeed be nice to support several DDR
>options. However I have a few remarks, see below.
>

Hi Gary, 

Did you get a chance to review the v2 patch set I sent a few weeks ago?
(https://patchwork.ozlabs.org/project/buildroot/list/?series=173449) 

Best regards, 
Stephane.

>On Tue, Apr 28, 2020 at 09:33:50AM +0200, Stephane Viau wrote:
>> i.MX 8M Nano support many DDR types (LPDDR4, DDR4, DDR3L). Some boards
>
>This is not i.MX8M Nano specific, this actually applies to the whole
>i.MX8M family. You can have a i.MX8MQ platform with DDR4 too.
>
>> have LPDDR4 (e.g.: nitrogen8mn) and some others have the DDR4 (e.g.:
>> NXP's reference board EVK). This patch allows the selection of either
>> of the binaries used to train the DDR.
>>
>> Signed-off-by: Stephane Viau <stephane.viau@oss.nxp.com>
>> Reviewed-by: Maeva Manuel <maeva.manuel@oss.nxp.com>
>> Reviewed-by: Julien Olivain <julien.olivain@oss.nxp.com>
>> ---
>>  package/freescale-imx/firmware-imx/Config.in       | 24 ++++++++++++++++++
>>  package/freescale-imx/firmware-imx/firmware-imx.mk | 29 +++++++++++++++++++++-
>>  2 files changed, 52 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
>> index 56d5b80..e6ae993 100644
>> --- a/package/freescale-imx/firmware-imx/Config.in
>> +++ b/package/freescale-imx/firmware-imx/Config.in
>> @@ -8,3 +8,27 @@ config BR2_PACKAGE_FIRMWARE_IMX
>>
>>         This library is provided by Freescale as-is and doesn't have
>>         an upstream.
>> +
>> +if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>
>Please do not limit to IMX8MN
>
>> +choice
>> +     bool "DDR training binaries"
>> +     default BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
>
>Good that default is LPDDR4 for backward compatibility, thanks.
>
>> +     help
>> +       Choose the DDR training binaries to be used depending on the
>> +       kind of memory that is available on the target board (DDR4,
>> +       LPDDR4, etc...).
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4
>> +     bool "lpddr4"
>> +     help
>> +       Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
>> +
>> +config BR2_PACKAGE_FIRMWARE_DDRFW_DDR4
>> +     bool "DDR4"
>> +     help
>> +       Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
>
>Where is the DDR3 option?
>
>> +endchoice # DDR training FW
>> +
>> +endif
>> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> index cd0dafb..33ee4bb 100644
>> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
>> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
>> @@ -18,7 +18,7 @@ define FIRMWARE_IMX_EXTRACT_CMDS
>>       $(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
>>  endef
>>
>> -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
>> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
>>  FIRMWARE_IMX_INSTALL_IMAGES = YES
>>  FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>>  define FIRMWARE_IMX_PREPARE_LPDDR4_FW
>> @@ -42,9 +42,36 @@ define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>>       cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
>>               $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
>>               $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
>> +     ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>>       cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>>               $(BINARIES_DIR)/signed_hdmi_imx8m.bin
>>  endef
>> +else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
>> +FIRMWARE_IMX_INSTALL_IMAGES = YES
>> +FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>> +define FIRMWARE_IMX_PREPARE_DDR4_FW
>> +     $(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810.bin \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin
>> +     $(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810.bin \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin
>> +     cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_imem_$(1)_201810_pad.bin \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_dmem_$(1)_201810_pad.bin > \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_$(1)_201810_fw.bin
>> +endef
>> +
>> +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>> +     # Create padded versions of ddr4_* and generate ddr4_fw.bin.
>> +     # ddr4_fw.bin is needed when generating imx8-boot-sd.bin
>> +     # which is done in post-image script.
>> +     $(call FIRMWARE_IMX_PREPARE_DDR4_FW,1d)
>> +     $(call FIRMWARE_IMX_PREPARE_DDR4_FW,2d)
>> +     cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
>> +             $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
>> +             $(BINARIES_DIR)/ddr4_201810_fw.bin
>> +     ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>> +endef
>
>Can you tell me the difference between ddr4_dmem_Xd_201810.bin and ddr4_dmem_Xd.bin?
>
>Regards,
>Gary
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-05-19 16:01     ` Stephane Viau
@ 2020-05-20  7:24       ` Gary Bisson
  2020-05-20 15:58         ` Stephane Viau
  0 siblings, 1 reply; 21+ messages in thread
From: Gary Bisson @ 2020-05-20  7:24 UTC (permalink / raw)
  To: buildroot

Hi Stephane,

On Tue, May 19, 2020 at 04:01:21PM +0000, Stephane Viau (OSS) wrote:
> >Hi Stephane,
> >
> >Thanks for this patch, it would indeed be nice to support several DDR
> >options. However I have a few remarks, see below.
> >
> 
> Hi Gary, 
> 
> Did you get a chance to review the v2 patch set I sent a few weeks ago?
> (https://patchwork.ozlabs.org/project/buildroot/list/?series=173449) 

I haven't got a chance to look at it no. But I'm doing so this morning.
Mainly I only one remark on the first patch, I'll reply to it.
All the other patches look good.

Regards,
Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-05-20  7:24       ` Gary Bisson
@ 2020-05-20 15:58         ` Stephane Viau
  0 siblings, 0 replies; 21+ messages in thread
From: Stephane Viau @ 2020-05-20 15:58 UTC (permalink / raw)
  To: buildroot


Hi Gary, 

>Hi Stephane,
>
>> >Hi Stephane,
>> >
>> >Thanks for this patch, it would indeed be nice to support several DDR
>> >options. However I have a few remarks, see below.
>> >
>> 
>> Hi Gary, 
>> 
>> Did you get a chance to review the v2 patch set I sent a few weeks ago?
>> (https://patchwork.ozlabs.org/project/buildroot/list/?series=173449)
>
>I haven't got a chance to look at it no. But I'm doing so this morning.
>Mainly I only one remark on the first patch, I'll reply to it.
>All the other patches look good.

I got your feedback on the v2 patches, thanks!
Will have a look and send out a v3 patch set in the coming days.

BR, 
Stephane.

>
>Regards,
>Gary

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2020-05-20 15:58 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-28  7:33 [Buildroot] [PATCH 0/4] imx: add i.MX8M Nano EVK board support Stephane Viau
2020-04-28  7:33 ` [Buildroot] [PATCH 1/4] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
2020-04-28  8:21   ` Gary Bisson
2020-04-29  7:57     ` Stephane Viau
2020-04-29  8:30     ` Stephane Viau
2020-05-19 16:01     ` Stephane Viau
2020-05-20  7:24       ` Gary Bisson
2020-05-20 15:58         ` Stephane Viau
2020-04-28  7:33 ` [Buildroot] [PATCH 2/4] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
2020-04-28  7:33 ` [Buildroot] [PATCH 3/4] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
2020-04-28  8:22   ` Gary Bisson
2020-04-29  8:16     ` Stephane Viau
2020-04-28  7:33 ` [Buildroot] [PATCH 4/4] configs/freescale_imx8mnevk: new defconfig Stephane Viau
2020-04-28  8:27   ` Gary Bisson
2020-04-29  8:19     ` Stephane Viau
2020-04-29  8:31 ` [Buildroot] [PATCH v2 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
2020-04-29  8:31   ` [Buildroot] [PATCH v2 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
2020-04-29  8:31   ` [Buildroot] [PATCH v2 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
2020-04-29  8:31   ` [Buildroot] [PATCH v2 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
2020-04-29  8:31   ` [Buildroot] [PATCH v2 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
2020-04-29  8:31   ` [Buildroot] [PATCH v2 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.