From 0beb8f6aedcc51b285852bd412c8af30e277cb10 Mon Sep 17 00:00:00 2001 From: Nate Drude Date: Thu, 23 Oct 2025 16:45:53 +0000 Subject: [PATCH 1/3] src: bsp: imx_mkimage: Add support for machine specific imx_mkimage patches Some machines may need to apply patches to imx_mkimage. A variable PATCHES_IMX_MKIMAGE can be defined in the machine file, like: PATCHES_IMX_MKIMAGE=" \ 0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch \ 0001-iMX8M-soc-allow-dtb-override.patch \ 0002-iMX8M-soc-change-padding-of-DDR4-and-LPDDR4-DMEM-fir.patch \ 0001-iMX8M-soc-imx8mm-move-TEE_LOAD_ADDR-to-512mb-memory-.patch \ 0003-iMX8M-soc-add-variscite-imx8mm-support.patch \ " Signed-off-by: Nate Drude --- src/bsp/imx_mkimage.mk | 9 +++++++++ tools/flex-builder | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bsp/imx_mkimage.mk b/src/bsp/imx_mkimage.mk index 4ffd105..33ec944 100644 --- a/src/bsp/imx_mkimage.mk +++ b/src/bsp/imx_mkimage.mk @@ -11,6 +11,15 @@ define imx_mkimage_target git am $(FBDIR)/patch/imx_mkimage/*.patch $(LOG_MUTE) && touch .patchdone; \ fi && \ \ + if [ -n "$(IMX_MKIMAGE_PATCHES)" ] && [ ! -f $(BSPDIR)/imx_mkimage/.patchdone ]; then \ + cd $(BSPDIR)/imx_mkimage && \ + for patch in $(IMX_MKIMAGE_PATCHES); do \ + $(call fbprint_n,"Applying imx_mkimage patch $(FBDIR)/patch/imx_mkimage/$$patch for $(MACHINE)") && \ + git am $(FBDIR)/patch/imx_mkimage/$$patch; \ + done; \ + touch .patchdone; \ + fi; \ + \ if [ ! -d $(BSPDIR)/firmware-imx ]; then \ cd $(BSPDIR) && wget -q $(repo_firmware_imx_bin_url) -O firmware_imx.bin $(LOG_MUTE) && chmod +x firmware_imx.bin && \ ./firmware_imx.bin --auto-accept $(LOG_MUTE) && mv firmware-imx* firmware-imx && rm -f firmware_imx.bin; \ diff --git a/tools/flex-builder b/tools/flex-builder index d47cb07..68ee7ea 100755 --- a/tools/flex-builder +++ b/tools/flex-builder @@ -1069,7 +1069,8 @@ export ARCH DESTARCH CROSS_COMPILE FBDIR DESTDIR RFSDIR JOBS COMPONENT MACHINE K CFGLISTYML BUILDARG DISTROTYPE DISTROVARIANT DISTROVARIANTOPT HOSTARCH SYSARCH SECURE \ SOCFAMILY BL33TYPE DISTRIB_NAME SOCARCH COT DISTRIB_VERSION BOARD_VARIANTS \ UBOOT_CONFIG CODENAME DISTRO_VERSION UBUNTU_VERSION FORCE LD_LIBRARY_PATH \ - PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_PATH DEFAULT_REPO_TAG LOG_MUTE + PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_PATH DEFAULT_REPO_TAG LOG_MUTE \ + IMX_MKIMAGE_PATCHES case "$1" in repo-fetch) From 8a0a4274ec6782f8826383ef79a2f0fdc47e8426 Mon Sep 17 00:00:00 2001 From: Nate Drude Date: Thu, 23 Oct 2025 16:46:37 +0000 Subject: [PATCH 2/3] src: bsp: imx_mkimage: Allow machine overide for target Some machines use a different target. Allow them to be configured in the machine file. e.g.: IMX_MKIMAGE_TARGET="flash_lpddr4_ddr4_evk" Signed-off-by: Nate Drude --- src/bsp/imx_mkimage.mk | 18 +++++++++--------- tools/flex-builder | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/bsp/imx_mkimage.mk b/src/bsp/imx_mkimage.mk index 33ec944..d7120a2 100644 --- a/src/bsp/imx_mkimage.mk +++ b/src/bsp/imx_mkimage.mk @@ -45,32 +45,32 @@ define imx_mkimage_target fi && \ \ if echo $1 | grep -qE ^imx8mp; then \ - SOC=iMX8MP; SOC_FAMILY=iMX8M; target=flash_evk; \ + SOC=iMX8MP; SOC_FAMILY=iMX8M; target=$${IMX_MKIMAGE_TARGET:-flash_evk}; \ elif echo $1 | grep -qE ^imx8mm; then \ - SOC=iMX8MM; SOC_FAMILY=iMX8M; target=flash_evk; \ + SOC=iMX8MM; SOC_FAMILY=iMX8M; target=$${IMX_MKIMAGE_TARGET:-flash_evk}; \ elif echo $1 | grep -qE ^imx8mn; then \ - SOC=iMX8MN; SOC_FAMILY=iMX8M; target=flash_evk; \ + SOC=iMX8MN; SOC_FAMILY=iMX8M; target=$${IMX_MKIMAGE_TARGET:-flash_evk}; \ elif echo $1 | grep -qE ^imx8mq; then \ - SOC=iMX8M; SOC_FAMILY=iMX8M; target=flash_evk; \ + SOC=iMX8M; SOC_FAMILY=iMX8M; target=$${IMX_MKIMAGE_TARGET:-flash_evk}; \ elif echo $1 | grep -qE ^imx8qm; then \ - SOC=iMX8QM; SOC_FAMILY=iMX8QM; target=flash_spl; \ + SOC=iMX8QM; SOC_FAMILY=iMX8QM; target=$${IMX_MKIMAGE_TARGET:-flash_spl}; \ cp -f $(BSPDIR)/imx-scfw/mx8qm-mek-scfw-tcm.bin $(BSPDIR)/imx_mkimage/iMX8QM/scfw_tcm.bin; \ cp -f $(BSPDIR)/imx-seco/firmware/seco/mx8qmb0-ahab-container.img $(BSPDIR)/imx_mkimage/iMX8QM; \ elif echo $1 | grep -qE ^imx8qx; then \ - SOC=iMX8QX; SOC_FAMILY=iMX8QX; target=flash_spl; \ + SOC=iMX8QX; SOC_FAMILY=iMX8QX; target=$${IMX_MKIMAGE_TARGET:-flash_spl}; \ cp -f $(BSPDIR)/imx-scfw/mx8qx-mek-scfw-tcm.bin $(BSPDIR)/imx_mkimage/iMX8QX/scfw_tcm.bin; \ cp -f $(BSPDIR)/imx-seco/firmware/seco/mx8qx*-ahab-container.img $(BSPDIR)/imx_mkimage/iMX8QX; \ elif echo $1 | grep -qE ^imx8ulp; then \ - SOC=iMX8ULP; SOC_FAMILY=iMX8ULP; target=flash_singleboot_m33; \ + SOC=iMX8ULP; SOC_FAMILY=iMX8ULP; target=$${IMX_MKIMAGE_TARGET:-flash_singleboot_m33}; \ cp $(BSPDIR)/fw_ele/mx8ulpa2-ahab-container.img $(BSPDIR)/imx_mkimage/iMX8ULP; \ cp $(BSPDIR)/fw_upower/upower_a1.bin $(BSPDIR)/imx_mkimage/iMX8ULP/upower.bin; \ cp $(BSPDIR)/imx_mcore_demos/imx8ulp-m33-demo/imx8ulp_m33_TCM_rpmsg_lite_str_echo_rtos.bin $(BSPDIR)/imx_mkimage/iMX8ULP/m33_image.bin; \ elif echo $1 | grep -qE ^imx91; then \ - SOC=iMX91; SOC_FAMILY=iMX91; target=flash_singleboot; \ + SOC=iMX91; SOC_FAMILY=iMX91; target=$${IMX_MKIMAGE_TARGET:-flash_singleboot}; \ cp $(BSPDIR)/fw_ele/mx91a*-ahab-container.img $(BSPDIR)/imx_mkimage/iMX91; \ cp $(BSPDIR)/fw_upower/upower_a*.bin $(BSPDIR)/imx_mkimage/iMX91/; \ elif echo $1 | grep -qE ^imx93; then \ - SOC=iMX93; SOC_FAMILY=iMX93; target=flash_singleboot; \ + SOC=iMX93; SOC_FAMILY=iMX93; target=$${IMX_MKIMAGE_TARGET:-flash_singleboot}; \ cp $(BSPDIR)/fw_ele/mx93a*-ahab-container.img $(BSPDIR)/imx_mkimage/iMX93; \ cp $(BSPDIR)/fw_upower/upower_a*.bin $(BSPDIR)/imx_mkimage/iMX93/; \ cp $(BSPDIR)/imx_mcore_demos/imx93-m33-demo/imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.bin \ diff --git a/tools/flex-builder b/tools/flex-builder index 68ee7ea..fd7acf7 100755 --- a/tools/flex-builder +++ b/tools/flex-builder @@ -1070,7 +1070,7 @@ export ARCH DESTARCH CROSS_COMPILE FBDIR DESTDIR RFSDIR JOBS COMPONENT MACHINE K SOCFAMILY BL33TYPE DISTRIB_NAME SOCARCH COT DISTRIB_VERSION BOARD_VARIANTS \ UBOOT_CONFIG CODENAME DISTRO_VERSION UBUNTU_VERSION FORCE LD_LIBRARY_PATH \ PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_PATH DEFAULT_REPO_TAG LOG_MUTE \ - IMX_MKIMAGE_PATCHES + IMX_MKIMAGE_PATCHES IMX_MKIMAGE_TARGET case "$1" in repo-fetch) From 1c66ec6113112894c4a4fb3bec6ab8f53424093b Mon Sep 17 00:00:00 2001 From: Nate Drude Date: Thu, 23 Oct 2025 16:48:10 +0000 Subject: [PATCH 3/3] src: bsp: imx_mkimage: Allow machine overide for dtbs Allow machines to specify their device tree files in the machine configuration. e.g.: IMX_MKIMAGE_DTBS="imx8mm-var-dart-dt8mcustomboard.dtb imx8mm-var-som-symphony.dtb" Signed-off-by: Nate Drude --- src/bsp/imx_mkimage.mk | 2 +- tools/flex-builder | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bsp/imx_mkimage.mk b/src/bsp/imx_mkimage.mk index d7120a2..2aac2f2 100644 --- a/src/bsp/imx_mkimage.mk +++ b/src/bsp/imx_mkimage.mk @@ -111,7 +111,7 @@ define imx_mkimage_target elif [ $${MACHINE:0:5} = imx93 ]; then \ $(MAKE) SOC=iMX93 REV=A1 -C iMX93 -f soc.mak $$target $(LOG_MUTE) ; \ fi && \ - $(MAKE) SOC=$$SOC $(REV_OPTION) $$target $(LOG_MUTE); \ + $(MAKE) SOC=$$SOC $(REV_OPTION) $$target $${IMX_MKIMAGE_DTBS:+dtbs="$$IMX_MKIMAGE_DTBS"} $(LOG_MUTE); \ mkdir -p $(FBOUTDIR)/bsp/imx-mkimage/$$brd && \ cp $$SOC_FAMILY/flash.bin $(FBOUTDIR)/bsp/imx-mkimage/$$brd/flash.bin; endef diff --git a/tools/flex-builder b/tools/flex-builder index fd7acf7..5642539 100755 --- a/tools/flex-builder +++ b/tools/flex-builder @@ -1070,7 +1070,7 @@ export ARCH DESTARCH CROSS_COMPILE FBDIR DESTDIR RFSDIR JOBS COMPONENT MACHINE K SOCFAMILY BL33TYPE DISTRIB_NAME SOCARCH COT DISTRIB_VERSION BOARD_VARIANTS \ UBOOT_CONFIG CODENAME DISTRO_VERSION UBUNTU_VERSION FORCE LD_LIBRARY_PATH \ PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_PATH DEFAULT_REPO_TAG LOG_MUTE \ - IMX_MKIMAGE_PATCHES IMX_MKIMAGE_TARGET + IMX_MKIMAGE_PATCHES IMX_MKIMAGE_TARGET IMX_MKIMAGE_DTBS case "$1" in repo-fetch)