All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support
@ 2020-05-27  5:07 Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 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, as well as a separation of the DDR and HDMI FW copy.

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               | 73 ++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig              | 43 +++++++++++++
 package/freescale-imx/Config.in                    |  6 ++
 package/freescale-imx/firmware-imx/Config.in       | 24 +++++++
 package/freescale-imx/firmware-imx/firmware-imx.mk | 43 ++++++++++++-
 9 files changed, 197 insertions(+), 5 deletions(-)
 create mode 100644 board/freescale/imx8mnevk/readme.txt
 create mode 100644 configs/freescale_imx8mnevk_defconfig

-- 
2.7.4

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

* [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
@ 2020-05-27  5:07 ` Stephane Viau
  2020-05-29 21:46   ` Yann E. MORIN
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 UTC (permalink / raw)
  To: buildroot

Only some i.MX8 needs 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>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
v4:
  - add Gary's reviewed-by
v3:
  - let the others 'select' this newly introduced option instead of
    'default y' it. I believe this option is still required since we
    only want to choose a DDR binary for the i.MX 8M platforms. (Yann/Gary)
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 | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index b0c7de8..0be37ce 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -45,12 +45,15 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 	bool "imx8mm"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
 	bool "imx8mn"
+	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
 	bool "imx8x"
@@ -96,6 +99,9 @@ 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
+
 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] 13+ messages in thread

* [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
@ 2020-05-27  5:07 ` Stephane Viau
  2020-05-27  8:36   ` Gary Bisson
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 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.

Note that DDR and HDMI FW copies are now separated, which makes latter
being properly copied only for the relevant SoC (i.MX8MQ).
Suggested-by: Gary Bisson <gary.bisson@boundarydevices.com>

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>
---
v4:
  - Keep the 'if IMX8M...' around the whole block (Gary)
  - Remove FIRMWARE_IMX_PREPARE_HDMI_FW empty definition (Gary)
v3:
  - Use common FIRMWARE_IMX_INSTALL_IMAGES_CMDS for all i.MX8M platforms
    and let FIRMWARE_IMX_PREPARE_{DDR,HDMI}_FW be different according to
    the type of DDR mounted (BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW choice)
    or the eventual presence of HDMI, which is SoC dependant.     (Gary)
v2:
  - use BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW to extend the DDR
    firmware selection for 8M, 8MM and 8MN (suggested by Gary)

fixup! package/freescale-imx/firmware-imx: add choice for DDR training binaries

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 | 43 +++++++++++++++++++++-
 2 files changed, 65 insertions(+), 2 deletions(-)

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..32f1bb1 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -19,7 +19,8 @@ define FIRMWARE_IMX_EXTRACT_CMDS
 endef
 
 ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM)$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
-FIRMWARE_IMX_INSTALL_IMAGES = YES
+
+ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
 FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
 define FIRMWARE_IMX_PREPARE_LPDDR4_FW
 	$(TARGET_OBJCOPY) -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 \
@@ -33,7 +34,7 @@ define FIRMWARE_IMX_PREPARE_LPDDR4_FW
 		$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_$(1)_fw.bin
 endef
 
-define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
+define FIRMWARE_IMX_PREPARE_DDR_FW
 	# Create padded versions of lpddr4_pmu_* and generate lpddr4_pmu_train_fw.bin.
 	# lpddr4_pmu_train_fw.bin is needed when generating imx8-boot-sd.bin
 	# which is done in post-image script.
@@ -42,9 +43,47 @@ 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
+endef
+else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
+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_PREPARE_DDR_FW
+	# 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
+endif
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+define FIRMWARE_IMX_PREPARE_HDMI_FW
 	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
 		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
 endef
+endif
+
+FIRMWARE_IMX_INSTALL_IMAGES = YES
+define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
+	$(FIRMWARE_IMX_PREPARE_DDR_FW)
+	$(FIRMWARE_IMX_PREPARE_HDMI_FW)
+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] 13+ messages in thread

* [Buildroot] [PATCH v4 3/5] board/freescale/common/imx: use generic ddr_fw.bin name
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
@ 2020-05-27  5:07 ` Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 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>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
v4:
  - add Gary's reviewed-by
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] 13+ messages in thread

* [Buildroot] [PATCH v4 4/5] board/freescale/common/imx: add support for i.MX8M Nano
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
                   ` (2 preceding siblings ...)
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
@ 2020-05-27  5:07 ` Stephane Viau
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau
  2020-05-29 21:41 ` [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Yann E. MORIN
  5 siblings, 0 replies; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 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] 13+ messages in thread

