stm-st-stm32mp: fip-stm32mp: add a custom .bbappend to fix the deployment of the final FIP artifact
This commit integrates a custom .bbappend to fix a deployment issue of the final FIP artifact, where the SoC name does not match with the FIP device tree name. https://onedigi.atlassian.net/browse/DEL-9381 Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
parent
ebadb27d60
commit
576c0283f0
|
|
@ -0,0 +1,138 @@
|
|||
#
|
||||
# Copyright (C) 2024, Digi International Inc.
|
||||
#
|
||||
|
||||
# Addons parameters for FIP_WRAPPER
|
||||
FIP_SOC_SEARCH ?= ""
|
||||
FIP_SOC_SEARCH:ccmp2 ?= " stm32mp25 "
|
||||
|
||||
# Deploy the fip binary for current target
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}/${FIP_DIR_FIP}
|
||||
|
||||
unset i
|
||||
for config in ${FIP_CONFIG}; do
|
||||
i=$(expr $i + 1)
|
||||
bl32_conf=$(echo ${FIP_BL32_CONF} | cut -d',' -f${i})
|
||||
dt_config=$(echo ${FIP_DEVICETREE} | cut -d',' -f${i})
|
||||
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
|
||||
# Init soc suffix
|
||||
soc_suffix="${FIP_SOC_SEARCH}"
|
||||
if [ -n "${STM32MP_SOC_NAME}" ]; then
|
||||
for soc in ${STM32MP_SOC_NAME}; do
|
||||
[ "$(echo ${dt} | grep -c ${soc})" -eq 1 ] && soc_suffix="${soc}"
|
||||
done
|
||||
fi
|
||||
encrypt_key=""
|
||||
if [ "${ENCRYPT_ENABLE}" = "1" ]; then
|
||||
encrypt_key="${ENCRYPT_FIP_KEY_PATH_LIST}"
|
||||
if [ -n "${STM32MP_ENCRYPT_SOC_NAME}" ]; then
|
||||
unset k
|
||||
for soc in ${STM32MP_ENCRYPT_SOC_NAME}; do
|
||||
k=$(expr $k + 1)
|
||||
[ "$(echo ${dt} | grep -c ${soc})" -eq 1 ] && encrypt_key=$(echo ${ENCRYPT_FIP_KEY_PATH_LIST} | cut -d',' -f${k})
|
||||
done
|
||||
fi
|
||||
fi
|
||||
# Init FIP bl31 settings
|
||||
FIP_PARAM_BLxx=""
|
||||
# Init FIP extra conf settings
|
||||
if [ "${bl32_conf}" = "${FIP_CONFIG_FW_TFA}" ]; then
|
||||
FIP_PARAM_BLxx="--use-bl32"
|
||||
elif [ "${bl32_conf}" = "${FIP_CONFIG_FW_TEE}" ]; then
|
||||
if [ "${FIP_BL31_ENABLE}" = "1" ]; then
|
||||
FIP_PARAM_BLxx="--use-bl31"
|
||||
if [ "${ENCRYPT_ENABLE}" = "1" ]; then
|
||||
FIP_PARAM_BLxx="--use-bl31 --encrypt $encrypt_key"
|
||||
fi
|
||||
else
|
||||
if [ "${ENCRYPT_ENABLE}" = "1" ]; then
|
||||
FIP_PARAM_BLxx="--encrypt $encrypt_key"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
bbfatal "Wrong configuration '${bl32_conf}' found in FIP_CONFIG for ${config} config."
|
||||
fi
|
||||
FIP_PARAM_SIGN=""
|
||||
if [ "${SIGN_ENABLE}" = "1" ]; then
|
||||
sign_key="${SIGN_KEY_PATH_LIST}"
|
||||
if [ $(echo ${SIGN_KEY_PASS} | wc -w) -gt 1 ]; then
|
||||
sign_single_key_pass=$(echo ${SIGN_KEY_PASS} | cut -d' ' -f1)
|
||||
else
|
||||
sign_single_key_pass="${SIGN_KEY_PASS}"
|
||||
fi
|
||||
if [ -n "${STM32MP_SOC_NAME}" ]; then
|
||||
unset k
|
||||
for soc in ${STM32MP_SOC_NAME}; do
|
||||
k=$(expr $k + 1)
|
||||
[ "$(echo ${dt} | grep -c ${soc})" -eq 1 ] && sign_key=$(echo ${SIGN_KEY_PATH_LIST} | cut -d',' -f${k})
|
||||
done
|
||||
fi
|
||||
FIP_PARAM_SIGN="--sign --signature-key $sign_key --signature-key-pass $sign_single_key_pass"
|
||||
fi
|
||||
|
||||
# Configure storage search
|
||||
STORAGE_SEARCH=""
|
||||
[ -z "${device_conf}" ] || STORAGE_SEARCH="--search-storage ${device_conf}"
|
||||
|
||||
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}"
|
||||
echo "********************************************"
|
||||
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}
|
||||
fi
|
||||
# Configure secondary config search
|
||||
SECOND_CONFSEARCH=""
|
||||
[ -z "${search_conf}" ] || SECOND_CONFSEARCH="--search-secondary-config ${search_conf}"
|
||||
echo "****************************************"
|
||||
bbnote "[fip-utils-stm32mp] FIP command details:\
|
||||
\nFIP_DEPLOYDIR_ROOT=${RECIPE_SYSROOT} \
|
||||
\n${FIP_WRAPPER} \
|
||||
\n${FIP_PARAM_BLxx} \
|
||||
\n${FIP_PARAM_SIGN} \
|
||||
\n${FIP_PARAM_ddr} \
|
||||
\n${STORAGE_SEARCH} \
|
||||
\n${SECOND_CONFSEARCH} \
|
||||
\n--search-configuration ${config} \
|
||||
\n--search-devicetree ${dt} \
|
||||
\n--search-soc-name ${soc_suffix} \
|
||||
\n--output ${DEPLOYDIR}/${FIP_DIR_FIP}"
|
||||
echo "****************************************"
|
||||
FIP_DEPLOYDIR_ROOT="${RECIPE_SYSROOT}" \
|
||||
${FIP_WRAPPER} \
|
||||
${FIP_PARAM_BLxx} \
|
||||
${FIP_PARAM_SIGN} \
|
||||
${FIP_PARAM_ddr} \
|
||||
${STORAGE_SEARCH} \
|
||||
${SECOND_CONFSEARCH} \
|
||||
--search-configuration ${config} \
|
||||
--search-devicetree ${dt} \
|
||||
--search-soc-name ${soc_suffix} \
|
||||
--output ${DEPLOYDIR}/${FIP_DIR_FIP}
|
||||
done
|
||||
done
|
||||
}
|
||||
addtask deploy before do_build after do_compile
|
||||
Loading…
Reference in New Issue