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?
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.
These are in the base recipe.
This is in the base recipe.
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.
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)
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