[Buildroot] [PATCH 1/2] package/freescale-imx/imx-m4-demos: new package
gary.bisson at boundarydevices.com
gary.bisson at boundarydevices.com
Tue Jul 28 19:17:18 UTC 2020
Hi Fabrice,
Thanks for your contribution! I have a few questions below.
On Tue, Jul 28, 2020 at 06:00:40PM +0200, Fabrice Goucem wrote:
> New package to download and install i.MX Cortex-M4 demos
> for following SoCs:
> * i.MX7D
> * i.MX7ULP
> * i.MX8M
> * i.MX8MM
> * i.MX8MN
> * i.MX8QM
> * 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
Why using such an old release? Why not latest GA from NXP?
https://source.codeaurora.org/external/imx/meta-imx/tree/meta-sdk/recipes-fsl/m4-demos?h=zeus-5.4.24-2.1.0
> Signed-off-by: Fabrice Goucem <fabrice.goucem at oss.nxp.com>
> Tested-by: Julien Olivain <julien.olivain at nxp.com>
> Signed-off-by: Fabrice Goucem <fabrice.goucem at nxp.com>
> ---
> DEVELOPERS | 1 +
> board/freescale/common/imx/post-image.sh | 14 ++-
> package/freescale-imx/Config.in | 10 ++
> package/freescale-imx/imx-m4-demos/Config.in | 11 +++
> .../imx-m4-demos/imx-m4-demos.hash | 10 ++
> .../imx-m4-demos/imx-m4-demos.mk | 95 +++++++++++++++++++
> 6 files changed, 140 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 ee840dbb8b..5e24b55167 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -908,6 +908,7 @@ F: package/whois/
> N: Fabrice Goucem <fabrice.goucem at oss.nxp.com>
> F: board/freescale/imx6ullevk/
> F: configs/freescale_imx6ullevk_defconfig
> +F: package/freescale-imx/imx-m4-demos/
>
> N: Falco Hyfing <hyfinglists at 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 06ccaac3a4..4ac7ae09f8 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_IMX8=y$" ${BR2_CONFIG}; then
> @@ -79,7 +91,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 b0c7de8436..b95de54f4c 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -96,10 +96,20 @@ config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
>
> +config BR2_PACKAGE_FREESCALE_IMX_HAS_M4
> + bool
> + default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
> + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8 || \
> + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M || \
> + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM || \
> + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN || \
> + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
> +
> 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
Maybe call it mcore like NXP, would be better IMO.
> +
> +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..feda867952
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.hash
> @@ -0,0 +1,10 @@
> +# locally computed
> +sha256 cc00d3b936d49b2794a2a99e10129437e70caba3fd26b8379b8c50dd22f73254 imx7d-sabresd-m4-freertos-1.0.1.bin
> +sha256 a8fbe1180b3d20e933a410cd76e60baac7a9f54e8b2bae8b6b8a3e1af550eca6 imx7ulp-m4-demo-2.8.0.bin
> +sha256 4e41e270506870e0fd2d53e3d69afdcf6d613d099b0da5c516a512944c5c12c3 imx8mm-m4-demo-2.5.0.bin
> +sha256 e877c7462b6ea87c498563842f42352d204eb28a65f35f7dc1fec643f84abb66 imx8mn-m7-demo-2.8.0.bin
> +sha256 fd441e75395b0c6f90626c883ee8a93406b14e7d55adc7925116254394bb7ad8 imx8mq-m4-demo-2.3.0.bin
> +sha256 d06a636b84cd559483091cbdb07b5ce9e15a534bca31d4cb756b33b696c2160b imx8qm-m4-demo-2.8.0.bin
> +sha256 7800cdbebe07f426cdac50b0e295d64215164a767e79ca58bd917445c50e345f imx8qx-m4-demo-2.8.0.bin
I stand corrected, *some* platform use 2.8.0 which is the latest, why
not all? IMO they should all be 2.8.0 except for imx7d that stays 1.0.1.
> +# 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..d331ef9b69
> --- /dev/null
> +++ b/package/freescale-imx/imx-m4-demos/imx-m4-demos.mk
> @@ -0,0 +1,95 @@
> +################################################################################
> +#
> +# 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_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_IMX7ULP),y)
> +IMX_M4_DEMOS_VERSION = 2.8.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_IMX8),y)
> +IMX_M4_DEMOS_VERSION = 2.8.0
> +IMX_M4_DEMOS_SOURCE = imx8qm-m4-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> + cp $(@D)/imx8qm_m4_0_TCM_hello_world_m40.bin $(BINARIES_DIR)/m4_imx8qm_m4_0_TCM_hello_world_m40.bin
> + cp $(@D)/imx8qm_m4_0_TCM_power_mode_switch_m40.bin $(BINARIES_DIR)/m4_imx8qm_m4_0_TCM_power_mode_switch_m40.bin
> + cp $(@D)/imx8qm_m4_0_TCM_rpmsg_lite_pingpong_rtos_linux_remote_m40.bin $(BINARIES_DIR)/m4_imx8qm_m4_0_TCM_rpmsg_lite_pingpong_rtos_linux_remote_m40.bin
> + cp $(@D)/imx8qm_m4_0_TCM_rpmsg_lite_str_echo_rtos_m40.bin $(BINARIES_DIR)/m4_imx8qm_m4_0_TCM_rpmsg_lite_str_echo_rtos_m40.bin
> + cp $(@D)/imx8qm_m4_1_TCM_hello_world_m41.bin $(BINARIES_DIR)/m4_imx8qm_m4_1_TCM_hello_world_m41.bin
> + cp $(@D)/imx8qm_m4_1_TCM_power_mode_switch_m41.bin $(BINARIES_DIR)/m4_imx8qm_m4_1_TCM_power_mode_switch_m41.bin
> + cp $(@D)/imx8qm_m4_1_TCM_rpmsg_lite_pingpong_rtos_linux_remote_m41.bin $(BINARIES_DIR)/m4_imx8qm_m4_1_TCM_rpmsg_lite_pingpong_rtos_linux_remote_m41.bin
> + cp $(@D)/imx8qm_m4_1_TCM_rpmsg_lite_str_echo_rtos_m41.bin $(BINARIES_DIR)/m4_imx8qm_m4_1_TCM_rpmsg_lite_str_echo_rtos_m41.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
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN),y)
> +IMX_M4_DEMOS_VERSION = 2.8.0
> +IMX_M4_DEMOS_SOURCE = imx8mn-m7-demo-$(IMX_M4_DEMOS_VERSION).bin
> +IMX_M4_DEMOS_INSTALL_IMAGES = YES
> +define IMX_M4_DEMOS_INSTALL_IMAGES_CMDS
> + cp $(@D)/imx8mn_m7_TCM_rpmsg_lite_str_echo_rtos.bin $(BINARIES_DIR)/m4_imx8mn_m7_TCM_rpmsg_lite_str_echo_rtos.bin
> + cp $(@D)/imx8mn_m7_TCM_hello_world.bin $(BINARIES_DIR)/m4_imx8mn_m7_TCM_hello_world.bin
> + cp $(@D)/imx8mn_m7_TCM_sai_low_power_audio.bin $(BINARIES_DIR)/m4_imx8mn_m7_TCM_sai_low_power_audio.bin
> + cp $(@D)/imx8mn_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin $(BINARIES_DIR)/m4_imx8mn_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
> +endef
> +else ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X),y)
> +IMX_M4_DEMOS_VERSION = 2.8.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_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
> +endif
Isn't it possible to factorize the code a little? Feels like there is a
lot of duplication for little differences.
Regards,
Gary
More information about the buildroot
mailing list