All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] package/freescale-imx/imx-m4-firmware: new package
@ 2019-10-29 17:01 Fabrice Goucem
  2019-10-29 17:01 ` [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
  2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  0 siblings, 2 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-29 17:01 UTC (permalink / raw)
  To: buildroot

New package to download and install i.MX Cortex-M4 firmware
for following SoCs:
* i.MX7D
* i.MX8M
* i.MX8MM
* i.MX8QXP

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
Tested-by: Julien Olivain <julien.olivain@nxp.com>
---
 DEVELOPERS                                    |  3 +
 board/freescale/common/imx/post-image.sh      | 14 ++++-
 package/freescale-imx/Config.in               |  8 +++
 .../freescale-imx/imx-m4-firmware/Config.in   | 11 ++++
 .../imx-m4-firmware/imx-m4-firmware.hash      |  7 +++
 .../imx-m4-firmware/imx-m4-firmware.mk        | 61 +++++++++++++++++++
 6 files changed, 103 insertions(+), 1 deletion(-)
 create mode 100644 package/freescale-imx/imx-m4-firmware/Config.in
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 6f6b768e0d..47404057b4 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -878,6 +878,9 @@ F:	package/tinydtls/
 F:	package/tinymembench/
 F:	package/whois/
 
+N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	package/freescale-imx/imx-m4-firmware/
+
 N:	Falco Hyfing <hyfinglists@gmail.com>
 F:	package/python-pymodbus/
 
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 19d8fffb63..f9851c2d3b 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -30,6 +30,18 @@ linux_image()
 	fi
 }
 
+#
+# m4_image prints all available M4 firmware file names for the genimage
+# configuration file
+#
+m4_image()
+{
+	if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
+		echo -n ", "
+		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
+	fi
+}
+
 genimage_type()
 {
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
@@ -75,7 +87,7 @@ uboot_image()
 
 main()
 {
-	local FILES="$(dtb_list) $(linux_image)"
+	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
 	local IMXOFFSET="$(imx_offset)"
 	local UBOOTBIN="$(uboot_image)"
 	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index f010aab87b..76694bc788 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
+config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	bool
+	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
+
 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"
 source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-m4-firmware/Config.in"
 source "package/freescale-imx/imx-m4fwloader/Config.in"
 source "package/freescale-imx/imx-parser/Config.in"
 source "package/freescale-imx/imx-uuc/Config.in"
diff --git a/package/freescale-imx/imx-m4-firmware/Config.in b/package/freescale-imx/imx-m4-firmware/Config.in
new file mode 100644
index 0000000000..2c318e5dfc
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/Config.in
@@ -0,0 +1,11 @@
+comment "imx-m4-firmware needs an i.MX platform with Cortex-M4"
+	depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+
+config BR2_PACKAGE_IMX_M4_FIRMWARE
+	bool "imx-m4-firmware"
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	help
+	  Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
new file mode 100644
index 0000000000..fdc2c23c9f
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
@@ -0,0 +1,7 @@
+# locally computed
+sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
+sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
+sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
+
+# no hash for license file as it is different for each package listed above
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
new file mode 100644
index 0000000000..435592afc0
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
@@ -0,0 +1,61 @@
+################################################################################
+#
+# imx-m4-firmware
+#
+################################################################################
+
+IMX_M4_FIRMWARE_SITE = $(FREESCALE_IMX_SITE)
+
+IMX_M4_FIRMWARE_LICENSE = NXP Semiconductor Software License Agreement
+IMX_M4_FIRMWARE_LICENSE_FILES = COPYING
+IMX_M4_FIRMWARE_REDISTRIBUTE = NO
+
+define IMX_M4_FIRMWARE_EXTRACT_CMDS
+	$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_FIRMWARE_DL_DIR)/$(IMX_M4_FIRMWARE_SOURCE))
+endef
+
+# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+IMX_M4_FIRMWARE_VERSION = 1.0.1
+IMX_M4_FIRMWARE_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8qx-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
+	cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
+	cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+IMX_M4_FIRMWARE_VERSION = 2.3.0
+IMX_M4_FIRMWARE_SOURCE = imx8mq-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8mm-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
+endef
+endif
+
+$(eval $(generic-package))
-- 
2.23.0

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

* [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-10-29 17:01 [Buildroot] [PATCH 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
@ 2019-10-29 17:01 ` Fabrice Goucem
  2019-10-29 18:09   ` Fabio Estevam
  2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  1 sibling, 1 reply; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-29 17:01 UTC (permalink / raw)
  To: buildroot

Add basic support for NXP's i.MX7 ULP EVK board:

https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 .gitlab-ci.yml                                |  1 +
 DEVELOPERS                                    |  2 +
 board/freescale/imx7ulpevk/readme.txt         | 65 +++++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig        | 28 ++++++++
 package/freescale-imx/Config.in               |  8 ++-
 .../imx-m4-firmware/imx-m4-firmware.hash      |  1 +
 .../imx-m4-firmware/imx-m4-firmware.mk        | 13 +++-
 7 files changed, 116 insertions(+), 2 deletions(-)
 create mode 100644 board/freescale/imx7ulpevk/readme.txt
 create mode 100644 configs/freescale_imx7ulpevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d71257a20..74ee5b732e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
 freescale_imx6qsabresd_defconfig: { extends: .defconfig }
 freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
 freescale_imx7dsabresd_defconfig: { extends: .defconfig }
+freescale_imx7ulpevk_defconfig: { extends: .defconfig }
 freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index 47404057b4..9735edd704 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -879,6 +879,8 @@ F:	package/tinymembench/
 F:	package/whois/
 
 N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	board/freescale/imx7ulpevk/
+F:	configs/freescale_imx7ulpevk_defconfig
 F:	package/freescale-imx/imx-m4-firmware/
 
 N:	Falco Hyfing <hyfinglists@gmail.com>
diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
new file mode 100644
index 0000000000..6d4ddd86d1
--- /dev/null
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -0,0 +1,65 @@
+****************************
+Freescale i.MX7ULP EVK board
+****************************
+
+This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7ULP EVK board:
+
+  make freescale_imx7ulpevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - boot.vfat
+  - imx7ulp-evkb.dtb
+  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+  - m4_imx7ulp_m4_demo.img
+  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+  - m4_imx7ulp_wireless_uart_bridge.img
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+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.
+
+Boot the i.MX7ULP EVK board
+===========================
+
+To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
+- insert the SD card in the micro SD slot of the board;
+- 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/docs/en/user-guide/IMX7ULPQSG.pdf
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
new file mode 100644
index 0000000000..243a5c66f1
--- /dev/null
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -0,0 +1,28 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_PACKAGE_IMX_M4_FIRMWARE=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 76694bc788..c4a22a2765 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
-	bool "imx7d/imx7ulp"
+	bool "imx7d"
+
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
+	bool "imx7ulp"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
@@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
 	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
+	default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
 	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
@@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
 	bool
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
index fdc2c23c9f..fdbf1ab608 100644
--- a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
@@ -1,5 +1,6 @@
 # locally computed
 sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
 sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
 sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
 sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
index 435592afc0..3726d5c436 100644
--- a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
@@ -16,7 +16,18 @@ endef
 
 # Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
 
-ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
+IMX_M4_FIRMWARE_VERSION = 2.6.0
+IMX_M4_FIRMWARE_SOURCE = imx7ulp-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+	cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
+	cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+	cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+	cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
 IMX_M4_FIRMWARE_VERSION = 1.0.1
 IMX_M4_FIRMWARE_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_FIRMWARE_VERSION).bin
 IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
-- 
2.23.0

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

* [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-10-29 17:01 ` [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-10-29 18:09   ` Fabio Estevam
  2019-10-30 13:43     ` Fabrice Goucem
  0 siblings, 1 reply; 21+ messages in thread
From: Fabio Estevam @ 2019-10-29 18:09 UTC (permalink / raw)
  To: buildroot

Hi Fabrice,

On Tue, Oct 29, 2019 at 2:01 PM Fabrice Goucem <fabrice.goucem@nxp.com> wrote:
>
> Add basic support for NXP's i.MX7 ULP EVK board:
>
> https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> ---
>  .gitlab-ci.yml                                |  1 +
>  DEVELOPERS                                    |  2 +
>  board/freescale/imx7ulpevk/readme.txt         | 65 +++++++++++++++++++
>  configs/freescale_imx7ulpevk_defconfig        | 28 ++++++++
>  package/freescale-imx/Config.in               |  8 ++-
>  .../imx-m4-firmware/imx-m4-firmware.hash      |  1 +
>  .../imx-m4-firmware/imx-m4-firmware.mk        | 13 +++-

The M4 firmware changes should not be part of this patch.

> +Boot the i.MX7ULP EVK board
> +===========================
> +
> +To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
> +- insert the SD card in the micro SD slot of the board;
> +- put a micro USB cable into the Debug USB Port and connect using a terminal
> +  emulator at 115200 bps, 8n1;
> +- power on the board.

You should include some instructions to tell the user how to flash the
QSPI flash with the M4 SDK binary.

Thanks

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

* [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package
  2019-10-29 17:01 [Buildroot] [PATCH 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2019-10-29 17:01 ` [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-10-30 13:40 ` Fabrice Goucem
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 2/3] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
                     ` (2 more replies)
  1 sibling, 3 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-30 13:40 UTC (permalink / raw)
  To: buildroot

New package to download and install i.MX Cortex-M4 firmware
for following SoCs:
* i.MX7D
* i.MX8M
* i.MX8MM
* i.MX8QXP

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
Tested-by: Julien Olivain <julien.olivain@nxp.com>
---
 DEVELOPERS                                    |  3 +
 board/freescale/common/imx/post-image.sh      | 14 ++++-
 package/freescale-imx/Config.in               |  8 +++
 .../freescale-imx/imx-m4-firmware/Config.in   | 11 ++++
 .../imx-m4-firmware/imx-m4-firmware.hash      |  7 +++
 .../imx-m4-firmware/imx-m4-firmware.mk        | 61 +++++++++++++++++++
 6 files changed, 103 insertions(+), 1 deletion(-)
 create mode 100644 package/freescale-imx/imx-m4-firmware/Config.in
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index cdd44be37c..81e144ead5 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -878,6 +878,9 @@ F:	package/tinydtls/
 F:	package/tinymembench/
 F:	package/whois/
 
+N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	package/freescale-imx/imx-m4-firmware/
+
 N:	Falco Hyfing <hyfinglists@gmail.com>
 F:	package/python-pymodbus/
 
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 19d8fffb63..f9851c2d3b 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -30,6 +30,18 @@ linux_image()
 	fi
 }
 
+#
+# m4_image prints all available M4 firmware file names for the genimage
+# configuration file
+#
+m4_image()
+{
+	if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
+		echo -n ", "
+		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
+	fi
+}
+
 genimage_type()
 {
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
@@ -75,7 +87,7 @@ uboot_image()
 
 main()
 {
-	local FILES="$(dtb_list) $(linux_image)"
+	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
 	local IMXOFFSET="$(imx_offset)"
 	local UBOOTBIN="$(uboot_image)"
 	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index f010aab87b..76694bc788 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
+config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	bool
+	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
+
 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"
 source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-m4-firmware/Config.in"
 source "package/freescale-imx/imx-m4fwloader/Config.in"
 source "package/freescale-imx/imx-parser/Config.in"
 source "package/freescale-imx/imx-uuc/Config.in"
diff --git a/package/freescale-imx/imx-m4-firmware/Config.in b/package/freescale-imx/imx-m4-firmware/Config.in
new file mode 100644
index 0000000000..2c318e5dfc
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/Config.in
@@ -0,0 +1,11 @@
+comment "imx-m4-firmware needs an i.MX platform with Cortex-M4"
+	depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+
+config BR2_PACKAGE_IMX_M4_FIRMWARE
+	bool "imx-m4-firmware"
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	help
+	  Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
new file mode 100644
index 0000000000..fdc2c23c9f
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
@@ -0,0 +1,7 @@
+# locally computed
+sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
+sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
+sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
+
+# no hash for license file as it is different for each package listed above
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
new file mode 100644
index 0000000000..435592afc0
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
@@ -0,0 +1,61 @@
+################################################################################
+#
+# imx-m4-firmware
+#
+################################################################################
+
+IMX_M4_FIRMWARE_SITE = $(FREESCALE_IMX_SITE)
+
+IMX_M4_FIRMWARE_LICENSE = NXP Semiconductor Software License Agreement
+IMX_M4_FIRMWARE_LICENSE_FILES = COPYING
+IMX_M4_FIRMWARE_REDISTRIBUTE = NO
+
+define IMX_M4_FIRMWARE_EXTRACT_CMDS
+	$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_FIRMWARE_DL_DIR)/$(IMX_M4_FIRMWARE_SOURCE))
+endef
+
+# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+IMX_M4_FIRMWARE_VERSION = 1.0.1
+IMX_M4_FIRMWARE_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8qx-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
+	cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
+	cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+IMX_M4_FIRMWARE_VERSION = 2.3.0
+IMX_M4_FIRMWARE_SOURCE = imx8mq-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8mm-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
+endef
+endif
+
+$(eval $(generic-package))
-- 
2.23.0

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

* [Buildroot] [PATCH v2 2/3] configs/freescale_imx7ulpevk: new defconfig
  2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
@ 2019-10-30 13:40   ` Fabrice Goucem
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP Fabrice Goucem
  2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2 siblings, 0 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-30 13:40 UTC (permalink / raw)
  To: buildroot

Add basic support for NXP's i.MX7 ULP EVK board:

https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 .gitlab-ci.yml                         |  1 +
 DEVELOPERS                             |  2 +
 board/freescale/imx7ulpevk/readme.txt  | 60 ++++++++++++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig | 27 ++++++++++++
 4 files changed, 90 insertions(+)
 create mode 100644 board/freescale/imx7ulpevk/readme.txt
 create mode 100644 configs/freescale_imx7ulpevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d71257a20..74ee5b732e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
 freescale_imx6qsabresd_defconfig: { extends: .defconfig }
 freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
 freescale_imx7dsabresd_defconfig: { extends: .defconfig }
+freescale_imx7ulpevk_defconfig: { extends: .defconfig }
 freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index 81e144ead5..c7f41ecf6f 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -879,6 +879,8 @@ F:	package/tinymembench/
 F:	package/whois/
 
 N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	board/freescale/imx7ulpevk/
+F:	configs/freescale_imx7ulpevk_defconfig
 F:	package/freescale-imx/imx-m4-firmware/
 
 N:	Falco Hyfing <hyfinglists@gmail.com>
diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
new file mode 100644
index 0000000000..c7a2120f13
--- /dev/null
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -0,0 +1,60 @@
+****************************
+Freescale i.MX7ULP EVK board
+****************************
+
+This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7ULP EVK board:
+
+  make freescale_imx7ulpevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - boot.vfat
+  - imx7ulp-evkb.dtb
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+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.
+
+Boot the i.MX7ULP EVK board
+===========================
+
+To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
+- insert the SD card in the micro SD slot of the board;
+- 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/docs/en/user-guide/IMX7ULPQSG.pdf
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
new file mode 100644
index 0000000000..441ececa47
--- /dev/null
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -0,0 +1,27 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
-- 
2.23.0

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

* [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP
  2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 2/3] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-10-30 13:40   ` Fabrice Goucem
  2019-10-31 22:52     ` Fabio Estevam
  2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2 siblings, 1 reply; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-30 13:40 UTC (permalink / raw)
  To: buildroot

Create new flag BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP to
differentiate i.MX7ULP from i.MX7D which has different Cortex-M4
firmware.

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>

---
Changes v1 -> v2:
  - Split i.MX7ULP support into two commits:
	new defconfig and m4 support (suggested by Fabio Estevam)

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 board/freescale/imx7ulpevk/readme.txt            | 16 ++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig           |  1 +
 package/freescale-imx/Config.in                  |  8 +++++++-
 .../imx-m4-firmware/imx-m4-firmware.hash         |  1 +
 .../imx-m4-firmware/imx-m4-firmware.mk           | 13 ++++++++++++-
 5 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
index c7a2120f13..a2aa68b46f 100644
--- a/board/freescale/imx7ulpevk/readme.txt
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -18,6 +18,11 @@ Build all components:
 You will find in output/images/ the following files:
   - boot.vfat
   - imx7ulp-evkb.dtb
+  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+  - m4_imx7ulp_m4_demo.img
+  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+  - m4_imx7ulp_wireless_uart_bridge.img
   - rootfs.ext2
   - rootfs.ext4
   - rootfs.tar
@@ -44,6 +49,17 @@ command as root:
 For details about the medium image layout, see the definition in
 board/freescale/common/imx/genimage.cfg.template.
 
+Flash QSPI with Cortex-M4 firmware
+==================================
+
+Cortex-M4 firmware can be flashed onto QSPI NOR memory.
+To do so, stop at u-boot prompt and run the following commands:
+
+  sf probe
+  sf erase 0 30000
+  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
+  sf write 62000000 0 30000
+
 Boot the i.MX7ULP EVK board
 ===========================
 
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
index 441ececa47..243a5c66f1 100644
--- a/configs/freescale_imx7ulpevk_defconfig
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -12,6 +12,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
 BR2_PACKAGE_FREESCALE_IMX=y
 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_PACKAGE_IMX_M4_FIRMWARE=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_UBOOT=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 76694bc788..c4a22a2765 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
-	bool "imx7d/imx7ulp"
+	bool "imx7d"
+
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
+	bool "imx7ulp"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
@@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
 	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
+	default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
 	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
@@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
 	bool
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
index fdc2c23c9f..fdbf1ab608 100644
--- a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
@@ -1,5 +1,6 @@
 # locally computed
 sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
 sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
 sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
 sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
index 435592afc0..3726d5c436 100644
--- a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
@@ -16,7 +16,18 @@ endef
 
 # Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
 
-ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
+IMX_M4_FIRMWARE_VERSION = 2.6.0
+IMX_M4_FIRMWARE_SOURCE = imx7ulp-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+	cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
+	cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+	cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+	cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
 IMX_M4_FIRMWARE_VERSION = 1.0.1
 IMX_M4_FIRMWARE_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_FIRMWARE_VERSION).bin
 IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
-- 
2.23.0

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

* [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-10-29 18:09   ` Fabio Estevam
@ 2019-10-30 13:43     ` Fabrice Goucem
  0 siblings, 0 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-10-30 13:43 UTC (permalink / raw)
  To: buildroot

On Tue, 2019-10-29 at 15:09 -0300, Fabio Estevam wrote:
> >  .gitlab-ci.yml                                |  1 +
> >  DEVELOPERS                                    |  2 +
> >  board/freescale/imx7ulpevk/readme.txt         | 65
> > +++++++++++++++++++
> >  configs/freescale_imx7ulpevk_defconfig        | 28 ++++++++
> >  package/freescale-imx/Config.in               |  8 ++-
> >  .../imx-m4-firmware/imx-m4-firmware.hash      |  1 +
> >  .../imx-m4-firmware/imx-m4-firmware.mk        | 13 +++-
> 
> The M4 firmware changes should not be part of this patch.
> 
> > +Boot the i.MX7ULP EVK board
> > +===========================
> > +
> > +To boot your newly created system (refer to the i.MX 7ULP EVK
> > Quick Start Guide [1] for guidance):
> > +- insert the SD card in the micro SD slot of the board;
> > +- put a micro USB cable into the Debug USB Port and connect using
> > a terminal
> > +  emulator at 115200 bps, 8n1;
> > +- power on the board.
> 
> You should include some instructions to tell the user how to flash
> the
> QSPI flash with the M4 SDK binary.

Thanks for your review Fabio.
I've followed your comments and resubmitted the series of patches.

Fabrice

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

* [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP Fabrice Goucem
@ 2019-10-31 22:52     ` Fabio Estevam
  0 siblings, 0 replies; 21+ messages in thread
From: Fabio Estevam @ 2019-10-31 22:52 UTC (permalink / raw)
  To: buildroot

Hi Fabrice,

On Wed, Oct 30, 2019 at 10:40 AM Fabrice Goucem <fabrice.goucem@nxp.com> wrote:
>
> Create new flag BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP to
> differentiate i.MX7ULP from i.MX7D which has different Cortex-M4
> firmware.
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
>
> ---
> Changes v1 -> v2:
>   - Split i.MX7ULP support into two commits:
>         new defconfig and m4 support (suggested by Fabio Estevam)
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> ---
>  board/freescale/imx7ulpevk/readme.txt            | 16 ++++++++++++++++
>  configs/freescale_imx7ulpevk_defconfig           |  1 +
>  package/freescale-imx/Config.in                  |  8 +++++++-
>  .../imx-m4-firmware/imx-m4-firmware.hash         |  1 +
>  .../imx-m4-firmware/imx-m4-firmware.mk           | 13 ++++++++++++-

This is still touching imx-m4-firmware package and imx7ulp-evk files
in the same patch.

It is preferred not to touch them in the same patch.

The patch that adds imx7ulp-evk support can be the last of the series
and contain the complete readme.txt and defconfig options.

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

* [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package
  2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 2/3] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
  2019-10-30 13:40   ` [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP Fabrice Goucem
@ 2019-11-05 12:03   ` Fabrice Goucem
  2019-11-05 12:03     ` [Buildroot] [PATCH v3 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
                       ` (2 more replies)
  2 siblings, 3 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-05 12:03 UTC (permalink / raw)
  To: buildroot

New package to download and install i.MX Cortex-M4 firmware
for following SoCs:
* i.MX7D
* i.MX7ULP
* i.MX8M
* i.MX8MM
* i.MX8QXP

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
Tested-by: Julien Olivain <julien.olivain@nxp.com>
---
 DEVELOPERS                                    |  3 +
 board/freescale/common/imx/post-image.sh      | 14 +++-
 package/freescale-imx/Config.in               |  8 +++
 .../freescale-imx/imx-m4-firmware/Config.in   | 11 +++
 .../imx-m4-firmware/imx-m4-firmware.hash      |  8 +++
 .../imx-m4-firmware/imx-m4-firmware.mk        | 72 +++++++++++++++++++
 6 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 package/freescale-imx/imx-m4-firmware/Config.in
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
 create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 24c57b25f7..93f395ed69 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -874,6 +874,9 @@ F:	package/tinydtls/
 F:	package/tinymembench/
 F:	package/whois/
 
+N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	package/freescale-imx/imx-m4-firmware/
+
 N:	Falco Hyfing <hyfinglists@gmail.com>
 F:	package/python-pymodbus/
 
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 19d8fffb63..f9851c2d3b 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -30,6 +30,18 @@ linux_image()
 	fi
 }
 
+#
+# m4_image prints all available M4 firmware file names for the genimage
+# configuration file
+#
+m4_image()
+{
+	if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
+		echo -n ", "
+		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
+	fi
+}
+
 genimage_type()
 {
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
@@ -75,7 +87,7 @@ uboot_image()
 
 main()
 {
-	local FILES="$(dtb_list) $(linux_image)"
+	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
 	local IMXOFFSET="$(imx_offset)"
 	local UBOOTBIN="$(uboot_image)"
 	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index f010aab87b..76694bc788 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
+config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	bool
+	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
+
 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"
 source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-m4-firmware/Config.in"
 source "package/freescale-imx/imx-m4fwloader/Config.in"
 source "package/freescale-imx/imx-parser/Config.in"
 source "package/freescale-imx/imx-uuc/Config.in"
diff --git a/package/freescale-imx/imx-m4-firmware/Config.in b/package/freescale-imx/imx-m4-firmware/Config.in
new file mode 100644
index 0000000000..2c318e5dfc
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/Config.in
@@ -0,0 +1,11 @@
+comment "imx-m4-firmware needs an i.MX platform with Cortex-M4"
+	depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+
+config BR2_PACKAGE_IMX_M4_FIRMWARE
+	bool "imx-m4-firmware"
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	help
+	  Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
new file mode 100644
index 0000000000..fdbf1ab608
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
@@ -0,0 +1,8 @@
+# locally computed
+sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
+sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
+sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
+sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
+
+# no hash for license file as it is different for each package listed above
diff --git a/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
new file mode 100644
index 0000000000..3726d5c436
--- /dev/null
+++ b/package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
@@ -0,0 +1,72 @@
+################################################################################
+#
+# imx-m4-firmware
+#
+################################################################################
+
+IMX_M4_FIRMWARE_SITE = $(FREESCALE_IMX_SITE)
+
+IMX_M4_FIRMWARE_LICENSE = NXP Semiconductor Software License Agreement
+IMX_M4_FIRMWARE_LICENSE_FILES = COPYING
+IMX_M4_FIRMWARE_REDISTRIBUTE = NO
+
+define IMX_M4_FIRMWARE_EXTRACT_CMDS
+	$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_FIRMWARE_DL_DIR)/$(IMX_M4_FIRMWARE_SOURCE))
+endef
+
+# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
+IMX_M4_FIRMWARE_VERSION = 2.6.0
+IMX_M4_FIRMWARE_SOURCE = imx7ulp-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+	cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
+	cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+	cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+	cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+IMX_M4_FIRMWARE_VERSION = 1.0.1
+IMX_M4_FIRMWARE_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8qx-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
+	cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
+	cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+IMX_M4_FIRMWARE_VERSION = 2.3.0
+IMX_M4_FIRMWARE_SOURCE = imx8mq-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
+IMX_M4_FIRMWARE_VERSION = 2.5.0
+IMX_M4_FIRMWARE_SOURCE = imx8mm-m4-demo-$(IMX_M4_FIRMWARE_VERSION).bin
+IMX_M4_FIRMWARE_INSTALL_IMAGES = YES
+define IMX_M4_FIRMWARE_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
+endef
+endif
+
+$(eval $(generic-package))
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v3 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
@ 2019-11-05 12:03     ` Fabrice Goucem
  2019-11-06 17:23     ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Gary Bisson
  2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
  2 siblings, 0 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-05 12:03 UTC (permalink / raw)
  To: buildroot

Add basic support for NXP's i.MX7 ULP EVK board:

https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>

---
Changes v2 -> v3:
  - Resplit so that imx7ulp commit does not touch file from
    imx-m4-firmware package (suggested by Fabio Estevam)

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 .gitlab-ci.yml                         |  1 +
 DEVELOPERS                             |  2 +
 board/freescale/imx7ulpevk/readme.txt  | 76 ++++++++++++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig | 28 ++++++++++
 package/freescale-imx/Config.in        |  8 ++-
 5 files changed, 114 insertions(+), 1 deletion(-)
 create mode 100644 board/freescale/imx7ulpevk/readme.txt
 create mode 100644 configs/freescale_imx7ulpevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d71257a20..74ee5b732e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
 freescale_imx6qsabresd_defconfig: { extends: .defconfig }
 freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
 freescale_imx7dsabresd_defconfig: { extends: .defconfig }
+freescale_imx7ulpevk_defconfig: { extends: .defconfig }
 freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index 93f395ed69..4de86d0a36 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -875,6 +875,8 @@ F:	package/tinymembench/
 F:	package/whois/
 
 N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	board/freescale/imx7ulpevk/
+F:	configs/freescale_imx7ulpevk_defconfig
 F:	package/freescale-imx/imx-m4-firmware/
 
 N:	Falco Hyfing <hyfinglists@gmail.com>
diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
new file mode 100644
index 0000000000..a2aa68b46f
--- /dev/null
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -0,0 +1,76 @@
+****************************
+Freescale i.MX7ULP EVK board
+****************************
+
+This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7ULP EVK board:
+
+  make freescale_imx7ulpevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - boot.vfat
+  - imx7ulp-evkb.dtb
+  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+  - m4_imx7ulp_m4_demo.img
+  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+  - m4_imx7ulp_wireless_uart_bridge.img
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+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.
+
+Flash QSPI with Cortex-M4 firmware
+==================================
+
+Cortex-M4 firmware can be flashed onto QSPI NOR memory.
+To do so, stop at u-boot prompt and run the following commands:
+
+  sf probe
+  sf erase 0 30000
+  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
+  sf write 62000000 0 30000
+
+Boot the i.MX7ULP EVK board
+===========================
+
+To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
+- insert the SD card in the micro SD slot of the board;
+- 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/docs/en/user-guide/IMX7ULPQSG.pdf
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
new file mode 100644
index 0000000000..243a5c66f1
--- /dev/null
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -0,0 +1,28 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_PACKAGE_IMX_M4_FIRMWARE=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 76694bc788..c4a22a2765 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
-	bool "imx7d/imx7ulp"
+	bool "imx7d"
+
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
+	bool "imx7ulp"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
@@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
 	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
+	default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
 	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
@@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
 	bool
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package
  2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2019-11-05 12:03     ` [Buildroot] [PATCH v3 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-11-06 17:23     ` Gary Bisson
  2019-11-07  9:59       ` [Buildroot] [EXT] " Fabrice Goucem
  2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
  2 siblings, 1 reply; 21+ messages in thread
From: Gary Bisson @ 2019-11-06 17:23 UTC (permalink / raw)
  To: buildroot

Hi Fabrice,

On Tue, Nov 05, 2019 at 12:03:55PM +0000, Fabrice Goucem wrote:
> New package to download and install i.MX Cortex-M4 firmware
> for following SoCs:
> * i.MX7D
> * i.MX7ULP
> * i.MX8M
> * i.MX8MM
> * i.MX8QXP

Any reason why there's no i.MX6SX package?

> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> Tested-by: Julien Olivain <julien.olivain@nxp.com>
> ---
>  DEVELOPERS                                    |  3 +
>  board/freescale/common/imx/post-image.sh      | 14 +++-
>  package/freescale-imx/Config.in               |  8 +++
>  .../freescale-imx/imx-m4-firmware/Config.in   | 11 +++
>  .../imx-m4-firmware/imx-m4-firmware.hash      |  8 +++
>  .../imx-m4-firmware/imx-m4-firmware.mk        | 72 +++++++++++++++++++
>  6 files changed, 115 insertions(+), 1 deletion(-)
>  create mode 100644 package/freescale-imx/imx-m4-firmware/Config.in
>  create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.hash
>  create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-firmware.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 24c57b25f7..93f395ed69 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -874,6 +874,9 @@ F:	package/tinydtls/
>  F:	package/tinymembench/
>  F:	package/whois/
>  
> +N:	Fabrice Goucem <fabrice.goucem@nxp.com>
> +F:	package/freescale-imx/imx-m4-firmware/
> +
>  N:	Falco Hyfing <hyfinglists@gmail.com>
>  F:	package/python-pymodbus/
>  
> diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
> index 19d8fffb63..f9851c2d3b 100755
> --- a/board/freescale/common/imx/post-image.sh
> +++ b/board/freescale/common/imx/post-image.sh
> @@ -30,6 +30,18 @@ linux_image()
>  	fi
>  }
>  
> +#
> +# m4_image prints all available M4 firmware file names for the genimage
> +# configuration file
> +#
> +m4_image()
> +{
> +	if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
> +		echo -n ", "
> +		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
> +	fi
> +}
> +
>  genimage_type()
>  {
>  	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
> @@ -75,7 +87,7 @@ uboot_image()
>  
>  main()
>  {
> -	local FILES="$(dtb_list) $(linux_image)"
> +	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
>  	local IMXOFFSET="$(imx_offset)"
>  	local UBOOTBIN="$(uboot_image)"
>  	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index f010aab87b..76694bc788 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>  		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>  		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>  
> +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +	bool
> +	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
> +		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> +		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM

Same here.

Regards,
Gary

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

* [Buildroot] [EXT] Re: [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package
  2019-11-06 17:23     ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Gary Bisson
@ 2019-11-07  9:59       ` Fabrice Goucem
  0 siblings, 0 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-07  9:59 UTC (permalink / raw)
  To: buildroot

Hi Gary,

On Wed, 2019-11-06 at 18:23 +0100, Gary Bisson wrote:
> Caution: EXT Email
> 
> Hi Fabrice,
> 
> On Tue, Nov 05, 2019 at 12:03:55PM +0000, Fabrice Goucem wrote:
> > New package to download and install i.MX Cortex-M4 firmware
> > for following SoCs:
> > * i.MX7D
> > * i.MX7ULP
> > * i.MX8M
> > * i.MX8MM
> > * i.MX8QXP
> 
> Any reason why there's no i.MX6SX package?

Simply because I could not locate an M4 demo image from NXP servers.
I used the NXP Yocto recipes to locate the different M4 images and
i.MX6SX is not a SoC supported by these recipes.
Will gladly add an image if a reliable location is found.

> > Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> > Tested-by: Julien Olivain <julien.olivain@nxp.com>
> > ---
> >  DEVELOPERS                                    |  3 +
> >  board/freescale/common/imx/post-image.sh      | 14 +++-
> >  package/freescale-imx/Config.in               |  8 +++
> >  .../freescale-imx/imx-m4-firmware/Config.in   | 11 +++
> >  .../imx-m4-firmware/imx-m4-firmware.hash      |  8 +++
> >  .../imx-m4-firmware/imx-m4-firmware.mk        | 72
> > +++++++++++++++++++
> >  6 files changed, 115 insertions(+), 1 deletion(-)
> >  create mode 100644 package/freescale-imx/imx-m4-firmware/Config.in
> >  create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-
> > firmware.hash
> >  create mode 100644 package/freescale-imx/imx-m4-firmware/imx-m4-
> > firmware.mk
> > 
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 24c57b25f7..93f395ed69 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -874,6 +874,9 @@ F:        package/tinydtls/
> >  F:   package/tinymembench/
> >  F:   package/whois/
> > 
> > +N:   Fabrice Goucem <fabrice.goucem@nxp.com>
> > +F:   package/freescale-imx/imx-m4-firmware/
> > +
> >  N:   Falco Hyfing <hyfinglists@gmail.com>
> >  F:   package/python-pymodbus/
> > 
> > diff --git a/board/freescale/common/imx/post-image.sh
> > b/board/freescale/common/imx/post-image.sh
> > index 19d8fffb63..f9851c2d3b 100755
> > --- a/board/freescale/common/imx/post-image.sh
> > +++ b/board/freescale/common/imx/post-image.sh
> > @@ -30,6 +30,18 @@ linux_image()
> >       fi
> >  }
> > 
> > +#
> > +# m4_image prints all available M4 firmware file names for the
> > genimage
> > +# configuration file
> > +#
> > +m4_image()
> > +{
> > +     if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG};
> > then
> > +             echo -n ", "
> > +             for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n
> > "$(basename $f), "; done
> > +     fi
> > +}
> > +
> >  genimage_type()
> >  {
> >       if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$"
> > ${BR2_CONFIG}; then
> > @@ -75,7 +87,7 @@ uboot_image()
> > 
> >  main()
> >  {
> > -     local FILES="$(dtb_list) $(linux_image)"
> > +     local FILES="$(dtb_list) $(linux_image) $(m4_image)"
> >       local IMXOFFSET="$(imx_offset)"
> >       local UBOOTBIN="$(uboot_image)"
> >       local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> > diff --git a/package/freescale-imx/Config.in b/package/freescale-
> > imx/Config.in
> > index f010aab87b..76694bc788 100644
> > --- a/package/freescale-imx/Config.in
> > +++ b/package/freescale-imx/Config.in
> > @@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> >               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> >               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> > 
> > +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> > +     bool
> > +     default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> > +             BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
> > +             BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> > +             BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> 
> Same here.
> 
> Regards,
> Gary

Regards,

Fabrice

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

* [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package
  2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
  2019-11-05 12:03     ` [Buildroot] [PATCH v3 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
  2019-11-06 17:23     ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Gary Bisson
@ 2019-11-10 23:08     ` Fabrice Goucem
  2019-11-10 23:08       ` [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
                         ` (2 more replies)
  2 siblings, 3 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-10 23:08 UTC (permalink / raw)
  To: buildroot

New package to download and install i.MX Cortex-M4 demos
for following SoCs:
* i.MX7D
* i.MX7ULP
* i.MX8M
* i.MX8MM
* i.MX8QXP

Yocto recipes from where the demos location has been extracted:
https://source.codeaurora.org/external/imx/meta-fsl-bsp-release/tree/imx/meta-sdk/recipes-fsl/m4-demos?h=imx-morty&id=bfb1e26798775f161b14218ac6f1d50069bea8ed

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
Tested-by: Julien Olivain <julien.olivain@nxp.com>
---
 DEVELOPERS                                    |  3 +
 board/freescale/common/imx/post-image.sh      | 14 +++-
 package/freescale-imx/Config.in               |  8 +++
 package/freescale-imx/imx-m4-demos/Config.in  | 11 +++
 .../imx-m4-demos/imx-m4-demos.hash            |  8 +++
 .../imx-m4-demos/imx-m4-demos.mk              | 72 +++++++++++++++++++
 6 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 package/freescale-imx/imx-m4-demos/Config.in
 create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
 create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index c0863aabc6..194e5249d0 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -874,6 +874,9 @@ F:	package/tinydtls/
 F:	package/tinymembench/
 F:	package/whois/
 
+N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	package/freescale-imx/imx-m4-firmware/
+
 N:	Falco Hyfing <hyfinglists@gmail.com>
 F:	package/python-pymodbus/
 
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 19d8fffb63..f9851c2d3b 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -30,6 +30,18 @@ linux_image()
 	fi
 }
 
+#
+# m4_image prints all available M4 firmware file names for the genimage
+# configuration file
+#
+m4_image()
+{
+	if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
+		echo -n ", "
+		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
+	fi
+}
+
 genimage_type()
 {
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
@@ -75,7 +87,7 @@ uboot_image()
 
 main()
 {
-	local FILES="$(dtb_list) $(linux_image)"
+	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
 	local IMXOFFSET="$(imx_offset)"
 	local UBOOTBIN="$(uboot_image)"
 	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index f010aab87b..55cd53aa37 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
+config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	bool
+	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
+
 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"
 source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-m4-demos/Config.in"
 source "package/freescale-imx/imx-m4fwloader/Config.in"
 source "package/freescale-imx/imx-parser/Config.in"
 source "package/freescale-imx/imx-uuc/Config.in"
diff --git a/package/freescale-imx/imx-m4-demos/Config.in b/package/freescale-imx/imx-m4-demos/Config.in
new file mode 100644
index 0000000000..fc2312d410
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/Config.in
@@ -0,0 +1,11 @@
+comment "imx-m4-demos needs an i.MX platform with Cortex-M4"
+	depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+
+config BR2_PACKAGE_IMX_M4_DEMOS
+	bool "imx-m4-demos"
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	help
+	  Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
new file mode 100644
index 0000000000..fdbf1ab608
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
@@ -0,0 +1,8 @@
+# locally computed
+sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
+sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
+sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
+sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
+
+# no hash for license file as it is different for each package listed above
diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
new file mode 100644
index 0000000000..6d08dcc8f8
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
@@ -0,0 +1,72 @@
+################################################################################
+#
+# imx-m4-demos
+#
+################################################################################
+
+IMX_M4_DEMOS_SITE = $(FREESCALE_IMX_SITE)
+
+IMX_M4_DEMOS_LICENSE = NXP Semiconductor Software License Agreement
+IMX_M4_DEMOS_LICENSE_FILES = COPYING
+IMX_M4_DEMOS_REDISTRIBUTE = NO
+
+define IMX_M4_DEMOS_EXTRACT_CMDS
+	$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_DEMOS_DL_DIR)/$(IMX_M4_DEMOS_SOURCE))
+endef
+
+# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
+IMX_M4_DEMOS_VERSION = 2.6.0
+IMX_M4_DEMOS_SOURCE = imx7ulp-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+	cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
+	cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+	cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+	cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+IMX_M4_DEMOS_VERSION = 1.0.1
+IMX_M4_DEMOS_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
+IMX_M4_DEMOS_VERSION = 2.5.0
+IMX_M4_DEMOS_SOURCE = imx8qx-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
+	cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
+	cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+IMX_M4_DEMOS_VERSION = 2.3.0
+IMX_M4_DEMOS_SOURCE = imx8mq-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
+IMX_M4_DEMOS_VERSION = 2.5.0
+IMX_M4_DEMOS_SOURCE = imx8mm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
+endef
+endif
+
+$(eval $(generic-package))
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
@ 2019-11-10 23:08       ` Fabrice Goucem
  2019-11-11  8:53         ` Gilles Talis
  2019-11-11  8:50       ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
  2019-11-11 10:15       ` [Buildroot] [PATCH v5 " Fabrice Goucem
  2 siblings, 1 reply; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-10 23:08 UTC (permalink / raw)
  To: buildroot

Add basic support for NXP's i.MX7 ULP EVK board:

https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>

---
Changes v3 -> v4:
  - Renamed M4 package to imx-m4-demos (suggested by Gary Bisson)
  - Added link to m4-demos Yocto recipes in commit log (suggested by
    Gary Bisson)

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 .gitlab-ci.yml                         |  1 +
 DEVELOPERS                             |  2 +
 board/freescale/imx7ulpevk/readme.txt  | 76 ++++++++++++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig | 28 ++++++++++
 package/freescale-imx/Config.in        |  8 ++-
 5 files changed, 114 insertions(+), 1 deletion(-)
 create mode 100644 board/freescale/imx7ulpevk/readme.txt
 create mode 100644 configs/freescale_imx7ulpevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d71257a20..74ee5b732e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
 freescale_imx6qsabresd_defconfig: { extends: .defconfig }
 freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
 freescale_imx7dsabresd_defconfig: { extends: .defconfig }
+freescale_imx7ulpevk_defconfig: { extends: .defconfig }
 freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index 194e5249d0..2205a49000 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -875,6 +875,8 @@ F:	package/tinymembench/
 F:	package/whois/
 
 N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	board/freescale/imx7ulpevk/
+F:	configs/freescale_imx7ulpevk_defconfig
 F:	package/freescale-imx/imx-m4-firmware/
 
 N:	Falco Hyfing <hyfinglists@gmail.com>
diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
new file mode 100644
index 0000000000..a2aa68b46f
--- /dev/null
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -0,0 +1,76 @@
+****************************
+Freescale i.MX7ULP EVK board
+****************************
+
+This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7ULP EVK board:
+
+  make freescale_imx7ulpevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - boot.vfat
+  - imx7ulp-evkb.dtb
+  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+  - m4_imx7ulp_m4_demo.img
+  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+  - m4_imx7ulp_wireless_uart_bridge.img
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+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.
+
+Flash QSPI with Cortex-M4 firmware
+==================================
+
+Cortex-M4 firmware can be flashed onto QSPI NOR memory.
+To do so, stop at u-boot prompt and run the following commands:
+
+  sf probe
+  sf erase 0 30000
+  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
+  sf write 62000000 0 30000
+
+Boot the i.MX7ULP EVK board
+===========================
+
+To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
+- insert the SD card in the micro SD slot of the board;
+- 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/docs/en/user-guide/IMX7ULPQSG.pdf
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
new file mode 100644
index 0000000000..7998eb04ad
--- /dev/null
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -0,0 +1,28 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_PACKAGE_IMX_M4_DEMOS=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 55cd53aa37..639b789ebe 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
-	bool "imx7d/imx7ulp"
+	bool "imx7d"
+
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
+	bool "imx7ulp"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
@@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
 	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
+	default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
 	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
@@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
 	bool
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package
  2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
  2019-11-10 23:08       ` [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-11-11  8:50       ` Gilles Talis
  2019-11-11 10:09         ` [Buildroot] [EXT] " Fabrice Goucem
  2019-11-11 10:15       ` [Buildroot] [PATCH v5 " Fabrice Goucem
  2 siblings, 1 reply; 21+ messages in thread
From: Gilles Talis @ 2019-11-11  8:50 UTC (permalink / raw)
  To: buildroot

Hello Fabrice,

Le lun. 11 nov. 2019 ? 02:44, Fabrice Goucem <fabrice.goucem@nxp.com> a ?crit :
>
> New package to download and install i.MX Cortex-M4 demos
> for following SoCs:
> * i.MX7D
> * i.MX7ULP
> * i.MX8M
> * i.MX8MM
> * i.MX8QXP
>
> Yocto recipes from where the demos location has been extracted:
> https://source.codeaurora.org/external/imx/meta-fsl-bsp-release/tree/imx/meta-sdk/recipes-fsl/m4-demos?h=imx-morty&id=bfb1e26798775f161b14218ac6f1d50069bea8ed
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> Tested-by: Julien Olivain <julien.olivain@nxp.com>
> ---
>  DEVELOPERS                                    |  3 +
>  board/freescale/common/imx/post-image.sh      | 14 +++-
>  package/freescale-imx/Config.in               |  8 +++
>  package/freescale-imx/imx-m4-demos/Config.in  | 11 +++
>  .../imx-m4-demos/imx-m4-demos.hash            |  8 +++
>  .../imx-m4-demos/imx-m4-demos.mk              | 72 +++++++++++++++++++
>  6 files changed, 115 insertions(+), 1 deletion(-)
>  create mode 100644 package/freescale-imx/imx-m4-demos/Config.in
>  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
>  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index c0863aabc6..194e5249d0 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -874,6 +874,9 @@ F:  package/tinydtls/
>  F:     package/tinymembench/
>  F:     package/whois/
>
> +N:     Fabrice Goucem <fabrice.goucem@nxp.com>
> +F:     package/freescale-imx/imx-m4-firmware/
You need to change the package name here: imx-m4-firmware -> imx-m4-demos

> +
>  N:     Falco Hyfing <hyfinglists@gmail.com>
>  F:     package/python-pymodbus/
>
> diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
> index 19d8fffb63..f9851c2d3b 100755
> --- a/board/freescale/common/imx/post-image.sh
> +++ b/board/freescale/common/imx/post-image.sh
> @@ -30,6 +30,18 @@ linux_image()
>         fi
>  }
>
> +#
> +# m4_image prints all available M4 firmware file names for the genimage
> +# configuration file
> +#
> +m4_image()
> +{
> +       if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" ${BR2_CONFIG}; then
> +               echo -n ", "
> +               for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
> +       fi
> +}
> +
>  genimage_type()
>  {
>         if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
> @@ -75,7 +87,7 @@ uboot_image()
>
>  main()
>  {
> -       local FILES="$(dtb_list) $(linux_image)"
> +       local FILES="$(dtb_list) $(linux_image) $(m4_image)"
>         local IMXOFFSET="$(imx_offset)"
>         local UBOOTBIN="$(uboot_image)"
>         local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index f010aab87b..55cd53aa37 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>
> +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +       bool
> +       default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> +
>  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"
>  source "package/freescale-imx/imx-lib/Config.in"
> +source "package/freescale-imx/imx-m4-demos/Config.in"
>  source "package/freescale-imx/imx-m4fwloader/Config.in"
>  source "package/freescale-imx/imx-parser/Config.in"
>  source "package/freescale-imx/imx-uuc/Config.in"
> diff --git a/package/freescale-imx/imx-m4-demos/Config.in b/package/freescale-imx/imx-m4-demos/Config.in
> new file mode 100644
> index 0000000000..fc2312d410
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/Config.in
> @@ -0,0 +1,11 @@
> +comment "imx-m4-demos needs an i.MX platform with Cortex-M4"
> +       depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +
> +config BR2_PACKAGE_IMX_M4_DEMOS
> +       bool "imx-m4-demos"
> +       depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +       help
> +         Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
> +
> +         This library is provided by Freescale as-is and doesn't have
> +         an upstream.
> diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> new file mode 100644
> index 0000000000..fdbf1ab608
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> @@ -0,0 +1,8 @@
> +# locally computed
> +sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
> +sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
> +sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
> +sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
> +sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
> +
> +# no hash for license file as it is different for each package listed above
> diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> new file mode 100644
> index 0000000000..6d08dcc8f8
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> @@ -0,0 +1,72 @@
> +################################################################################
> +#
> +# imx-m4-demos
> +#
> +################################################################################
> +
> +IMX_M4_DEMOS_SITE = $(FREESCALE_IMX_SITE)
> +
> +IMX_M4_DEMOS_LICENSE = NXP Semiconductor Software License Agreement
> +IMX_M4_DEMOS_LICENSE_FILES = COPYING
> +IMX_M4_DEMOS_REDISTRIBUTE = NO
> +
> +define IMX_M4_DEMOS_EXTRACT_CMDS
> +       $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_DEMOS_DL_DIR)/$(IMX_M4_DEMOS_SOURCE))
> +endef
> +
> +# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
> +
> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
> +IMX_M4_DEMOS_VERSION = 2.6.0
> +IMX_M4_DEMOS_SOURCE = imx7ulp-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
> +       cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
> +       cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
> +       cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
> +       cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
> +IMX_M4_DEMOS_VERSION = 1.0.1
> +IMX_M4_DEMOS_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
> +       cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
> +       cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
> +IMX_M4_DEMOS_VERSION = 2.5.0
> +IMX_M4_DEMOS_SOURCE = imx8qx-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
> +       cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
> +       cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +       cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
> +IMX_M4_DEMOS_VERSION = 2.3.0
> +IMX_M4_DEMOS_SOURCE = imx8mq-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
> +IMX_M4_DEMOS_VERSION = 2.5.0
> +IMX_M4_DEMOS_SOURCE = imx8mm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +       cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
> +endef
> +endif
> +
> +$(eval $(generic-package))
Other than that, the rest is OK with me.

thanks
Gilles.

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

* [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-11-10 23:08       ` [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-11-11  8:53         ` Gilles Talis
  0 siblings, 0 replies; 21+ messages in thread
From: Gilles Talis @ 2019-11-11  8:53 UTC (permalink / raw)
  To: buildroot

Hello Fabrice,

Le lun. 11 nov. 2019 ? 02:42, Fabrice Goucem <fabrice.goucem@nxp.com> a ?crit :
>
> Add basic support for NXP's i.MX7 ULP EVK board:
>
> https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
>
> ---
> Changes v3 -> v4:
>   - Renamed M4 package to imx-m4-demos (suggested by Gary Bisson)
>   - Added link to m4-demos Yocto recipes in commit log (suggested by
>     Gary Bisson)
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> ---
>  .gitlab-ci.yml                         |  1 +
>  DEVELOPERS                             |  2 +
>  board/freescale/imx7ulpevk/readme.txt  | 76 ++++++++++++++++++++++++++
>  configs/freescale_imx7ulpevk_defconfig | 28 ++++++++++
>  package/freescale-imx/Config.in        |  8 ++-
>  5 files changed, 114 insertions(+), 1 deletion(-)
>  create mode 100644 board/freescale/imx7ulpevk/readme.txt
>  create mode 100644 configs/freescale_imx7ulpevk_defconfig
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d71257a20..74ee5b732e 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
>  freescale_imx6qsabresd_defconfig: { extends: .defconfig }
>  freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
>  freescale_imx7dsabresd_defconfig: { extends: .defconfig }
> +freescale_imx7ulpevk_defconfig: { extends: .defconfig }
>  freescale_imx8mmevk_defconfig: { extends: .defconfig }
>  freescale_imx8mqevk_defconfig: { extends: .defconfig }
>  freescale_imx8qxpmek_defconfig: { extends: .defconfig }
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 194e5249d0..2205a49000 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -875,6 +875,8 @@ F:  package/tinymembench/
>  F:     package/whois/
>
>  N:     Fabrice Goucem <fabrice.goucem@nxp.com>
> +F:     board/freescale/imx7ulpevk/
> +F:     configs/freescale_imx7ulpevk_defconfig
>  F:     package/freescale-imx/imx-m4-firmware/
>
>  N:     Falco Hyfing <hyfinglists@gmail.com>
> diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
> new file mode 100644
> index 0000000000..a2aa68b46f
> --- /dev/null
> +++ b/board/freescale/imx7ulpevk/readme.txt
> @@ -0,0 +1,76 @@
> +****************************
> +Freescale i.MX7ULP EVK board
> +****************************
> +
> +This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
> +
> +Build
> +=====
> +
> +First, configure Buildroot for your i.MX7ULP EVK board:
> +
> +  make freescale_imx7ulpevk_defconfig
> +
> +Build all components:
> +
> +  make
> +
> +You will find in output/images/ the following files:
> +  - boot.vfat
> +  - imx7ulp-evkb.dtb
> +  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
> +  - m4_imx7ulp_m4_demo.img
> +  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
> +  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
> +  - m4_imx7ulp_wireless_uart_bridge.img
> +  - rootfs.ext2
> +  - rootfs.ext4
> +  - rootfs.tar
> +  - sdcard.img
> +  - u-boot.imx
> +  - zImage
> +
> +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.
> +
> +Flash QSPI with Cortex-M4 firmware
firmware -> demos

> +==================================
> +
> +Cortex-M4 firmware can be flashed onto QSPI NOR memory.
firmware -> demos

> +To do so, stop at u-boot prompt and run the following commands:
> +
> +  sf probe
> +  sf erase 0 30000
> +  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
> +  sf write 62000000 0 30000
> +
> +Boot the i.MX7ULP EVK board
> +===========================
> +
> +To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
> +- insert the SD card in the micro SD slot of the board;
> +- 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/docs/en/user-guide/IMX7ULPQSG.pdf
> diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
> new file mode 100644
> index 0000000000..7998eb04ad
> --- /dev/null
> +++ b/configs/freescale_imx7ulpevk_defconfig
> @@ -0,0 +1,28 @@
> +BR2_arm=y
> +BR2_cortex_a7=y
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
> +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
> +BR2_PACKAGE_FREESCALE_IMX=y
> +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
> +BR2_PACKAGE_IMX_M4_DEMOS=y
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
> +BR2_TARGET_UBOOT_CUSTOM_GIT=y
> +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
> +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> +# BR2_TARGET_UBOOT_FORMAT_BIN is not set
> +BR2_TARGET_UBOOT_FORMAT_IMX=y
> +BR2_PACKAGE_HOST_DOSFSTOOLS=y
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_MTOOLS=y
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 55cd53aa37..639b789ebe 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>         bool "imx6ul/imx6ull"
>
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> -       bool "imx7d/imx7ulp"
> +       bool "imx7d"
> +
> +config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
> +       bool "imx7ulp"
>
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>         bool "imx8m"
> @@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
>         default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>         default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>         default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> +       default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
>         default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>
>  config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> @@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>
>  config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
>         bool
>         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> --
> 2.24.0.rc1
The rest is OK with me.

thanks
Gilles.

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

* [Buildroot] [EXT] Re: [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package
  2019-11-11  8:50       ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
@ 2019-11-11 10:09         ` Fabrice Goucem
  0 siblings, 0 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-11 10:09 UTC (permalink / raw)
  To: buildroot

Hello Gilles,

Thanks for the review.

On Mon, 2019-11-11 at 09:50 +0100, Gilles Talis wrote:

> Hello Fabrice,
> 
> Le lun. 11 nov. 2019 ? 02:44, Fabrice Goucem <fabrice.goucem@nxp.com>
> a ?crit :
> > New package to download and install i.MX Cortex-M4 demos
> > for following SoCs:
> > * i.MX7D
> > * i.MX7ULP
> > * i.MX8M
> > * i.MX8MM
> > * i.MX8QXP
> > 
> > Yocto recipes from where the demos location has been extracted:
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource.codeaurora.org%2Fexternal%2Fimx%2Fmeta-fsl-bsp-release%2Ftree%2Fimx%2Fmeta-sdk%2Frecipes-fsl%2Fm4-demos%3Fh%3Dimx-morty%26id%3Dbfb1e26798775f161b14218ac6f1d50069bea8ed&amp;data=02%7C01%7Cfabrice.goucem%40nxp.com%7Cc21a49595bba4a98f54e08d7668440b0%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637090590525363574&amp;sdata=Y8DTYqGNj6tjGOMShOhjmcSUvquwygc2SWik1JLvf1c%3D&amp;reserved=0
> > 
> > Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> > Tested-by: Julien Olivain <julien.olivain@nxp.com>
> > ---
> >  DEVELOPERS                                    |  3 +
> >  board/freescale/common/imx/post-image.sh      | 14 +++-
> >  package/freescale-imx/Config.in               |  8 +++
> >  package/freescale-imx/imx-m4-demos/Config.in  | 11 +++
> >  .../imx-m4-demos/imx-m4-demos.hash            |  8 +++
> >  .../imx-m4-demos/imx-m4-demos.mk              | 72
> > +++++++++++++++++++
> >  6 files changed, 115 insertions(+), 1 deletion(-)
> >  create mode 100644 package/freescale-imx/imx-m4-demos/Config.in
> >  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-
> > demos.hash
> >  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-
> > demos.mk
> > 
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index c0863aabc6..194e5249d0 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -874,6 +874,9 @@ F:  package/tinydtls/
> >  F:     package/tinymembench/
> >  F:     package/whois/
> > 
> > +N:     Fabrice Goucem <fabrice.goucem@nxp.com>
> > +F:     package/freescale-imx/imx-m4-firmware/
> You need to change the package name here: imx-m4-firmware -> imx-m4-
> demos

Thanks for spotting that one.

> 
> > +
> >  N:     Falco Hyfing <hyfinglists@gmail.com>
> >  F:     package/python-pymodbus/
> > 
> > diff --git a/board/freescale/common/imx/post-image.sh
> > b/board/freescale/common/imx/post-image.sh
> > index 19d8fffb63..f9851c2d3b 100755
> > --- a/board/freescale/common/imx/post-image.sh
> > +++ b/board/freescale/common/imx/post-image.sh
> > @@ -30,6 +30,18 @@ linux_image()
> >         fi
> >  }
> > 
> > +#
> > +# m4_image prints all available M4 firmware file names for the
> > genimage
> > +# configuration file
> > +#
> > +m4_image()
> > +{
> > +       if grep -Eq "^BR2_PACKAGE_IMX_M4_FIRMWARE=y$" 

There's this as well, which I'm fixing in v5.

> > ${BR2_CONFIG}; then
> > +               echo -n ", "
> > +               for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n
> > "$(basename $f), "; done
> > +       fi
> > +}
> > +
> >  genimage_type()
> >  {
> >         if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$"
> > ${BR2_CONFIG}; then
> > @@ -75,7 +87,7 @@ uboot_image()
> > 
> >  main()
> >  {
> > -       local FILES="$(dtb_list) $(linux_image)"
> > +       local FILES="$(dtb_list) $(linux_image) $(m4_image)"
> >         local IMXOFFSET="$(imx_offset)"
> >         local UBOOTBIN="$(uboot_image)"
> >         local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> > diff --git a/package/freescale-imx/Config.in b/package/freescale-
> > imx/Config.in
> > index f010aab87b..55cd53aa37 100644
> > --- a/package/freescale-imx/Config.in
> > +++ b/package/freescale-imx/Config.in
> > @@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> >                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> >                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> > 
> > +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> > +       bool
> > +       default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> > +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
> > +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> > +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> > +
> >  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"
> >  source "package/freescale-imx/imx-lib/Config.in"
> > +source "package/freescale-imx/imx-m4-demos/Config.in"
> >  source "package/freescale-imx/imx-m4fwloader/Config.in"
> >  source "package/freescale-imx/imx-parser/Config.in"
> >  source "package/freescale-imx/imx-uuc/Config.in"
> > diff --git a/package/freescale-imx/imx-m4-demos/Config.in
> > b/package/freescale-imx/imx-m4-demos/Config.in
> > new file mode 100644
> > index 0000000000..fc2312d410
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-m4-demos/Config.in
> > @@ -0,0 +1,11 @@
> > +comment "imx-m4-demos needs an i.MX platform with Cortex-M4"
> > +       depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> > +
> > +config BR2_PACKAGE_IMX_M4_DEMOS
> > +       bool "imx-m4-demos"
> > +       depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> > +       help
> > +         Cortex-M4 firmware blobs for the Freescale i.MX SoCs.
> > +
> > +         This library is provided by Freescale as-is and doesn't
> > have
> > +         an upstream.
> > diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> > b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> > new file mode 100644
> > index 0000000000..fdbf1ab608
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> > @@ -0,0 +1,8 @@
> > +# locally computed
> > +sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22
> > f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
> > +sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d8
> > 41e681  imx7ulp-m4-demo-2.6.0.bin
> > +sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c
> > 5c12c3  imx8mm-m4-demo-2.5.0.bin
> > +sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394
> > bb7ad8  imx8mq-m4-demo-2.3.0.bin
> > +sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf
> > 66eb6c  imx8qx-m4-demo-2.5.0.bin
> > +
> > +# no hash for license file as it is different for each package
> > listed above
> > diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> > b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> > new file mode 100644
> > index 0000000000..6d08dcc8f8
> > --- /dev/null
> > +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> > @@ -0,0 +1,72 @@
> > +##################################################################
> > ##############
> > +#
> > +# imx-m4-demos
> > +#
> > +##################################################################
> > ##############
> > +
> > +IMX_M4_DEMOS_SITE = $(FREESCALE_IMX_SITE)
> > +
> > +IMX_M4_DEMOS_LICENSE = NXP Semiconductor Software License
> > Agreement
> > +IMX_M4_DEMOS_LICENSE_FILES = COPYING
> > +IMX_M4_DEMOS_REDISTRIBUTE = NO
> > +
> > +define IMX_M4_DEMOS_EXTRACT_CMDS
> > +       $(call
> > FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_DEMOS_DL_DIR)/$(IMX_M4_DEMOS_
> > SOURCE))
> > +endef
> > +
> > +# Note: firmware names are copied to binaries directory with an
> > "m4_" prefix, for easier post image scripting
> > +
> > +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
> > +IMX_M4_DEMOS_VERSION = 2.6.0
> > +IMX_M4_DEMOS_SOURCE = imx7ulp-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> > +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> > +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> > +       cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
> > $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.i
> > mg
> > +       cp $(@D)/imx7ulp_m4_demo.img
> > $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
> > +       cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img
> > $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
> > +       cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img
> > $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
> > +       cp $(@D)/imx7ulp_wireless_uart_bridge.img
> > $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
> > +endef
> > +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
> > +IMX_M4_DEMOS_VERSION = 1.0.1
> > +IMX_M4_DEMOS_SOURCE = imx7d-sabresd-m4-freertos-
> > $(IMX_M4_DEMOS_VERSION).bin
> > +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> > +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> > +       cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin
> > $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
> > +       cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin
> > $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
> > +       cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin
> > $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
> > +endef
> > +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
> > +IMX_M4_DEMOS_VERSION = 2.5.0
> > +IMX_M4_DEMOS_SOURCE = imx8qx-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> > +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> > +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> > +       cp $(@D)/imx8qx_m4_TCM_hello_world.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
> > +       cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
> > +       cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
> > +       cp
> > $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_rem
> > ote.bin
> > +       cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > +       cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin
> > $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
> > +endef
> > +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
> > +IMX_M4_DEMOS_VERSION = 2.3.0
> > +IMX_M4_DEMOS_SOURCE = imx8mq-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> > +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> > +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> > +       cp $(@D)/imx8mq_m4_TCM_hello_world.bin
> > $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
> > +       cp
> > $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> > $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_rem
> > ote.bin
> > +       cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > +endef
> > +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
> > +IMX_M4_DEMOS_VERSION = 2.5.0
> > +IMX_M4_DEMOS_SOURCE = imx8mm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> > +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> > +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> > +       cp $(@D)/imx8mm_m4_TCM_hello_world.bin
> > $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
> > +       cp
> > $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> > $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_rem
> > ote.bin
> > +       cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> > +       cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin
> > $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
> > +endef
> > +endif
> > +
> > +$(eval $(generic-package))
> Other than that, the rest is OK with me.
>
> thanks
> Gilles.

Fixed all (plus the board/freescale/common/imx/post-image.sh one) in a
coming v5.

Regards,

Fabrice

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

* [Buildroot] [PATCH v5 1/2] package/freescale-imx/imx-m4-demos: new package
  2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
  2019-11-10 23:08       ` [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
  2019-11-11  8:50       ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
@ 2019-11-11 10:15       ` Fabrice Goucem
  2019-11-11 10:15         ` [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
  2019-11-11 15:29         ` [Buildroot] [PATCH v5 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
  2 siblings, 2 replies; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-11 10:15 UTC (permalink / raw)
  To: buildroot

New package to download and install i.MX Cortex-M4 demos
for following SoCs:
* i.MX7D
* i.MX7ULP
* i.MX8M
* i.MX8MM
* i.MX8QXP

Yocto recipes from where the demos location has been extracted:
https://source.codeaurora.org/external/imx/meta-fsl-bsp-release/tree/imx/meta-sdk/recipes-fsl/m4-demos?h=imx-morty&id=bfb1e26798775f161b14218ac6f1d50069bea8ed

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
Tested-by: Julien Olivain <julien.olivain@nxp.com>
---
 DEVELOPERS                                    |  3 +
 board/freescale/common/imx/post-image.sh      | 14 +++-
 package/freescale-imx/Config.in               |  8 +++
 package/freescale-imx/imx-m4-demos/Config.in  | 11 +++
 .../imx-m4-demos/imx-m4-demos.hash            |  8 +++
 .../imx-m4-demos/imx-m4-demos.mk              | 72 +++++++++++++++++++
 6 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 package/freescale-imx/imx-m4-demos/Config.in
 create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
 create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index c0863aabc6..b2519ca2c2 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -874,6 +874,9 @@ F:	package/tinydtls/
 F:	package/tinymembench/
 F:	package/whois/
 
+N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	package/freescale-imx/imx-m4-demos/
+
 N:	Falco Hyfing <hyfinglists@gmail.com>
 F:	package/python-pymodbus/
 
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index 19d8fffb63..1aba516d9c 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -30,6 +30,18 @@ linux_image()
 	fi
 }
 
+#
+# m4_image prints all available M4 demo file names for the genimage
+# configuration file
+#
+m4_image()
+{
+	if grep -Eq "^BR2_PACKAGE_IMX_M4_DEMOS=y$" ${BR2_CONFIG}; then
+		echo -n ", "
+		for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
+	fi
+}
+
 genimage_type()
 {
 	if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
@@ -75,7 +87,7 @@ uboot_image()
 
 main()
 {
-	local FILES="$(dtb_list) $(linux_image)"
+	local FILES="$(dtb_list) $(linux_image) $(m4_image)"
 	local IMXOFFSET="$(imx_offset)"
 	local UBOOTBIN="$(uboot_image)"
 	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index f010aab87b..55cd53aa37 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
+config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	bool
+	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
+
 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"
 source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-m4-demos/Config.in"
 source "package/freescale-imx/imx-m4fwloader/Config.in"
 source "package/freescale-imx/imx-parser/Config.in"
 source "package/freescale-imx/imx-uuc/Config.in"
diff --git a/package/freescale-imx/imx-m4-demos/Config.in b/package/freescale-imx/imx-m4-demos/Config.in
new file mode 100644
index 0000000000..b1cbebb74f
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/Config.in
@@ -0,0 +1,11 @@
+comment "imx-m4-demos needs an i.MX platform with Cortex-M4"
+	depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+
+config BR2_PACKAGE_IMX_M4_DEMOS
+	bool "imx-m4-demos"
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
+	help
+	  Cortex-M4 demo blobs for the Freescale i.MX SoCs.
+
+	  This library is provided by Freescale as-is and doesn't have
+	  an upstream.
diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
new file mode 100644
index 0000000000..fdbf1ab608
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
@@ -0,0 +1,8 @@
+# locally computed
+sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
+sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
+sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
+sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
+sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
+
+# no hash for license file as it is different for each package listed above
diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
new file mode 100644
index 0000000000..6d08dcc8f8
--- /dev/null
+++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
@@ -0,0 +1,72 @@
+################################################################################
+#
+# imx-m4-demos
+#
+################################################################################
+
+IMX_M4_DEMOS_SITE = $(FREESCALE_IMX_SITE)
+
+IMX_M4_DEMOS_LICENSE = NXP Semiconductor Software License Agreement
+IMX_M4_DEMOS_LICENSE_FILES = COPYING
+IMX_M4_DEMOS_REDISTRIBUTE = NO
+
+define IMX_M4_DEMOS_EXTRACT_CMDS
+	$(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_DEMOS_DL_DIR)/$(IMX_M4_DEMOS_SOURCE))
+endef
+
+# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
+
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
+IMX_M4_DEMOS_VERSION = 2.6.0
+IMX_M4_DEMOS_SOURCE = imx7ulp-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+	cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
+	cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+	cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+	cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
+IMX_M4_DEMOS_VERSION = 1.0.1
+IMX_M4_DEMOS_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
+	cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
+IMX_M4_DEMOS_VERSION = 2.5.0
+IMX_M4_DEMOS_SOURCE = imx8qx-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
+	cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
+	cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+IMX_M4_DEMOS_VERSION = 2.3.0
+IMX_M4_DEMOS_SOURCE = imx8mq-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+endef
+else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
+IMX_M4_DEMOS_VERSION = 2.5.0
+IMX_M4_DEMOS_SOURCE = imx8mm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
+IMX_M4_DEMOS_INSTALL_IMAGES = YES
+define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
+	cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
+	cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
+	cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
+endef
+endif
+
+$(eval $(generic-package))
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-11-11 10:15       ` [Buildroot] [PATCH v5 " Fabrice Goucem
@ 2019-11-11 10:15         ` Fabrice Goucem
  2019-11-11 15:30           ` Gilles Talis
  2019-11-11 15:29         ` [Buildroot] [PATCH v5 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
  1 sibling, 1 reply; 21+ messages in thread
From: Fabrice Goucem @ 2019-11-11 10:15 UTC (permalink / raw)
  To: buildroot

Add basic support for NXP's i.MX7 ULP EVK board:

https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>

---
Changes v4 -> v5:
  - Changed all occurences of m4-firmware to m4-demos (suggested by
    Gilles Talis)
  - Changed wrong flag name in post-image.sh (indirectly suggested by
    Gilles Talis)

Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
---
 .gitlab-ci.yml                         |  1 +
 DEVELOPERS                             |  2 +
 board/freescale/imx7ulpevk/readme.txt  | 76 ++++++++++++++++++++++++++
 configs/freescale_imx7ulpevk_defconfig | 28 ++++++++++
 package/freescale-imx/Config.in        |  8 ++-
 5 files changed, 114 insertions(+), 1 deletion(-)
 create mode 100644 board/freescale/imx7ulpevk/readme.txt
 create mode 100644 configs/freescale_imx7ulpevk_defconfig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d71257a20..74ee5b732e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
 freescale_imx6qsabresd_defconfig: { extends: .defconfig }
 freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
 freescale_imx7dsabresd_defconfig: { extends: .defconfig }
+freescale_imx7ulpevk_defconfig: { extends: .defconfig }
 freescale_imx8mmevk_defconfig: { extends: .defconfig }
 freescale_imx8mqevk_defconfig: { extends: .defconfig }
 freescale_imx8qxpmek_defconfig: { extends: .defconfig }
diff --git a/DEVELOPERS b/DEVELOPERS
index b2519ca2c2..ccd331e364 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -875,6 +875,8 @@ F:	package/tinymembench/
 F:	package/whois/
 
 N:	Fabrice Goucem <fabrice.goucem@nxp.com>
+F:	board/freescale/imx7ulpevk/
+F:	configs/freescale_imx7ulpevk_defconfig
 F:	package/freescale-imx/imx-m4-demos/
 
 N:	Falco Hyfing <hyfinglists@gmail.com>
diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
new file mode 100644
index 0000000000..c18f901010
--- /dev/null
+++ b/board/freescale/imx7ulpevk/readme.txt
@@ -0,0 +1,76 @@
+****************************
+Freescale i.MX7ULP EVK board
+****************************
+
+This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7ULP EVK board:
+
+  make freescale_imx7ulpevk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - boot.vfat
+  - imx7ulp-evkb.dtb
+  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
+  - m4_imx7ulp_m4_demo.img
+  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
+  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
+  - m4_imx7ulp_wireless_uart_bridge.img
+  - rootfs.ext2
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+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.
+
+Flash QSPI with Cortex-M4 demo
+==============================
+
+Cortex-M4 demo can be flashed onto QSPI NOR memory.
+To do so, stop at u-boot prompt and run the following commands:
+
+  sf probe
+  sf erase 0 30000
+  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
+  sf write 62000000 0 30000
+
+Boot the i.MX7ULP EVK board
+===========================
+
+To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
+- insert the SD card in the micro SD slot of the board;
+- 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/docs/en/user-guide/IMX7ULPQSG.pdf
diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
new file mode 100644
index 0000000000..7998eb04ad
--- /dev/null
+++ b/configs/freescale_imx7ulpevk_defconfig
@@ -0,0 +1,28 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
+BR2_PACKAGE_IMX_M4_DEMOS=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 55cd53aa37..639b789ebe 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	bool "imx6ul/imx6ull"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
-	bool "imx7d/imx7ulp"
+	bool "imx7d"
+
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
+	bool "imx7ulp"
 
 config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 	bool "imx8m"
@@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
 	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
 	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
 	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
+	default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
 	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
@@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
 
 config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
 	bool
 	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
+		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
 		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
-- 
2.24.0.rc1

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

* [Buildroot] [PATCH v5 1/2] package/freescale-imx/imx-m4-demos: new package
  2019-11-11 10:15       ` [Buildroot] [PATCH v5 " Fabrice Goucem
  2019-11-11 10:15         ` [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-11-11 15:29         ` Gilles Talis
  1 sibling, 0 replies; 21+ messages in thread
From: Gilles Talis @ 2019-11-11 15:29 UTC (permalink / raw)
  To: buildroot

Hi Fabrice, all,

Le lun. 11 nov. 2019 ? 11:15, Fabrice Goucem <fabrice.goucem@nxp.com> a ?crit :
>
> New package to download and install i.MX Cortex-M4 demos
> for following SoCs:
> * i.MX7D
> * i.MX7ULP
> * i.MX8M
> * i.MX8MM
> * i.MX8QXP
>
> Yocto recipes from where the demos location has been extracted:
> https://source.codeaurora.org/external/imx/meta-fsl-bsp-release/tree/imx/meta-sdk/recipes-fsl/m4-demos?h=imx-morty&id=bfb1e26798775f161b14218ac6f1d50069bea8ed
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> Tested-by: Julien Olivain <julien.olivain@nxp.com>
> ---
>  DEVELOPERS                                    |  3 +
>  board/freescale/common/imx/post-image.sh      | 14 +++-
>  package/freescale-imx/Config.in               |  8 +++
>  package/freescale-imx/imx-m4-demos/Config.in  | 11 +++
>  .../imx-m4-demos/imx-m4-demos.hash            |  8 +++
>  .../imx-m4-demos/imx-m4-demos.mk              | 72 +++++++++++++++++++
>  6 files changed, 115 insertions(+), 1 deletion(-)
>  create mode 100644 package/freescale-imx/imx-m4-demos/Config.in
>  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
>  create mode 100644 package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index c0863aabc6..b2519ca2c2 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -874,6 +874,9 @@ F:  package/tinydtls/
>  F:     package/tinymembench/
>  F:     package/whois/
>
> +N:     Fabrice Goucem <fabrice.goucem@nxp.com>
> +F:     package/freescale-imx/imx-m4-demos/
> +
>  N:     Falco Hyfing <hyfinglists@gmail.com>
>  F:     package/python-pymodbus/
>
> diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
> index 19d8fffb63..1aba516d9c 100755
> --- a/board/freescale/common/imx/post-image.sh
> +++ b/board/freescale/common/imx/post-image.sh
> @@ -30,6 +30,18 @@ linux_image()
>         fi
>  }
>
> +#
> +# m4_image prints all available M4 demo file names for the genimage
> +# configuration file
> +#
> +m4_image()
> +{
> +       if grep -Eq "^BR2_PACKAGE_IMX_M4_DEMOS=y$" ${BR2_CONFIG}; then
> +               echo -n ", "
> +               for f in $(ls ${BINARIES_DIR}/m4_*); do echo -n "$(basename $f), "; done
> +       fi
> +}
> +
>  genimage_type()
>  {
>         if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
> @@ -75,7 +87,7 @@ uboot_image()
>
>  main()
>  {
> -       local FILES="$(dtb_list) $(linux_image)"
> +       local FILES="$(dtb_list) $(linux_image) $(m4_image)"
>         local IMXOFFSET="$(imx_offset)"
>         local UBOOTBIN="$(uboot_image)"
>         local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index f010aab87b..55cd53aa37 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -83,10 +83,18 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>
> +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +       bool
> +       default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> +
>  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"
>  source "package/freescale-imx/imx-lib/Config.in"
> +source "package/freescale-imx/imx-m4-demos/Config.in"
>  source "package/freescale-imx/imx-m4fwloader/Config.in"
>  source "package/freescale-imx/imx-parser/Config.in"
>  source "package/freescale-imx/imx-uuc/Config.in"
> diff --git a/package/freescale-imx/imx-m4-demos/Config.in b/package/freescale-imx/imx-m4-demos/Config.in
> new file mode 100644
> index 0000000000..b1cbebb74f
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/Config.in
> @@ -0,0 +1,11 @@
> +comment "imx-m4-demos needs an i.MX platform with Cortex-M4"
> +       depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +
> +config BR2_PACKAGE_IMX_M4_DEMOS
> +       bool "imx-m4-demos"
> +       depends on BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> +       help
> +         Cortex-M4 demo blobs for the Freescale i.MX SoCs.
> +
> +         This library is provided by Freescale as-is and doesn't have
> +         an upstream.
> diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> new file mode 100644
> index 0000000000..fdbf1ab608
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> @@ -0,0 +1,8 @@
> +# locally computed
> +sha256  cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254  imx7d-sabresd-m4-freertos-1.0.1.bin
> +sha256  e4efb9646b66df867f618bd8121e14afe17ebadea4a405a4df951d45d841e681  imx7ulp-m4-demo-2.6.0.bin
> +sha256  4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3  imx8mm-m4-demo-2.5.0.bin
> +sha256  fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8  imx8mq-m4-demo-2.3.0.bin
> +sha256  4e83d60e27cd8ad67d4174ad3082a5f4a06b7df93571cfd2274615cbdf66eb6c  imx8qx-m4-demo-2.5.0.bin
> +
> +# no hash for license file as it is different for each package listed above
> diff --git a/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> new file mode 100644
> index 0000000000..6d08dcc8f8
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> @@ -0,0 +1,72 @@
> +################################################################################
> +#
> +# imx-m4-demos
> +#
> +################################################################################
> +
> +IMX_M4_DEMOS_SITE = $(FREESCALE_IMX_SITE)
> +
> +IMX_M4_DEMOS_LICENSE = NXP Semiconductor Software License Agreement
> +IMX_M4_DEMOS_LICENSE_FILES = COPYING
> +IMX_M4_DEMOS_REDISTRIBUTE = NO
> +
> +define IMX_M4_DEMOS_EXTRACT_CMDS
> +       $(call FREESCALE_IMX_EXTRACT_HELPER,$(IMX_M4_DEMOS_DL_DIR)/$(IMX_M4_DEMOS_SOURCE))
> +endef
> +
> +# Note: firmware names are copied to binaries directory with an "m4_" prefix, for easier post image scripting
> +
> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP),y)
> +IMX_M4_DEMOS_VERSION = 2.6.0
> +IMX_M4_DEMOS_SOURCE = imx7ulp-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img $(BINARIES_DIR)/m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
> +       cp $(@D)/imx7ulp_m4_demo.img $(BINARIES_DIR)/m4_imx7ulp_m4_demo.img
> +       cp $(@D)/imx7ulp_rpmsg_lite_pingpong_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
> +       cp $(@D)/imx7ulp_rpmsg_lite_str_echo_rtos.img $(BINARIES_DIR)/m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
> +       cp $(@D)/imx7ulp_wireless_uart_bridge.img $(BINARIES_DIR)/m4_imx7ulp_wireless_uart_bridge.img
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7),y)
> +IMX_M4_DEMOS_VERSION = 1.0.1
> +IMX_M4_DEMOS_SOURCE = imx7d-sabresd-m4-freertos-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx7d_sabresd_m4_TCM_helloworld.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_helloworld.bin
> +       cp $(@D)/imx7d_sabresd_m4_TCM_mcctty.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_mcctty.bin
> +       cp $(@D)/imx7d_sabresd_m4_TCM_Pingpang.bin $(BINARIES_DIR)/m4_imx7d_sabresd_m4_TCM_Pingpang.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
> +IMX_M4_DEMOS_VERSION = 2.5.0
> +IMX_M4_DEMOS_SOURCE = imx8qx-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8qx_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8qx_m4_TCM_power_mode_switch.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_power_mode_switch.bin
> +       cp $(@D)/imx8qx_m4_TCM_rear_view_camera.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rear_view_camera.bin
> +       cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +       cp $(@D)/imx8qx_m4_TCM_srtm_demo.bin $(BINARIES_DIR)/m4_imx8qx_m4_TCM_srtm_demo.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
> +IMX_M4_DEMOS_VERSION = 2.3.0
> +IMX_M4_DEMOS_SOURCE = imx8mq-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8mq_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM),y)
> +IMX_M4_DEMOS_VERSION = 2.5.0
> +IMX_M4_DEMOS_SOURCE = imx8mm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> +       cp $(@D)/imx8mm_m4_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_hello_world.bin
> +       cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +       cp $(@D)/imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin
> +       cp $(@D)/imx8mm_m4_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mm_m4_TCM_sai_low_power_audio.bin
> +endef
> +endif
> +
> +$(eval $(generic-package))
> --
> 2.24.0.rc1
>

Reviewed-by: Gilles Talis <gilles.talis@gmail.com>

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

* [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig
  2019-11-11 10:15         ` [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
@ 2019-11-11 15:30           ` Gilles Talis
  0 siblings, 0 replies; 21+ messages in thread
From: Gilles Talis @ 2019-11-11 15:30 UTC (permalink / raw)
  To: buildroot

Hi Fabrice, all,

Le lun. 11 nov. 2019 ? 11:15, Fabrice Goucem <fabrice.goucem@nxp.com> a ?crit :
>
> Add basic support for NXP's i.MX7 ULP EVK board:
>
> https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/evaluation-kit-for-the-i.mx-7ulp-applications-processor:MCIMX7ULP-EVK
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
>
> ---
> Changes v4 -> v5:
>   - Changed all occurences of m4-firmware to m4-demos (suggested by
>     Gilles Talis)
>   - Changed wrong flag name in post-image.sh (indirectly suggested by
>     Gilles Talis)
>
> Signed-off-by: Fabrice Goucem <fabrice.goucem@nxp.com>
> ---
>  .gitlab-ci.yml                         |  1 +
>  DEVELOPERS                             |  2 +
>  board/freescale/imx7ulpevk/readme.txt  | 76 ++++++++++++++++++++++++++
>  configs/freescale_imx7ulpevk_defconfig | 28 ++++++++++
>  package/freescale-imx/Config.in        |  8 ++-
>  5 files changed, 114 insertions(+), 1 deletion(-)
>  create mode 100644 board/freescale/imx7ulpevk/readme.txt
>  create mode 100644 configs/freescale_imx7ulpevk_defconfig
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d71257a20..74ee5b732e 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -177,6 +177,7 @@ freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
>  freescale_imx6qsabresd_defconfig: { extends: .defconfig }
>  freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
>  freescale_imx7dsabresd_defconfig: { extends: .defconfig }
> +freescale_imx7ulpevk_defconfig: { extends: .defconfig }
>  freescale_imx8mmevk_defconfig: { extends: .defconfig }
>  freescale_imx8mqevk_defconfig: { extends: .defconfig }
>  freescale_imx8qxpmek_defconfig: { extends: .defconfig }
> diff --git a/DEVELOPERS b/DEVELOPERS
> index b2519ca2c2..ccd331e364 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -875,6 +875,8 @@ F:  package/tinymembench/
>  F:     package/whois/
>
>  N:     Fabrice Goucem <fabrice.goucem@nxp.com>
> +F:     board/freescale/imx7ulpevk/
> +F:     configs/freescale_imx7ulpevk_defconfig
>  F:     package/freescale-imx/imx-m4-demos/
>
>  N:     Falco Hyfing <hyfinglists@gmail.com>
> diff --git a/board/freescale/imx7ulpevk/readme.txt b/board/freescale/imx7ulpevk/readme.txt
> new file mode 100644
> index 0000000000..c18f901010
> --- /dev/null
> +++ b/board/freescale/imx7ulpevk/readme.txt
> @@ -0,0 +1,76 @@
> +****************************
> +Freescale i.MX7ULP EVK board
> +****************************
> +
> +This file documents the Buildroot support for the Freescale i.MX7ULP EVK board.
> +
> +Build
> +=====
> +
> +First, configure Buildroot for your i.MX7ULP EVK board:
> +
> +  make freescale_imx7ulpevk_defconfig
> +
> +Build all components:
> +
> +  make
> +
> +You will find in output/images/ the following files:
> +  - boot.vfat
> +  - imx7ulp-evkb.dtb
> +  - m4_imx7ulp_erpc_matrix_multiply_rpmsg_rtos_imxcm4.img
> +  - m4_imx7ulp_m4_demo.img
> +  - m4_imx7ulp_rpmsg_lite_pingpong_rtos.img
> +  - m4_imx7ulp_rpmsg_lite_str_echo_rtos.img
> +  - m4_imx7ulp_wireless_uart_bridge.img
> +  - rootfs.ext2
> +  - rootfs.ext4
> +  - rootfs.tar
> +  - sdcard.img
> +  - u-boot.imx
> +  - zImage
> +
> +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.
> +
> +Flash QSPI with Cortex-M4 demo
> +==============================
> +
> +Cortex-M4 demo can be flashed onto QSPI NOR memory.
> +To do so, stop at u-boot prompt and run the following commands:
> +
> +  sf probe
> +  sf erase 0 30000
> +  fatload mmc 0 62000000 m4_imx7ulp_m4_demo.img
> +  sf write 62000000 0 30000
> +
> +Boot the i.MX7ULP EVK board
> +===========================
> +
> +To boot your newly created system (refer to the i.MX 7ULP EVK Quick Start Guide [1] for guidance):
> +- insert the SD card in the micro SD slot of the board;
> +- 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/docs/en/user-guide/IMX7ULPQSG.pdf
> diff --git a/configs/freescale_imx7ulpevk_defconfig b/configs/freescale_imx7ulpevk_defconfig
> new file mode 100644
> index 0000000000..7998eb04ad
> --- /dev/null
> +++ b/configs/freescale_imx7ulpevk_defconfig
> @@ -0,0 +1,28 @@
> +BR2_arm=y
> +BR2_cortex_a7=y
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyLP0"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
> +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7ulp-evkb"
> +BR2_PACKAGE_FREESCALE_IMX=y
> +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP=y
> +BR2_PACKAGE_IMX_M4_DEMOS=y
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BOARDNAME="mx7ulp_evk"
> +BR2_TARGET_UBOOT_CUSTOM_GIT=y
> +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx.git"
> +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.19.35_1.0.0"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> +# BR2_TARGET_UBOOT_FORMAT_BIN is not set
> +BR2_TARGET_UBOOT_FORMAT_IMX=y
> +BR2_PACKAGE_HOST_DOSFSTOOLS=y
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_MTOOLS=y
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 55cd53aa37..639b789ebe 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -38,7 +38,10 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>         bool "imx6ul/imx6ull"
>
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> -       bool "imx7d/imx7ulp"
> +       bool "imx7d"
> +
> +config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
> +       bool "imx7ulp"
>
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>         bool "imx8m"
> @@ -62,6 +65,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
>         default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
>         default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>         default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
> +       default "IMX7ULP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP
>         default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
>
>  config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> @@ -80,12 +84,14 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
>         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
>
>  config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
>         bool
>         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> +               BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7ULP || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
>                 BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
> --
> 2.24.0.rc1
>

Reviewed-by: Gilles Talis <gilles.talis@gmail.com>

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

end of thread, other threads:[~2019-11-11 15:30 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-29 17:01 [Buildroot] [PATCH 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
2019-10-29 17:01 ` [Buildroot] [PATCH 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
2019-10-29 18:09   ` Fabio Estevam
2019-10-30 13:43     ` Fabrice Goucem
2019-10-30 13:40 ` [Buildroot] [PATCH v2 1/3] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
2019-10-30 13:40   ` [Buildroot] [PATCH v2 2/3] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
2019-10-30 13:40   ` [Buildroot] [PATCH v2 3/3] package/freescale-imx/imx-m4-firmware: add support for i.MX7ULP Fabrice Goucem
2019-10-31 22:52     ` Fabio Estevam
2019-11-05 12:03   ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Fabrice Goucem
2019-11-05 12:03     ` [Buildroot] [PATCH v3 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
2019-11-06 17:23     ` [Buildroot] [PATCH v3 1/2] package/freescale-imx/imx-m4-firmware: new package Gary Bisson
2019-11-07  9:59       ` [Buildroot] [EXT] " Fabrice Goucem
2019-11-10 23:08     ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: " Fabrice Goucem
2019-11-10 23:08       ` [Buildroot] [PATCH v4 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
2019-11-11  8:53         ` Gilles Talis
2019-11-11  8:50       ` [Buildroot] [PATCH v4 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis
2019-11-11 10:09         ` [Buildroot] [EXT] " Fabrice Goucem
2019-11-11 10:15       ` [Buildroot] [PATCH v5 " Fabrice Goucem
2019-11-11 10:15         ` [Buildroot] [PATCH v5 2/2] configs/freescale_imx7ulpevk: new defconfig Fabrice Goucem
2019-11-11 15:30           ` Gilles Talis
2019-11-11 15:29         ` [Buildroot] [PATCH v5 1/2] package/freescale-imx/imx-m4-demos: new package Gilles Talis

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.