* [Buildroot] [PATCH v4 5/5] configs/freescale_imx8mnevk: new defconfig
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
                   ` (3 preceding siblings ...)
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
@ 2020-05-27  5:07 ` Stephane Viau
  2020-05-29 21:41 ` [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Yann E. MORIN
  5 siblings, 0 replies; 13+ messages in thread
From: Stephane Viau @ 2020-05-27  5:07 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>
---
v3:
  - Remove hdmi bin from 8MN config now that this feature can easily be
    (re)set through FIRMWARE_IMX_PREPARE_HDMI_FW.
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  | 73 +++++++++++++++++++++++++++++++++++
 configs/freescale_imx8mnevk_defconfig | 43 +++++++++++++++++++++
 4 files changed, 121 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 99f47c3..27db106 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2397,6 +2397,10 @@ F:	package/gtest/
 F:	package/libhttpserver/
 F:	package/mtdev/
 
+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..d770056
--- /dev/null
+++ b/board/freescale/imx8mnevk/readme.txt
@@ -0,0 +1,73 @@
+***************************
+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
+  - 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] 13+ messages in thread

* [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
@ 2020-05-27  8:36   ` Gary Bisson
  0 siblings, 0 replies; 13+ messages in thread
From: Gary Bisson @ 2020-05-27  8:36 UTC (permalink / raw)
  To: buildroot

Hi Stephane,

Thanks for the quick respin!

On Wed, May 27, 2020 at 07:07:45AM +0200, Stephane Viau wrote:
> 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.
> 
> Note that DDR and HDMI FW copies are now separated, which makes latter
> being properly copied only for the relevant SoC (i.MX8MQ).
> Suggested-by: Gary Bisson <gary.bisson@boundarydevices.com>
> 
> 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] 13+ messages in thread

