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 ]; thenecho "Install $atfbin.bin"install -m 0644 ${BUILD_DIR}/$atfbin.bin ${D}/firmware/tf-$atfbin.binprocessed="1"fiif [ "$processed" = "0" ]; thenif ["$atfbin" != "dtbs" ]; thenbberror "Unsupported TFA_INSTALL_TARGET target $atfbin"exit 1fifi- 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