diff --git a/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-archiver.inc b/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-archiver.inc index 7e6fc7b..d1579d8 100644 --- a/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-archiver.inc +++ b/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-archiver.inc @@ -72,58 +72,62 @@ define tf-configs echo " tf-a build target: \$(if \$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET_\$(1)))" ; endef -# Configure TF-A make rules +# Configure TF-A make rules ( tf--: ) define tf-rules -tf-\$(1): \$2 - @mkdir -p \$(BLD_PATH)/\$(1) +tf-\$(1)-\$(2): \$3 @\$(foreach dt, \$(if \$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE_\$(1))), \\ - \$(MAKE) \$(EXTRA_OEMAKE) -C \$(SRC_PATH) \\ - BUILD_PLAT=\$(BLD_PATH)/\$(1) \\ - DTB_FILE_NAME=\$(dt).dtb \\ - \$(if \$(TF_A_EXTRA_OPTFLAGS),\$(TF_A_EXTRA_OPTFLAGS),\$(TF_A_EXTRA_OPTFLAGS_\$(1))) \\ - \$(if \$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET_\$(1))) \\ - \$(foreach soc,${STM32MP_SOC_NAME},\$(if \$(findstring \$(soc),\$(dt)),\$(shell echo \$(soc) | tr a-z A-Z)=1,)) ; \\ + \$(if \$(findstring \$(2),\$(dt)), \\ + \$(MAKE) \$(EXTRA_OEMAKE) -C \$(SRC_PATH) \\ + BUILD_PLAT=\$(BLD_PATH)/\$(1)-\$(2) \\ + DTB_FILE_NAME=\$(dt).dtb \\ + \$(if \$(TF_A_EXTRA_OPTFLAGS),\$(TF_A_EXTRA_OPTFLAGS),\$(TF_A_EXTRA_OPTFLAGS_\$(1))) \\ + \$(if \$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET),\$(TF_A_MAKE_TARGET_\$(1))) \\ + \$(shell echo \$(2) | tr a-z A-Z)=1 ; \\ + ,) \\ ) endef -# Configure TF-A deploy rules +# Configure TF-A deploy rules ( deploy--: tf-- [\$(3)=] ) define deploy-rules -deploy-\$(1): tf-\$(1) +deploy-\$(1)-\$(2): tf-\$(1)-\$(2) @mkdir -p \$(DEPLOYDIR) @mkdir -p \$(DEPLOYDIR)/debug @\$(foreach dt, \$(if \$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE_\$(1))), \\ - if [ -f \$(BLD_PATH)/\$(1)/\$(2)-\$(dt).${TF_A_SUFFIX} ]; then \\ - cp -f \$(BLD_PATH)/\$(1)/\$(2)-\$(dt).${TF_A_SUFFIX} \$(DEPLOYDIR)/\$(2)-\$(dt)-\$(1).${TF_A_SUFFIX} ; \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/\$(3)-\$(dt).${TF_A_SUFFIX} ]; then \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/\$(3)-\$(dt).${TF_A_SUFFIX} \$(DEPLOYDIR)/\$(3)-\$(dt)-\$(1).${TF_A_SUFFIX} ; \\ if [ "\$(TF_A_ENABLE_DEBUG_WRAPPER)" = "1" ] ; then \\ - stm32wrapper4dbg -s \$(BLD_PATH)/\$(1)/\$(2)-\$(dt).${TF_A_SUFFIX} -d \$(DEPLOYDIR)/debug/debug-\$(2)-\$(dt)-\$(1).${TF_A_SUFFIX} ; \\ + stm32wrapper4dbg -s \$(BLD_PATH)/\$(1)-\$(2)/\$(3)-\$(dt).${TF_A_SUFFIX} -d \$(DEPLOYDIR)/debug/debug-\$(3)-\$(dt)-\$(1).${TF_A_SUFFIX} ; \\ fi ; \\ fi ; \\ - if [ -f \$(BLD_PATH)/\$(1)/${BL32_BASENAME}.${BL32_SUFFIX} ] ; then \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_BASENAME}.${BL32_SUFFIX} ] ; then \\ mkdir -p \$(BL32_DEPLOYDIR) ; \\ - cp -f \$(BLD_PATH)/\$(1)/${BL32_BASENAME}.${BL32_SUFFIX} \$(BL32_DEPLOYDIR)/\$(2)-${BL32_BASENAME}\$(strip \$(foreach soc,${STM32MP_SOC_NAME},\$(if \$(findstring \$(soc),\$(dt)),-\$(soc),))).${BL32_SUFFIX} ; \\ - if [ -f \$(BLD_PATH)/\$(1)/fdts/\$(dt)-${BL32_BASENAME}.${DT_SUFFIX} ]; then \\ - cp -f \$(BLD_PATH)/\$(1)/fdts/\$(dt)-${BL32_BASENAME}.${DT_SUFFIX} \$(BL32_DEPLOYDIR)/ ; \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_BASENAME}.${BL32_SUFFIX} \$(BL32_DEPLOYDIR)/\$(3)-${BL32_BASENAME}-\$(2).${BL32_SUFFIX} ; \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/fdts/\$(dt)-${BL32_BASENAME}.${DT_SUFFIX} ]; then \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/fdts/\$(dt)-${BL32_BASENAME}.${DT_SUFFIX} \$(BL32_DEPLOYDIR)/ ; \\ fi ; \\ - if [ -f \$(BLD_PATH)/\$(1)/${BL32_ELF} ]; then \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_ELF} ]; then \\ mkdir -p \$(BL32_DEPLOYDIR)/debug ; \\ - mv -f \$(BLD_PATH)/\$(1)/${BL32_ELF} \$(BL32_DEPLOYDIR)/debug/\$(2)-${BL32_BASENAME}\$(strip \$(foreach soc,${STM32MP_SOC_NAME},\$(if \$(findstring \$(soc),\$(dt)),-\$(soc),))).${TF_A_ELF_SUFFIX} ; \\ + mv -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_ELF} \$(BL32_DEPLOYDIR)/debug/\$(3)-${BL32_BASENAME}-\$(2).${TF_A_ELF_SUFFIX} ; \\ fi ; \\ fi ; \\ - if [ -f \$(BLD_PATH)/\$(1)/fdts/\$(dt)-${FWCONFIG_NAME}.${DT_SUFFIX} ]; then \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/fdts/\$(dt)-${FWCONFIG_NAME}.${DT_SUFFIX} ]; then \\ mkdir -p \$(FWCONFIG_DEPLOYDIR) ; \\ - cp -f \$(BLD_PATH)/\$(1)/fdts/\$(dt)-${FWCONFIG_NAME}.${DT_SUFFIX} \$(FWCONFIG_DEPLOYDIR)/\$(dt)-${FWCONFIG_NAME}-\$(1).${DT_SUFFIX} ; \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/fdts/\$(dt)-${FWCONFIG_NAME}.${DT_SUFFIX} \$(FWCONFIG_DEPLOYDIR)/\$(dt)-${FWCONFIG_NAME}-\$(1).${DT_SUFFIX} ; \\ fi ; \\ - if [ -f \$(BLD_PATH)/\$(1)/${BL2_ELF} ] ; then \\ - cp -f \$(BLD_PATH)/\$(1)/${BL2_ELF} \$(DEPLOYDIR)/debug/\$(2)-${BL2_BASENAME}-\$(1).${TF_A_ELF_SUFFIX} ; \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/${BL2_ELF} ] ; then \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/${BL2_ELF} \$(DEPLOYDIR)/debug/\$(2)-${BL2_BASENAME}-\$(1).${TF_A_ELF_SUFFIX} ; \\ fi ; \\ - if [ -f \$(BLD_PATH)/\$(1)/${BL32_ELF} ] ; then \\ - cp -f \$(BLD_PATH)/\$(1)/${BL32_ELF} \$(DEPLOYDIR)/debug/\$(2)-${BL32_BASENAME}-\$(1).${TF_A_ELF_SUFFIX} ; \\ + if [ -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_ELF} ] ; then \\ + cp -f \$(BLD_PATH)/\$(1)-\$(2)/${BL32_ELF} \$(DEPLOYDIR)/debug/\$(2)-${BL32_BASENAME}-\$(1).${TF_A_ELF_SUFFIX} ; \\ fi ; \\ ) endef +# Configure overall deploy rules list +deploy-targets := \$(foreach config, \$(TF_A_CONFIG), \$(foreach soc, ${STM32MP_SOC_NAME}, deploy-\$(config)-\$(soc))) + # Set dependencies list for building all -DEPS = \$(addprefix deploy-,\$(TF_A_CONFIG)) +DEPS = \$(deploy-targets) DEPS += fip DEPS += metadata @@ -170,12 +174,16 @@ host_tools: @\$(MAKE) --no-print-directory -C \$(SRC_PATH)/tools/stm32image # Set TF-A make rules -\$(foreach config, \$(TF_A_CONFIG), \$(eval \$(call tf-rules,\$(config),host_tools))) +\$(foreach config, \$(TF_A_CONFIG), \\ + \$(foreach soc, ${STM32MP_SOC_NAME}, \\ + \$(eval \$(call tf-rules,\$(config),\$(soc),host_tools)))) # Set TF-A deploy rules -\$(foreach config, \$(TF_A_CONFIG), \$(eval \$(call deploy-rules,\$(config),\$(if \$(TF_A_BINARY),\$(TF_A_BINARY),\$(TF_A_BINARY_\$(config)))))) +\$(foreach config, \$(TF_A_CONFIG), \\ + \$(foreach soc, ${STM32MP_SOC_NAME}, \\ + \$(eval \$(call deploy-rules,\$(config),\$(soc),\$(if \$(TF_A_BINARY),\$(TF_A_BINARY),\$(TF_A_BINARY_\$(config))))))) -fip: \$(addprefix deploy-,\$(TF_A_CONFIG)) +fip: \$(deploy-targets) for config in \$(TF_A_CONFIG) ; do \\ if [ "\$\$config" = "trusted" ]; then \\ FIP_DEPLOYDIR_TFA=\$(BL32_DEPLOYDIR) FIP_DEPLOYDIR_FWCONF=\$(FWCONFIG_DEPLOYDIR) FIP_DEVICETREE="\$(if \$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE),\$(TF_A_DEVICETREE_trusted))" FIP_CONFIG="trusted" FIP_BL32_CONF="tfa" fiptool-stm32mp ; \\ @@ -185,7 +193,7 @@ fip: \$(addprefix deploy-,\$(TF_A_CONFIG)) fi ; \\ done -stm32: \$(addprefix deploy-,\$(TF_A_CONFIG)) +stm32: \$(deploy-targets) metadata: @mkdir -p \$(DEPLOYDIR) @@ -193,8 +201,10 @@ metadata: clean: @for config in \$(TF_A_CONFIG) ; do \\ - echo "Removing \$(BLD_PATH)/\$\$config ..." ; \\ - rm -rf \$(BLD_PATH)/\$\$config ; \\ + for soc in ${STM32MP_SOC_NAME}; do \\ + echo "Removing \$(BLD_PATH)/\$\$config-\$\$soc ..." ; \\ + rm -rf \$(BLD_PATH)/\$\$config-\$\$soc ; \\ + done ; \\ done @echo "Removing \$(DEPLOYDIR) ..." @rm -rf \$(DEPLOYDIR)