* [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support
  2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
                   ` (4 preceding siblings ...)
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau
@ 2020-05-29 21:41 ` Yann E. MORIN
  2020-06-02  7:31   ` Stephane Viau
  5 siblings, 1 reply; 13+ messages in thread
From: Yann E. MORIN @ 2020-05-29 21:41 UTC (permalink / raw)
  To: buildroot

St?phane, All,

On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
> 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, as well as a separation of the DDR and HDMI FW copy.
> 
> 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

I'll reply separately to that one.

>   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

Whole series applied to next, thanks.

Regards,
Yann E. MORIN.

>  .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               | 73 ++++++++++++++++++++++
>  configs/freescale_imx8mnevk_defconfig              | 43 +++++++++++++
>  package/freescale-imx/Config.in                    |  6 ++
>  package/freescale-imx/firmware-imx/Config.in       | 24 +++++++
>  package/freescale-imx/firmware-imx/firmware-imx.mk | 43 ++++++++++++-
>  9 files changed, 197 insertions(+), 5 deletions(-)
>  create mode 100644 board/freescale/imx8mnevk/readme.txt
>  create mode 100644 configs/freescale_imx8mnevk_defconfig
> 
> -- 
> 2.7.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need
  2020-05-27  5:07 ` [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
@ 2020-05-29 21:46   ` Yann E. MORIN
  2020-06-02  7:32     ` Stephane Viau
  0 siblings, 1 reply; 13+ messages in thread
From: Yann E. MORIN @ 2020-05-29 21:46 UTC (permalink / raw)
  To: buildroot

Stephane, All

On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
> Only some i.MX8 needs 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>
> Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
> ---
> v4:
>   - add Gary's reviewed-by
> v3:
>   - let the others 'select' this newly introduced option instead of
>     'default y' it. I believe this option is still required since we
>     only want to choose a DDR binary for the i.MX 8M platforms. (Yann/Gary)
> 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 | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index b0c7de8..0be37ce 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -45,12 +45,15 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>  	bool "imx8m"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>  	bool "imx8mm"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>  	bool "imx8mn"
> +	select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>  	bool "imx8x"
> @@ -96,6 +99,9 @@ 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

Now that this variable exists, I've made use of it to drive the actual
insrallation of the DDR trainging files, instead of the concatenation
of the corresponding platforms.

Pelase review the commit to check I haven't totally borked the thing:

    https://git.buildroot.org/buildroot/commit/?id=6bb7f3b81092e7005470c7d689a566dbc1d059c6

Thanks.

>  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
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support
  2020-05-29 21:41 ` [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Yann E. MORIN
@ 2020-06-02  7:31   ` Stephane Viau
  0 siblings, 0 replies; 13+ messages in thread
From: Stephane Viau @ 2020-06-02  7:31 UTC (permalink / raw)
  To: buildroot

>
>St??phane, All,

Hello Yann, 

>
>On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
>> 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, as well as a separation of the DDR and HDMI FW copy.
>>
>> 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
>
>I'll reply separately to that one.

Please check my comment in the same thread.

>
>>   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
>
>Whole series applied to next, thanks.

Thank you.

BR, 
Stephane.

>
>Regards,
>Yann E. MORIN.
>
>>  .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               | 73 ++++++++++++++++++++++
>>  configs/freescale_imx8mnevk_defconfig              | 43 +++++++++++++
>>  package/freescale-imx/Config.in                    |  6 ++
>>  package/freescale-imx/firmware-imx/Config.in       | 24 +++++++
>>  package/freescale-imx/firmware-imx/firmware-imx.mk | 43 ++++++++++++-
>>  9 files changed, 197 insertions(+), 5 deletions(-)
>>  create mode 100644 board/freescale/imx8mnevk/readme.txt
>>  create mode 100644 configs/freescale_imx8mnevk_defconfig
>>
>> --
>> 2.7.4
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
>--
>.-----------------.--------------------.------------------.--------------------.
>|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>'------------------------------^-------^------------------^--------------------'
>

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

* [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need
  2020-05-29 21:46   ` Yann E. MORIN
@ 2020-06-02  7:32     ` Stephane Viau
  2020-06-02 20:03       ` Yann E. MORIN
  0 siblings, 1 reply; 13+ messages in thread
From: Stephane Viau @ 2020-06-02  7:32 UTC (permalink / raw)
  To: buildroot

>
>Stephane, All

Hello Yann,

>
>On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
>> Only some i.MX8 needs 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>
>> Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
>> ---
>> v4:
>>   - add Gary's reviewed-by
>> v3:
>>   - let the others 'select' this newly introduced option instead of
>>     'default y' it. I believe this option is still required since we
>>     only want to choose a DDR binary for the i.MX 8M platforms. (Yann/Gary)
>> 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 | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
>> index b0c7de8..0be37ce 100644
>> --- a/package/freescale-imx/Config.in
>> +++ b/package/freescale-imx/Config.in
>> @@ -45,12 +45,15 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>>       bool "imx8m"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>>       bool "imx8mm"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>>       bool "imx8mn"
>> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>>
>>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>>       bool "imx8x"
>> @@ -96,6 +99,9 @@ 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
>
>Now that this variable exists, I've made use of it to drive the actual
>insrallation of the DDR trainging files, instead of the concatenation
>of the corresponding platforms.
>

Quite tempting, indeed.
I have actually proposed this in my v2 series, in which Gary made these comments:
[1]:
	"
	And here is why I'm worried the name of the previous variable might be
	misleading. You don't only copy the DDR FW training under that
	BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4 macro, you also copy the HDMI FW.
	Note that the DP FW should be added as well.
	"
and [2]:
	"
	I would still keep the 'if IMX8M' around the whole block that is only
	for iMX8M.
	"
... which I did agree with and reverted back to using the whole SoC list instead.

Also, the _ifeq_ part of this _if_ statement mentions another SoC
(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X): it makes thus more sense to
use the i.MX 8M SoC list in the former part, doesn't it?

[1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html
[2] http://lists.busybox.net/pipermail/buildroot/2020-May/283442.html

Thanks,
Stephane.

>Pelase review the commit to check I haven't totally borked the thing:
>
>    https://git.buildroot.org/buildroot/commit/?id=6bb7f3b81092e7005470c7d689a566dbc1d059c6
>
>Thanks.
>
>>  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
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
>--
>.-----------------.--------------------.------------------.--------------------.
>|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>'------------------------------^-------^------------------^--------------------'
>

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

* [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need
  2020-06-02  7:32     ` Stephane Viau
@ 2020-06-02 20:03       ` Yann E. MORIN
  2020-06-03 19:23         ` Stephane Viau
  0 siblings, 1 reply; 13+ messages in thread
From: Yann E. MORIN @ 2020-06-02 20:03 UTC (permalink / raw)
  To: buildroot

Stephane, All,

On 2020-06-02 07:32 +0000, Stephane Viau (OSS) spake thusly:
> >On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
> >> Only some i.MX8 needs a DDR training firmware (8M, 8MM, 8MN). Some other
> >> i.MX8 (QuadMax, QuadXPlus) rely on system controller for that task.
[--SNIP--]
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> >>       bool "imx8m"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >>
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> >>       bool "imx8mm"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >>
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
> >>       bool "imx8mn"
> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
> >>
> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
> >>       bool "imx8x"
> >> @@ -96,6 +99,9 @@ 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
> >
> >Now that this variable exists, I've made use of it to drive the actual
> >insrallation of the DDR trainging files, instead of the concatenation
> >of the corresponding platforms.
> Quite tempting, indeed.
> I have actually proposed this in my v2 series, in which Gary made these comments:
> [1]:
> 	"
> 	And here is why I'm worried the name of the previous variable might be
> 	misleading. You don't only copy the DDR FW training under that
> 	BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4 macro, you also copy the HDMI FW.
> 	Note that the DP FW should be added as well.

The macro copying the HDMI FW can indeed be moved out of the conditional
block, indeed. But this commit 6bb7f3b8109 I amended when applying does
not change the behaviour at all.

> and [2]:
> 	"
> 	I would still keep the 'if IMX8M' around the whole block that is only
> 	for iMX8M.
> 	"
> ... which I did agree with and reverted back to using the whole SoC list instead.

Ah, but that's not what I discussed with Gary on IRC the other day when
he asked for my input. I suggested exactly to switch to using the new
variable.

> Also, the _ifeq_ part of this _if_ statement mentions another SoC
> (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X): it makes thus more sense to
> use the i.MX 8M SoC list in the former part, doesn't it?

Oh, I see what you mean. I also had a mixed feelings about it, but this
is not so much an issue. Semantically, that is OK (IMHO) to have
succeeding conditionals that test various things...

But looking at the big picture again, I see potential for a further
simple (semantic) cleanup:

    diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
    index 9fd1c54b48..3239e432da 100644
    --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
    +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
    @@ -18,7 +18,16 @@ 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),y)
    +FIRMWARE_IMX_INSTALL_IMAGES = YES
    +define FIRMWARE_IMX_PREPARE_HDMI_FW
    +	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
    +		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
    +endef
    +endif # PLATFORM_IMX8M
    +
     ifeq ($(BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW),y)
    +FIRMWARE_IMX_INSTALL_TARGET = NO
     FIRMWARE_IMX_INSTALL_IMAGES = YES
     
     ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
    @@ -46,6 +55,8 @@ define FIRMWARE_IMX_PREPARE_DDR_FW
     		$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
     	ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
     endef
    +
    +# else DRFW_LPDDR4
     else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
     FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
     define FIRMWARE_IMX_PREPARE_DDR4_FW
    @@ -71,28 +82,19 @@ define FIRMWARE_IMX_PREPARE_DDR_FW
     		$(BINARIES_DIR)/ddr4_201810_fw.bin
     	ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
     endef
    -endif
    +endif # DDRFW_LPDDR4 || DDRFW_DDR4
     
    -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
    -define FIRMWARE_IMX_PREPARE_HDMI_FW
    -	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
    -		$(BINARIES_DIR)/signed_hdmi_imx8m.bin
    -endef
    -endif
    -
    -define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
    -	$(FIRMWARE_IMX_PREPARE_DDR_FW)
    -	$(FIRMWARE_IMX_PREPARE_HDMI_FW)
    -endef
    +# else NEED_DDR_FW
     else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
    -define FIRMWARE_IMX_INSTALL_TARGET_CMDS
    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS_IMX8X
     	$(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_dec.bin \
     		$(TARGET_DIR)/lib/firmware/vpu/vpu_fw_imx8_dec.bin
     	$(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_enc.bin \
     		$(TARGET_DIR)/lib/firmware/vpu/vpu_fw_imx8_enc.bin
     endef
    -else
    -define FIRMWARE_IMX_INSTALL_TARGET_CMDS
    +
    +else # NEED_DDR_FW || PLATFORM_IMX8X
    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC
     	mkdir -p $(TARGET_DIR)/lib/firmware/imx
     	for blobdir in $(FIRMWARE_IMX_BLOBS); do \
     		cp -r $(@D)/firmware/$${blobdir} $(TARGET_DIR)/lib/firmware; \
    @@ -101,6 +103,16 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
     	mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
     		$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
     endef
    -endif
    +endif # NEED_DDR_FW || PLATFORM_IMX8X || the rest
    +
    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS
    +	$(FIRMWARE_IMX_INSTALL_TARGET_CMDS_IM	X8X)
    +	$(FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC)
    +endef
    +
    +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
    +	$(FIRMWARE_IMX_PREPARE_HDMI_FW)
    +	$(FIRMWARE_IMX_PREPARE_DDR_FW)
    +endef
     
     $(eval $(generic-package))

Care to look at that?

Regards,
Yann E. MORIN.

> [1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html
> [2] http://lists.busybox.net/pipermail/buildroot/2020-May/283442.html
> 
> Thanks,
> Stephane.
> 
> >Pelase review the commit to check I haven't totally borked the thing:
> >
> >    https://git.buildroot.org/buildroot/commit/?id=6bb7f3b81092e7005470c7d689a566dbc1d059c6
> >
> >Thanks.
> >
> >>  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
> >>
> >> _______________________________________________
> >> buildroot mailing list
> >> buildroot at busybox.net
> >> http://lists.busybox.net/mailman/listinfo/buildroot
> >
> >--
> >.-----------------.--------------------.------------------.--------------------.
> >|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> >| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> >| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> >| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> >'------------------------------^-------^------------------^--------------------'
> >

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need
  2020-06-02 20:03       ` Yann E. MORIN
@ 2020-06-03 19:23         ` Stephane Viau
  0 siblings, 0 replies; 13+ messages in thread
From: Stephane Viau @ 2020-06-03 19:23 UTC (permalink / raw)
  To: buildroot

>Stephane, All,

Hi Yann,

>
>On 2020-06-02 07:32 +0000, Stephane Viau (OSS) spake thusly:
>> >On 2020-05-27 07:07 +0200, Stephane Viau spake thusly:
>> >> Only some i.MX8 needs a DDR training firmware (8M, 8MM, 8MN). Some other
>> >> i.MX8 (QuadMax, QuadXPlus) rely on system controller for that task.
>[--SNIP--]
>> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>> >>       bool "imx8m"
>> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>> >>
>> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>> >>       bool "imx8mm"
>> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>> >>
>> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
>> >>       bool "imx8mn"
>> >> +     select BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW
>> >>
>> >>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>> >>       bool "imx8x"
>> >> @@ -96,6 +99,9 @@ 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
>> >
>> >Now that this variable exists, I've made use of it to drive the actual
>> >insrallation of the DDR trainging files, instead of the concatenation
>> >of the corresponding platforms.
>> Quite tempting, indeed.
>> I have actually proposed this in my v2 series, in which Gary made these comments:
>> [1]:
>>       "
>>       And here is why I'm worried the name of the previous variable might be
>>       misleading. You don't only copy the DDR FW training under that
>>       BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4 macro, you also copy the HDMI FW.
>>       Note that the DP FW should be added as well.
>
>The macro copying the HDMI FW can indeed be moved out of the conditional
>block, indeed. But this commit 6bb7f3b8109 I amended when applying does
>not change the behaviour at all.

Agreed ; the behavior is the same.

>
>> and [2]:
>>       "
>>       I would still keep the 'if IMX8M' around the whole block that is only
>>       for iMX8M.
>>       "
>> ... which I did agree with and reverted back to using the whole SoC list instead.
>
>Ah, but that's not what I discussed with Gary on IRC the other day when
>he asked for my input. I suggested exactly to switch to using the new
>variable.
>
>> Also, the _ifeq_ part of this _if_ statement mentions another SoC
>> (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X): it makes thus more sense to
>> use the i.MX 8M SoC list in the former part, doesn't it?
>
>Oh, I see what you mean. I also had a mixed feelings about it, but this
>is not so much an issue. Semantically, that is OK (IMHO) to have
>succeeding conditionals that test various things...

It sure works semantically but (IMO), if there are ways to avoid it, I'd rather
avoid comparing apples and oranges ;-)

>
>But looking at the big picture again, I see potential for a further
>simple (semantic) cleanup:

True. I see these major steps:

1.1) define FIRMWARE_IMX_PREPARE_HDMI_FW     (+ set FIRMWARE_IMX_INSTALL_IMAGES = YES)
1.2) define FIRMWARE_IMX_PREPARE_DDR_FW      (+ set FIRMWARE_IMX_INSTALL_IMAGES = YES)
1.3) define FIRMWARE_IMX_INSTALL_IMAGES_CMDS (based on the above FIRMWARE_IMX_PREPARE_xxx)


