From ea5027e6233c5ff101afe3a8260fbbebbf2695d1 Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Mon, 28 Jul 2025 16:43:39 +0200 Subject: [PATCH] stm-st-stm32mp: fip/tf-a: sync .bbappend recipes with ST BSP v25.06.11 release This commit updates the Digi custom .bbappend recipes for FIP and TF-A to align with the latest ST BSP release, based on the openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 tag for Yocto 5.0 (scarthgap). https://onedigi.atlassian.net/browse/DEL-9734 Signed-off-by: Arturo Buzarra --- meta-digi-arm/conf/machine/ccmp13-dvk.conf | 1 + meta-digi-arm/conf/machine/ccmp15-dvk.conf | 1 + meta-digi-arm/conf/machine/include/ccmp1.inc | 7 ++ meta-digi-arm/conf/machine/include/ccmp2.inc | 3 + .../fip-stm32mp/fip-stm32mp.bbappend | 34 +++++---- .../tf-a-stm32mp_2.10.bbappend | 69 ++++++++++--------- 6 files changed, 70 insertions(+), 45 deletions(-) diff --git a/meta-digi-arm/conf/machine/ccmp13-dvk.conf b/meta-digi-arm/conf/machine/ccmp13-dvk.conf index 61668bbd6..268b520f8 100644 --- a/meta-digi-arm/conf/machine/ccmp13-dvk.conf +++ b/meta-digi-arm/conf/machine/ccmp13-dvk.conf @@ -43,6 +43,7 @@ UBOOT_INSTALL_SD_INDEX = "1" STM32MP_DT_FILES_NAND = "ccmp13-dvk-256MB" STM32MP_DT_FILES_SDCARD = "${STM32MP_DT_FILES_NAND}" STM32MP_DT_FILES_USB = "${STM32MP_DT_FILES_NAND}" +STM32MP_DT_FILES_UART = "${STM32MP_DT_FILES_NAND}" # Extra DTB for board - need to specify it with .dtb ... STM32MP_KERNEL_DEVICETREE:ccmp13-dvk += " \ diff --git a/meta-digi-arm/conf/machine/ccmp15-dvk.conf b/meta-digi-arm/conf/machine/ccmp15-dvk.conf index f31c75360..0f89255be 100644 --- a/meta-digi-arm/conf/machine/ccmp15-dvk.conf +++ b/meta-digi-arm/conf/machine/ccmp15-dvk.conf @@ -43,6 +43,7 @@ UBOOT_INSTALL_SD_INDEX = "1" STM32MP_DT_FILES_NAND = "ccmp15-dvk-512MB ccmp15-dvk-1GB" STM32MP_DT_FILES_SDCARD = "${STM32MP_DT_FILES_NAND}" STM32MP_DT_FILES_USB = "${STM32MP_DT_FILES_NAND}" +STM32MP_DT_FILES_UART = "${STM32MP_DT_FILES_NAND}" # Extra DTB for board - need to specify it with .dtb ... STM32MP_KERNEL_DEVICETREE:ccmp15-dvk += " \ diff --git a/meta-digi-arm/conf/machine/include/ccmp1.inc b/meta-digi-arm/conf/machine/include/ccmp1.inc index 9467dfce2..896f1d013 100644 --- a/meta-digi-arm/conf/machine/include/ccmp1.inc +++ b/meta-digi-arm/conf/machine/include/ccmp1.inc @@ -39,6 +39,13 @@ UBOOT_ENV_RANGE ?= "" FIP_SIGN_SUFFIX ?= "${@bb.utils.contains('TRUSTFENCE_SIGN', '1', '_Signed', '', d)}" +# ========================================================================= +# trusted-firmware-a +# ========================================================================= +# Set custom TF-A config +TF_A_CONFIG_ALL += " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', bb.utils.contains('BOOTDEVICE_LABELS', 'usb', 'optee-usb', '', d), '', d)}" +TF_A_CONFIG_ALL += " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', bb.utils.contains('BOOTDEVICE_LABELS', 'uart', 'optee-uart', '', d), '', d)}" + # ========================================================================= # Kernel # ========================================================================= diff --git a/meta-digi-arm/conf/machine/include/ccmp2.inc b/meta-digi-arm/conf/machine/include/ccmp2.inc index c8452ddbf..2b3a582db 100644 --- a/meta-digi-arm/conf/machine/include/ccmp2.inc +++ b/meta-digi-arm/conf/machine/include/ccmp2.inc @@ -32,6 +32,9 @@ UBOOT_DTBO_LOADADDRESS = "0x8a000000" # trusted-firmware-a # ========================================================================= PREFERRED_PROVIDER_virtual/trusted-firmware-a = "tf-a-stm32mp" +# Set custom TF-A config +TF_A_CONFIG_ALL += " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', bb.utils.contains('BOOTDEVICE_LABELS', 'usb', 'optee-usb', '', d), '', d)}" + # Set metadata settings DEVICE_PARTUUID_FIP_A = "1c606ef5-f1ac-43b9-9bb5-d5c578580b6b" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/fip-stm32mp/fip-stm32mp.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/fip-stm32mp/fip-stm32mp.bbappend index a81d717a9..e0746b47a 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/fip-stm32mp/fip-stm32mp.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/fip-stm32mp/fip-stm32mp.bbappend @@ -7,8 +7,8 @@ inherit sign-stm32mp-digi # Add optee-usb FIP configuration STM32MP_DEVICETREE_USB = " ${@' '.join('%s' % dt_file for dt_file in list(dict.fromkeys((d.getVar('STM32MP_DT_FILES_USB') or '').split())))} " -FIP_CONFIG[optee-usb] ?= "optee,${STM32MP_DEVICETREE_USB},default:optee,usb" -FIP_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', bb.utils.contains('BOOTDEVICE_LABELS', 'usb', 'optee-usb', '', d), '', d)}" +FIP_CONFIG[optee-usb] ?= "optee,${STM32MP_DEVICETREE_USB},,default:optee,usb" +FIP_CONFIG_ALL += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', bb.utils.contains('BOOTDEVICE_LABELS', 'usb', 'optee-usb', '', d), '', d)}" # Obtain password to use in FIP generation # Get password from file using the given key index @@ -37,6 +37,8 @@ do_deploy() { i=$(expr $i + 1) bl32_conf=$(echo ${FIP_BL32_CONF} | cut -d',' -f${i}) dt_config=$(echo ${FIP_DEVICETREE} | cut -d',' -f${i}) + dt_suffix=$(echo ${FIP_DEVICETREE_SUFFIX} | cut -d',' -f${i}) + [ "${EXTDT_USE_SUFFIX}" = "1" ] || dt_suffix="" search_conf=$(echo ${FIP_SEARCH_CONF} | cut -d',' -f${i}) device_conf=$(echo ${FIP_DEVICE_CONF} | cut -d',' -f${i}) for dt in ${dt_config}; do @@ -101,21 +103,26 @@ do_deploy() { STORAGE_SEARCH="" [ -z "${device_conf}" ] || STORAGE_SEARCH="--search-storage ${device_conf}" + # Configure devicetree suffix search + DT_SUFFIX_SEARCH="" + [ -z "${dt_suffix}" ] || DT_SUFFIX_SEARCH="--search-devicetree-suffix ${dt_suffix}" + FIP_PARAM_ddr="" if [ -d "${RECIPE_SYSROOT}/${FIP_DIR_TFA_BASE}/${FIP_DIR_FWDDR}" ]; then FIP_PARAM_ddr="--use-ddr" echo "********************************************" bbnote "[fip-utils-stm32mp] FIP DDR command details:\ - FIP_DEPLOYDIR_ROOT=${RECIPE_SYSROOT} \ - ${FIP_WRAPPER} \ - ${FIP_PARAM_BLxx} \ - ${FIP_PARAM_SIGN} \ - ${STORAGE_SEARCH} \ - --use-ddr --generate-only-ddr \ - --search-configuration ${config}\ - --search-devicetree ${dt} \ - --search-soc-name ${soc_suffix} \ - --output ${DEPLOYDIR}/${FIP_DIR_FIP}" + \nFIP_DEPLOYDIR_ROOT=${RECIPE_SYSROOT} \ + \n${FIP_WRAPPER} \ + \n${FIP_PARAM_BLxx} \ + \n${FIP_PARAM_SIGN} \ + \n${STORAGE_SEARCH} \ + \n--use-ddr --generate-only-ddr \ + \n--search-configuration ${config}\ + \n--search-devicetree ${dt} \ + \n${DT_SUFFIX_SEARCH} \ + \n--search-soc-name ${soc_suffix} \ + \n--output ${DEPLOYDIR}/${FIP_DIR_FIP}" echo "********************************************" FIP_DEPLOYDIR_ROOT="${RECIPE_SYSROOT}" \ ${FIP_WRAPPER} \ @@ -125,6 +132,7 @@ do_deploy() { --use-ddr --generate-only-ddr \ --search-configuration ${config}\ --search-devicetree ${dt} \ + ${DT_SUFFIX_SEARCH} \ --search-soc-name ${soc_suffix} \ --output ${DEPLOYDIR}/${FIP_DIR_FIP} fi @@ -142,6 +150,7 @@ do_deploy() { \n${SECOND_CONFSEARCH} \ \n--search-configuration ${config} \ \n--search-devicetree ${dt} \ + \n${DT_SUFFIX_SEARCH} \ \n--search-soc-name ${soc_suffix} \ \n--output ${DEPLOYDIR}/${FIP_DIR_FIP}" echo "****************************************" @@ -154,6 +163,7 @@ do_deploy() { ${SECOND_CONFSEARCH} \ --search-configuration ${config} \ --search-devicetree ${dt} \ + ${DT_SUFFIX_SEARCH} \ --search-soc-name ${soc_suffix} \ --output ${DEPLOYDIR}/${FIP_DIR_FIP} done diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.10.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.10.bbappend index a061dda9d..504dedf23 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.10.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.10.bbappend @@ -36,16 +36,16 @@ TF_A_CONFIG[opteemin-nand] ?= "\ ${TF_A_CONFIG_BASENAME_BIN},\ ${TF_A_CONFIG_MAKE_TARGET},\ ${TF_A_CONFIG_DEPLOY_FTYPE} ${TF_A_CONFIG_DEPLOY_EXTRA}" -# TF_A_CONFIG[uart] (same as 'optee-programmer-uart') -TF_A_CONFIG[uart] ?= "\ - ${STM32MP_DEVICETREE_PROGRAMMER},\ +# TF_A_CONFIG[optee-uart] (same as 'optee-programmer-uart') +TF_A_CONFIG[optee-uart] ?= "\ + ${STM32MP_DT_FILES_UART},\ ${TF_A_CONFIG_OPTS_optee} STM32MP_UART_PROGRAMMER=1,\ ${TF_A_CONFIG_BASENAME_BIN},\ ${TF_A_CONFIG_MAKE_TARGET} ${TF_A_CONFIG_MAKE_EXTRAS},\ ${TF_A_CONFIG_DEPLOY_FTYPE} ${TF_A_CONFIG_DEPLOY_EXTRA}" -# TF_A_CONFIG[usb] (same as 'optee-programmer-uart') -TF_A_CONFIG[usb] ?= "\ - ${STM32MP_DEVICETREE_PROGRAMMER},\ +# TF_A_CONFIG[optee-usb] (same as 'optee-programmer-usb') +TF_A_CONFIG[optee-usb] ?= "\ + ${STM32MP_DT_FILES_USB},\ ${TF_A_CONFIG_OPTS_optee} STM32MP_USB_PROGRAMMER=1,\ ${TF_A_CONFIG_BASENAME_BIN},\ ${TF_A_CONFIG_MAKE_TARGET} ${TF_A_CONFIG_MAKE_EXTRAS},\ @@ -97,6 +97,8 @@ do_compile() { i=$(expr $i + 1) # Initialize devicetree list, extra make options and tf-a basename dt_config=$(echo ${TF_A_DEVICETREE} | cut -d',' -f${i}) + dt_suffix=$(echo ${TF_A_DT_SUFFIX} | cut -d',' -f${i}) + [ "${EXTDT_USE_SUFFIX}" = "1" ] || dt_suffix="" extra_opt=$(echo ${TF_A_EXTRA_OPTFLAGS} | cut -d',' -f${i}) tfa_basename=$(echo ${TF_A_BINARIES} | cut -d',' -f${i}) tf_a_make_target=$(echo ${TF_A_MAKE_TARGET} | cut -d',' -f${i}) @@ -135,19 +137,20 @@ do_compile() { fi done fi - mkdir -p ${B}/${config}${soc_suffix}-${dt} + build_dir="${B}/${config}${soc_suffix}-${dt}${dt_suffix}" + mkdir -p "${build_dir}" if [ "${TF_A_ENABLE_METADATA}" = "1" ]; then - rm -rf "${B}/${config}${soc_suffix}-${dt}/${TF_A_METADATA_NAME}.${TF_A_METADATA_SUFFIX}" + rm -rf "${build_dir}/${TF_A_METADATA_NAME}.${TF_A_METADATA_SUFFIX}" ${TF_A_METADATA_TOOL} ${TF_A_METADATA_TOOL_ARGS} "${B}/${TF_A_METADATA_NAME}.${TF_A_METADATA_SUFFIX}" fi # generate dt to check the content - oe_runmake -C "${S}" BUILD_PLAT="${B}/${config}${soc_suffix}-${dt}" DTB_FILE_NAME="${dt}.dtb" ${extra_opt} ${soc_extra_opt} dtbs + oe_runmake -C "${S}" BUILD_PLAT="${build_dir}" DTB_FILE_NAME="${dt}${dt_suffix}.dtb" ${extra_opt} ${soc_extra_opt} dtbs # check which pmic1l is present on dtb - pcmi1_present=$(${STAGING_BINDIR_NATIVE}/fdtdump ${B}/${config}${soc_suffix}-${dt}/fdts/${dt}-bl2.dtb 2>/dev/null | grep -c "st,stpmic1l" || ${HOSTTOOLS_DIR}/true) - if [ -f "${B}/${config}${soc_suffix}-${dt}/fdts/${dt}-bl2.dtb" ]; then - if [ $pcmi1_present -gt 0 ]; then + if [ -f "${build_dir}/fdts/${dt}${dt_suffix}-bl2.dtb" ]; then + pcmi1_present=$(${STAGING_BINDIR_NATIVE}/fdtdump ${build_dir}/fdts/${dt}${dt_suffix}-bl2.dtb 2>/dev/null | grep -c "st,stpmic1l" || ${HOSTTOOLS_DIR}/true) + if [ "${pcmi1_present}" -gt 0 ]; then # st pmic1l is present, need to force to compilation with specific pcmi1l optionn soc_extra_opt="${soc_extra_opt} STM32MP_STPMIC1L=1" fi @@ -157,9 +160,9 @@ do_compile() { ddr_extra_opt="" if [ "${TF_A_FWDDR}" = "1" ]; then # Detect ddr type if it's present - if [ -f "${B}/${config}${soc_suffix}-${dt}/fdts/${dt}-bl2.dtb" ]; then - ddr_dtb_node=$(${STAGING_BINDIR_NATIVE}/fdtget -l ${B}/${config}${soc_suffix}-${dt}/fdts/${dt}-bl2.dtb /soc | grep ddr | head -n 1) - ddr_propertie=$(${STAGING_BINDIR_NATIVE}/fdtget ${B}/${config}${soc_suffix}-${dt}/fdts/${dt}-bl2.dtb /soc/${ddr_dtb_node} st,mem-name || echo "none") + if [ -f "${build_dir}/fdts/${dt}${dt_suffix}-bl2.dtb" ]; then + ddr_dtb_node=$(${STAGING_BINDIR_NATIVE}/fdtget -l ${build_dir}/fdts/${dt}${dt_suffix}-bl2.dtb /soc | grep ddr | head -n 1) + ddr_propertie=$(${STAGING_BINDIR_NATIVE}/fdtget ${build_dir}/fdts/${dt}${dt_suffix}-bl2.dtb /soc/${ddr_dtb_node} st,mem-name || echo "none") ddr_target="" # potentials value of ddr_propertie: # DDR3 16bits @@ -180,15 +183,15 @@ do_compile() { ddr_target="lpddr4" ;; *) - bbfatal "Missing st,mem-name information for ${dt}" + bbfatal "Missing st,mem-name information for ${dt}${dt_suffix}" ;; esac - bbnote "${dt}: ${tf_a_make_target} -> ${ddr_extra_opt}" + bbnote "${dt}${dt_suffix}: ${tf_a_make_target} -> ${ddr_extra_opt}" # Copy TF-A ddr binary with explicit devicetree filename if [ -s "${FWDDR_DIR}/${ddr_target}_pmu_train.bin" ]; then - install -m 644 "${FWDDR_DIR}/${ddr_target}_pmu_train.bin" "${B}/${config}${soc_suffix}-${dt}/${FWDDR_NAME}-${dt}-${config}.${FWDDR_SUFFIX}" + install -m 644 "${FWDDR_DIR}/${ddr_target}_pmu_train.bin" "${build_dir}/${FWDDR_NAME}-${dt}-${config}.${FWDDR_SUFFIX}" else - bbfatal "Missing ddr firmware file ${ddr_target}_pmu_train.bin for ${dt}" + bbfatal "Missing ddr firmware file ${ddr_target}_pmu_train.bin for ${dt}${dt_suffix}" fi fi fi @@ -212,15 +215,15 @@ do_compile() { encrypt_extra_opt="ENC_KEY=${encrypt_key}" fi - oe_runmake -C "${S}" BUILD_PLAT="${B}/${config}${soc_suffix}-${dt}" DTB_FILE_NAME="${dt}.dtb" ${extra_opt} ${soc_extra_opt} ${ddr_extra_opt} ${encrypt_extra_opt} ${tf_a_make_target} - if [ -f "${B}/${config}${soc_suffix}-${dt}/bl2.bin" ]; then - cp "${B}/${config}${soc_suffix}-${dt}/bl2.bin" "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}.bin" + oe_runmake -C "${S}" BUILD_PLAT="${build_dir}" DTB_FILE_NAME="${dt}${dt_suffix}.dtb" ${extra_opt} ${soc_extra_opt} ${ddr_extra_opt} ${encrypt_extra_opt} ${tf_a_make_target} + if [ -f "${build_dir}/bl2.bin" ]; then + cp "${build_dir}/bl2.bin" "${build_dir}/${tfa_basename}-${dt}-${config}.bin" fi # Copy TF-A binary with explicit devicetree filename - if [ -f "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}.${TF_A_SUFFIX}" ]; then - cp "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}.${TF_A_SUFFIX}" "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" + if [ -f "${build_dir}/${tfa_basename}-${dt}${dt_suffix}.${TF_A_SUFFIX}" ]; then + cp "${build_dir}/${tfa_basename}-${dt}${dt_suffix}.${TF_A_SUFFIX}" "${build_dir}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then - stm32wrapper4dbg -s "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}.${TF_A_SUFFIX}" -d "${B}/${config}${soc_suffix}-${dt}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" + stm32wrapper4dbg -s "${build_dir}/${tfa_basename}-${dt}${dt_suffix}.${TF_A_SUFFIX}" -d "${build_dir}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" fi if [ "${SIGN_ENABLE}" = "1" ]; then @@ -256,8 +259,8 @@ do_compile() { fi # Sign tf-a binary bbnote "${SIGN_TOOL} \ - -bin "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ - -o "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ + -bin "${build_dir}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ + -o "${build_dir}/${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ --password ${SIGN_KEY_PASS} \ --public-key $(ls -1 $(dirname ${sign_key})/publicKey*.pem | tr '\n' '\t') \ --private-key ${sign_key} \ @@ -267,8 +270,8 @@ do_compile() { ${tf_a_encrypt_opts} " ${SIGN_TOOL} \ - -bin "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ - -o "${B}/${config}${soc_suffix}-${dt}/${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ + -bin "${build_dir}/${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ + -o "${build_dir}/${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ --password ${SIGN_KEY_PASS} \ --public-key $(ls -1 $(dirname ${sign_key})/publicKey*.pem | tr '\n' '\t') \ --private-key ${sign_key} \ @@ -278,8 +281,8 @@ do_compile() { ${tf_a_encrypt_opts} if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then bbnote "${SIGN_TOOL} \ - -bin "${B}/${config}${soc_suffix}-${dt}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ - -o "${B}/${config}${soc_suffix}-${dt}/debug-${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ + -bin "${build_dir}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ + -o "${build_dir}/debug-${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ --password ${SIGN_KEY_PASS} \ --public-key $(ls -1 $(dirname ${sign_key})/publicKey*.pem | tr '\n' '\t') \ --private-key "${sign_key}" \ @@ -289,8 +292,8 @@ do_compile() { ${tf_a_encrypt_opts}" ${SIGN_TOOL} \ - -bin "${B}/${config}${soc_suffix}-${dt}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ - -o "${B}/${config}${soc_suffix}-${dt}/debug-${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ + -bin "${build_dir}/debug-${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}" \ + -o "${build_dir}/debug-${tfa_basename}-${dt}-${config}${TF_A_ENCRYPT_SUFFIX}${TF_A_SIGN_SUFFIX}.${TF_A_SUFFIX}" \ --password ${SIGN_KEY_PASS} \ --public-key $(ls -1 $(dirname ${sign_key})/publicKey*.pem | tr '\n' '\t') \ --private-key "${sign_key}" \