However, SCP morello is built purely using cmake and using the main make as in the arm-meta will result in a failed build. You can see that this is done here as well: https://git.morello-project.org/morello/build-scripts/-/blob/morello/mainlin...
So I will keep the overwritten tasks as they are in the SCP case for now.
Pawel
Pawel
On Mon, 16 Jan 2023 at 16:45, Pawel Zalewski pzalewski@thegoodpenguin.co.uk wrote:
The meta-arm tf-a recipe inherits deploy, and explicitly doesn’t inherit nopackages because we want to build packages for license tracking.
Ah I see, I will address this.
+PROVIDES += "virtual/${OUTPUTS_NAME}"
Why?
My own convenience, so I do not need to dig into the bb file when scanning for names.
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.
Noted !
These are in the base recipe.
This is in the base recipe.
Indeed it is and it builds all the bins/blobs, off to the bin.
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 was a hastily executed duct and tape. Thanks for pointing this out, I did realise there is a fiptool-native recently :)
This replaces the default do_deploy in the base recipe which deploys more than just that one dtb.
Indeed, at the time I was only interested in what I actually needed. It shall be scrapped.
(same comments mostly apply for the scp recipe)
Will address them as above for V4, thanks !
Pawel
On Mon, 16 Jan 2023 at 12:43, Ross Burton Ross.Burton@arm.com wrote:
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