2.1) define FIRMWARE_IMX_INSTALL_TARGET_CMDS_IMX8X        (+ set FIRMWARE_IMX_INSTALL_TARGET = YES)
2.2) define FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC      (+ set FIRMWARE_IMX_INSTALL_TARGET = YES)
2.3) define FIRMWARE_IMX_INSTALL_TARGET_CMDS (based on the above FIRMWARE_IMX_INSTALL_TARGET_CMDS_xxx)


>
>    diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
>    index 9fd1c54b48..3239e432da 100644
>    --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
>    +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
>    @@ -18,7 +18,16 @@ 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),y)

looks like we need a new "BR2_PACKAGE_FREESCALE_IMX_NEED_HDMI_FW" symbol here.

>    +FIRMWARE_IMX_INSTALL_IMAGES = YES
>    +define FIRMWARE_IMX_PREPARE_HDMI_FW
>    +   cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>    +           $(BINARIES_DIR)/signed_hdmi_imx8m.bin
>    +endef
>    +endif # PLATFORM_IMX8M

That is "1.1) define FIRMWARE_IMX_PREPARE_HDMI_FW     (+ set FIRMWARE_IMX_INSTALL_IMAGES = YES)"


>    +
>     ifeq ($(BR2_PACKAGE_FREESCALE_IMX_NEED_DDR_FW),y)
>    +FIRMWARE_IMX_INSTALL_TARGET = NO
>     FIRMWARE_IMX_INSTALL_IMAGES = YES
>
>     ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_LPDDR4),y)
>    @@ -46,6 +55,8 @@ define FIRMWARE_IMX_PREPARE_DDR_FW
>                $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
>        ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>     endef
>    +
>    +# else DRFW_LPDDR4
>     else ifeq ($(BR2_PACKAGE_FIRMWARE_DDRFW_DDR4),y)
>     FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
>     define FIRMWARE_IMX_PREPARE_DDR4_FW
>    @@ -71,28 +82,19 @@ define FIRMWARE_IMX_PREPARE_DDR_FW
>                $(BINARIES_DIR)/ddr4_201810_fw.bin
>        ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
>     endef
>    -endif
>    +endif # DDRFW_LPDDR4 || DDRFW_DDR4

