On 13 Jan 2023, at 16:50, Pawel Zalewski pzalewski@thegoodpenguin.co.uk wrote:
+++ b/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.%.bbappend
For a bbappend this is quite invasive.
+inherit deploy nopackages llvm-morello-native
The meta-arm tf-a recipe inherits deploy, and explicitly doesn’t inherit nopackages because we want to build packages for license tracking.
+PROVIDES += "virtual/${OUTPUTS_NAME}"
Why?
+SRCREV = "${AUTOREV}"
Best practise is to never commit code that uses AUTOREV. You can override it locally, or have an opt-in inc file which does it for everything, but setting a SHA that is known to work means that builds work day-to-day.
+B = "${WORKDIR}/build" +S = "${WORKDIR}/git"
These are in the base recipe.
+do_install() {
- install -d -m 755 ${D}/firmware
- for atfbin in ${TFA_INSTALL_TARGET}; do
processed="0"
if [ -f ${BUILD_DIR}/$atfbin.bin ]; then
echo "Install $atfbin.bin"
install -m 0644 ${BUILD_DIR}/$atfbin.bin ${D}/firmware/tf-$atfbin.bin
processed="1"
fi
if [ "$processed" = "0" ]; then
if ["$atfbin" != "dtbs" ]; then
bberror "Unsupported TFA_INSTALL_TARGET target $atfbin"
exit 1
fi
fi
- done
This is in the base recipe.
- install -m 0644 "${BUILD_DIR}/fdts/morello-soc.dtb" "${D}/firmware/morello-soc.dtb"
- install -m 0644 "${BUILD_DIR}/fdts/morello_fw_config.dtb" "${D}/firmware/morello_fw_config.dtb"
- install -m 0644 "${BUILD_DIR}/fdts/morello_tb_fw_config.dtb" "${D}/firmware/morello_tb_fw_config.dtb"
- install -m 0644 "${BUILD_DIR}/fdts/morello_nt_fw_config.dtb" "${D}/firmware/morello_nt_fw_config.dtb"
- install -m 0644 ${S}/plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem "${D}/firmware/"arm_rotprivk_rsa.pem
- export CC=gcc
- export LD=ld
- make -C ${S}/tools/fiptool OPENSSL_DIR=${STAGING_DIR_NATIVE}/${prefix_native} PLAT=${TFA_PLATFORM}
- make -C ${S}/tools/cert_create OPENSSL_DIR=${STAGING_DIR_NATIVE}/${prefix_native} PLAT=${TFA_PLATFORM}
- install -m 0744 ${S}/tools/fiptool/fiptool "${D}/firmware/"fiptool
- install -m 0744 ${S}/tools/cert_create/cert_create "${D}/firmware/"cert_create
Why are you installing native tools into the staging directory? A native fiptool is already in fiptool-native and that recipe can be extended to also build cert_create if needed.
+do_deploy() {
- install -d ${DEPLOYDIR}/${OUTPUTS_NAME}
- cp -rf ${D}/firmware/morello-soc.dtb ${DEPLOYDIR}/${OUTPUTS_NAME}/morello-soc.dtb
+} +addtask deploy after do_install before do_build
This replaces the default do_deploy in the base recipe which deploys more than just that one dtb.
(same comments mostly apply for the scp recipe)
Ross