That is "1.2) define FIRMWARE_IMX_PREPARE_DDR_FW      (+ set FIRMWARE_IMX_INSTALL_IMAGES = YES)"

I would rather _endif_ here in order to separate the whole NEED_DDR_FW stuff from
the INSTALL_TARGET stuff ; even though if, today, NEED_DDR_FW is tightly coupled with the i.MX8M
family (but probably shouldn't).

>
>    -ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
>    -define FIRMWARE_IMX_PREPARE_HDMI_FW
>    -   cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
>    -           $(BINARIES_DIR)/signed_hdmi_imx8m.bin
>    -endef
>    -endif
>    -
>    -define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>    -   $(FIRMWARE_IMX_PREPARE_DDR_FW)
>    -   $(FIRMWARE_IMX_PREPARE_HDMI_FW)
>    -endef
>    +# else NEED_DDR_FW
>     else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
>    -define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS_IMX8X
>        $(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_dec.bin \
>                $(TARGET_DIR)/lib/firmware/vpu/vpu_fw_imx8_dec.bin
>        $(INSTALL) -D -m 0644 $(@D)/firmware/vpu/vpu_fw_imx8_enc.bin \
>                $(TARGET_DIR)/lib/firmware/vpu/vpu_fw_imx8_enc.bin
>     endef

That is "2.1) define FIRMWARE_IMX_INSTALL_TARGET_CMDS_IMX8X"    
(we should also set FIRMWARE_IMX_INSTALL_TARGET = YES)

>    -else
>    -define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>    +
>    +else # NEED_DDR_FW || PLATFORM_IMX8X
>    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC
>        mkdir -p $(TARGET_DIR)/lib/firmware/imx
>        for blobdir in $(FIRMWARE_IMX_BLOBS); do \
>                cp -r $(@D)/firmware/$${blobdir} $(TARGET_DIR)/lib/firmware; \
>    @@ -101,6 +103,16 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>        mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
>                $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
>     endef

That is "2.2) define FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC"
(we should also set FIRMWARE_IMX_INSTALL_TARGET = YES)

>    -endif
>    +endif # NEED_DDR_FW || PLATFORM_IMX8X || the rest
>    +
>    +define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>    +   $(FIRMWARE_IMX_INSTALL_TARGET_CMDS_IMX8X)
>    +   $(FIRMWARE_IMX_INSTALL_TARGET_CMDS_GENERIC)
>    +endef

Good idea, indeed.
That is "2.3) define FIRMWARE_IMX_INSTALL_TARGET_CMDS (based on the above FIRMWARE_IMX_INSTALL_TARGET_CMDS_xxx)"

>    +
>    +define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
>    +   $(FIRMWARE_IMX_PREPARE_HDMI_FW)
>    +   $(FIRMWARE_IMX_PREPARE_DDR_FW)
>    +endef

That is "1.3) define FIRMWARE_IMX_INSTALL_IMAGES_CMDS (based on the above FIRMWARE_IMX_PREPARE_xxx)"

>
>     $(eval $(generic-package))
>
>Care to look at that?

Will do (and propose a patch for review soon).

BR,
Stephane.

>
>Regards,
>Yann E. MORIN.
>
>> [1] http://lists.busybox.net/pipermail/buildroot/2020-May/283181.html
>> [2] http://lists.busybox.net/pipermail/buildroot/2020-May/283442.html
>>
>> Thanks,
>> Stephane.
>>
>> >Pelase review the commit to check I haven't totally borked the thing:
>> >
>> >    https://git.buildroot.org/buildroot/commit/?id=6bb7f3b81092e7005470c7d689a566dbc1d059c6
>> >
>> >Thanks.
>> >
>> >>  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
>> >>
>> >> _______________________________________________
>> >> buildroot mailing list
>> >> buildroot at busybox.net
>> >> http://lists.busybox.net/mailman/listinfo/buildroot
>> >
>> >--
>> >.-----------------.--------------------.------------------.--------------------.
>> >|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>> >| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>> >| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>> >| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>> >'------------------------------^-------^------------------^--------------------'
>> >
>
>--
>.-----------------.--------------------.------------------.--------------------.
>|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>'------------------------------^-------^------------------^--------------------'
>
>

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

end of thread, other threads:[~2020-06-03 19:23 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-27  5:07 [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Stephane Viau
2020-05-27  5:07 ` [Buildroot] [PATCH v4 1/5] package/freescale-imx: Add option for DDR FW need Stephane Viau
2020-05-29 21:46   ` Yann E. MORIN
2020-06-02  7:32     ` Stephane Viau
2020-06-02 20:03       ` Yann E. MORIN
2020-06-03 19:23         ` Stephane Viau
2020-05-27  5:07 ` [Buildroot] [PATCH v4 2/5] package/freescale-imx/firmware-imx: add choice for DDR training binaries Stephane Viau
2020-05-27  8:36   ` Gary Bisson
2020-05-27  5:07 ` [Buildroot] [PATCH v4 3/5] board/freescale/common/imx: use generic ddr_fw.bin name Stephane Viau
2020-05-27  5:07 ` [Buildroot] [PATCH v4 4/5] board/freescale/common/imx: add support for i.MX8M Nano Stephane Viau
2020-05-27  5:07 ` [Buildroot] [PATCH v4 5/5] configs/freescale_imx8mnevk: new defconfig Stephane Viau
2020-05-29 21:41 ` [Buildroot] [PATCH v4 0/5] imx: add i.MX8M Nano EVK board support Yann E. MORIN
2020-06-02  7:31   ` 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.