@@ -58,8 +58,8 @@ FVP_CONFIG[cluster0.check_memory_attributes] ?= "0"
FVP_CONFIG[cluster1.check_memory_attributes] ?= "0"
FVP_CONFIG[cluster0.stage12_tlb_size] ?= "1024"
FVP_CONFIG[cluster1.stage12_tlb_size] ?= "1024"
-FVP_CONFIG[bp.secureflashloader.fname] ?= "bl1-fvp.bin"
-FVP_CONFIG[bp.flashloader0.fname] ?= "fip-fvp.bin"
+FVP_CONFIG[bp.secureflashloader.fname] ?= "trusted-firmware-a/bl1.bin"
+FVP_CONFIG[bp.flashloader0.fname] ?= "trusted-firmware-a/fip.bin"
FVP_CONFIG[bp.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
# FVP Base default is 8.0, so there is no has_arm_v8-0 for it. However, this is needed for every version after. So set this accordingly
@@ -49,8 +49,8 @@ FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20"
FVP_DATA ?= "css.scp.armcortexm7ct=scp_ramfw.bin@0x0BD80000"
FVP_CONFIG[css.mcp.ROMloader.fname] ?= "mcp_romfw.bin"
FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp_romfw.bin"
-FVP_CONFIG[css.trustedBootROMloader.fname] ?= "bl1-sgi575.bin"
-FVP_CONFIG[board.flashloader0.fname] ?= "fip-sgi575.bin"
+FVP_CONFIG[css.trustedBootROMloader.fname] ?= "trusted-firmware-a/bl1.bin"
+FVP_CONFIG[board.flashloader0.fname] ?= "trusted-firmware-a/fip.bin"
FVP_CONSOLES[default] = "terminal_uart_ap"
FVP_TERMINALS[css.scp.terminal_uart_aon] ?= "SCP Console"
@@ -115,7 +115,7 @@ CAPSULE_INDEXES += "${PAYLOAD_FIP_INDEX} "
CAPSULE_HARDWARE_INSTANCES += "${PAYLOAD_HARDWARE_INSTANCE} "
CAPSULE_MONOTONIC_COUNTS += "${PAYLOAD_MONOTONIC_COUNT} "
CAPSULE_PRIVATE_KEY_PATHS += "${PAYLOAD_PRIVATE_KEY_PATH} "
-UEFI_FIRMWARE_BINARIES += "${DEPLOY_DIR_IMAGE}/signed_fip-corstone1000.bin "
+UEFI_FIRMWARE_BINARIES += "${DEPLOY_DIR_IMAGE}/signed_fip.bin "
CAPSULE_FW_VERSIONS += "${PAYLOAD_FIP_VERSION} "
CAPSULE_LOWEST_SUPPORTED_VERSIONS += "${PAYLOAD_FIP_LOWEST_SUPPORTED_VERSION} "
@@ -155,8 +155,8 @@ CAPSULE_FW_VERSIONS += "${PAYLOAD_DUMMY_END_VERSION}"
CAPSULE_LOWEST_SUPPORTED_VERSIONS += "${PAYLOAD_DUMMY_END_LOWEST_SUPPORTED_VERSION}"
# TF-A settings for signing host images
-TFA_BL2_BINARY = "bl2-corstone1000.bin"
-TFA_FIP_BINARY = "fip-corstone1000.bin"
+TFA_BL2_BINARY = "bl2.bin"
+TFA_FIP_BINARY = "fip.bin"
TFA_BL2_RE_IMAGE_LOAD_ADDRESS = "0x62353000"
TFA_BL2_RE_SIGN_BIN_SIZE = "0x2d000"
TFA_FIP_RE_IMAGE_LOAD_ADDRESS = "0x68130000"
@@ -167,11 +167,11 @@ RE_IMAGE_OFFSET = "0x1000"
do_sign_images() {
# Sign TF-A BL2
- sign_host_image ${RECIPE_SYSROOT}/firmware/${TFA_BL2_BINARY} \
+ sign_host_image ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/${TFA_BL2_BINARY} \
${TFA_BL2_RE_IMAGE_LOAD_ADDRESS} ${TFA_BL2_RE_SIGN_BIN_SIZE}
# Update BL2 in the FIP image
- cp ${RECIPE_SYSROOT}/firmware/${TFA_FIP_BINARY} .
+ cp ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/${TFA_FIP_BINARY} .
fiptool update --tb-fw \
${TFM_IMAGE_SIGN_DEPLOY_DIR}/signed_${TFA_BL2_BINARY} \
${TFM_IMAGE_SIGN_DIR}/${TFA_FIP_BINARY}
@@ -35,10 +35,10 @@ do_compile[noexec] = "1"
# packages for this recipe.
do_install() {
cp -a ${S} ${D}/
- cp -f ${RECIPE_SYSROOT}/firmware/bl1-juno.bin \
+ cp -f ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/bl1.bin \
${D}/${FIRMWARE_DIR}/SOFTWARE/bl1.bin
- cp -f ${RECIPE_SYSROOT}/firmware/fip-juno.bin \
+ cp -f ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/fip.bin \
${D}/${FIRMWARE_DIR}/SOFTWARE/fip.bin
cp -f ${RECIPE_SYSROOT}/firmware/scp_romfw_bypass.bin \
@@ -14,8 +14,8 @@ EDK2_BIN_NAME:sbsa-ref = "SBSA_FLASH0.fd"
do_compile:prepend:sbsa-ref() {
mkdir -p ${B}/Platform/Qemu/Sbsa/
- cp ${RECIPE_SYSROOT}/firmware/bl1.bin ${B}/Platform/Qemu/Sbsa/
- cp ${RECIPE_SYSROOT}/firmware/fip.bin ${B}/Platform/Qemu/Sbsa/
+ cp ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/bl1.bin ${B}/Platform/Qemu/Sbsa/
+ cp ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/fip.bin ${B}/Platform/Qemu/Sbsa/
}
do_install:append:sbsa-ref() {
@@ -22,7 +22,7 @@ part --source rawcopy --size 144k --sourceparams="file=bl2_signed.bin" --offset
part --source rawcopy --size 320k --sourceparams="file=tfm_s_signed.bin" --align 4 --part-name="tfm_primary" --uuid 07F9616C-1233-439C-ACBA-72D75421BF70 --part-type D763C27F-07F6-4FF0-B2F3-060CB465CD4E
# Rawcopy of the FIP binary
-part --source rawcopy --size 2 --sourceparams="file=signed_fip-corstone1000.bin" --align 4 --part-name="FIP_A" --uuid B9C7AC9D-40FF-4675-956B-EEF4DE9DF1C5 --part-type B5EB19BD-CF56-45E8-ABA7-7ADB228FFEA7
+part --source rawcopy --size 2 --sourceparams="file=signed_fip.bin" --align 4 --part-name="FIP_A" --uuid B9C7AC9D-40FF-4675-956B-EEF4DE9DF1C5 --part-type B5EB19BD-CF56-45E8-ABA7-7ADB228FFEA7
# Rawcopy of kernel with initramfs
part --source rawcopy --size 12 --sourceparams="file=Image.gz-initramfs-${MACHINE}.bin" --align 4 --part-name="kernel_primary" --uuid BF7A6142-0662-47FD-9434-6A8811980816 --part-type 8197561D-6124-46FC-921E-141CC5745B05
@@ -2,9 +2,7 @@ DESCRIPTION = "Trusted Firmware-A"
HOMEPAGE = "https://trustedfirmware-a.readthedocs.io/"
LICENSE = "BSD-2-Clause & BSD-3-Clause & MIT & Apache-2.0"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit deploy
+inherit firmware
SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https"
SRCBRANCH = "master"
@@ -17,7 +15,7 @@ SRCREV_FORMAT = "tfa"
COMPATIBLE_MACHINE ?= "invalid"
# Platform must be set for each machine
-TFA_PLATFORM ?= "invalid"
+TFA_PLATFORM ?= "${FIRMWARE_PLATFORM}"
# Some platforms can have multiple board configurations
# Leave empty for default behavior
@@ -38,7 +36,7 @@ TFA_SP_LAYOUT_FILE ?= ""
TFA_ARM_SPMC_MANIFEST_DTS ?= ""
# Build for debug (set TFA_DEBUG to 1 to activate)
-TFA_DEBUG ?= "0"
+TFA_DEBUG ?= "${FIRMWARE_DEBUG_BUILD}"
B = "${WORKDIR}/build"
@@ -180,7 +178,8 @@ do_compile() {
do_compile[cleandirs] = "${B}"
do_install() {
- install -d -m 755 ${D}/firmware
+ install -d -m 755 ${D}${FIRMWARE_DIR}
+
for atfbin in ${TFA_INSTALL_TARGET}; do
processed="0"
if [ "$atfbin" = "all" ]; then
@@ -194,28 +193,25 @@ do_install() {
if [ -f ${BUILD_DIR}/$atfbin.bin ]; then
echo "Install $atfbin.bin"
install -m 0644 ${BUILD_DIR}/$atfbin.bin \
- ${D}/firmware/$atfbin-${TFA_PLATFORM}.bin
- ln -sf $atfbin-${TFA_PLATFORM}.bin ${D}/firmware/$atfbin.bin
+ ${D}${FIRMWARE_DIR}/$atfbin.bin
processed="1"
fi
if [ -f ${BUILD_DIR}/$atfbin/$atfbin.elf ]; then
echo "Install $atfbin.elf"
install -m 0644 ${BUILD_DIR}/$atfbin/$atfbin.elf \
- ${D}/firmware/$atfbin-${TFA_PLATFORM}.elf
- ln -sf $atfbin-${TFA_PLATFORM}.elf ${D}/firmware/$atfbin.elf
+ ${D}${FIRMWARE_DIR}/$atfbin.elf
processed="1"
fi
if [ -f ${BUILD_DIR}/$atfbin ]; then
echo "Install $atfbin"
install -m 0644 ${BUILD_DIR}/$atfbin \
- ${D}/firmware/$atfbin-${TFA_PLATFORM}
- ln -sf $atfbin-${TFA_PLATFORM} ${D}/firmware/$atfbin
+ ${D}${FIRMWARE_DIR}/$atfbin
processed="1"
fi
if [ -f ${BUILD_DIR}/fdts/$atfbin.dtb ]; then
echo "Install $atfbin.dtb"
install -m 0644 "${BUILD_DIR}/fdts/$atfbin.dtb" \
- "${D}/firmware/$atfbin.dtb"
+ "${D}${FIRMWARE_DIR}/$atfbin.dtb"
processed="1"
elif [ "$atfbin" = "dtbs" ]; then
echo "dtbs install, skipped: set dtbs in TFA_INSTALL_TARGET"
@@ -228,21 +224,12 @@ do_install() {
done
}
-FILES:${PN} = "/firmware"
-SYSROOT_DIRS += "/firmware"
-
-FILES:${PN}-dbg = "/firmware/*.elf"
# Skip QA check for relocations in .text of elf binaries
INSANE_SKIP:${PN}-dbg += "textrel"
# Build paths are currently embedded
INSANE_SKIP:${PN} += "buildpaths"
INSANE_SKIP:${PN}-dbg += "buildpaths"
-do_deploy() {
- cp -rf ${D}/firmware/* ${DEPLOYDIR}/
-}
-addtask deploy after do_install
-
CVE_PRODUCT = "arm:arm-trusted-firmware \
arm:trusted_firmware-a \
arm:arm_trusted_firmware \
@@ -63,3 +63,13 @@ do_compile:append:qemuarm-secureboot() {
dd if=${BUILD_DIR}/bl1.bin of=${BUILD_DIR}/flash.bin bs=4096 conv=notrunc
dd if=${BUILD_DIR}/fip.bin of=${BUILD_DIR}/flash.bin seek=64 bs=4096 conv=notrunc
}
+
+do_deploy:append:qemuarm64-secureboot(){
+ # runqemu requires flash.bin to be in the deploy directory
+ ln -srn ${DEPLOYDIR}/${PN}/flash.bin ${DEPLOYDIR}/flash.bin
+}
+
+do_deploy:append:qemuarm-secureboot(){
+ # runqemu requires flash.bin to be in the deploy directory
+ ln -srn ${DEPLOYDIR}/${PN}/flash.bin ${DEPLOYDIR}/flash.bin
+}
Replace inherit deploy with firmware. Initialize TFA_DEBUG using the FIRMWARE_DEBUG_BUILD variable. Initialize TFA_PLATFORM with FIRMWARE_PLATFORM. Refactor do_install to use ${FIRMWARE_DIR} and remove now redundant configuration. Drop the redundant ${TFA_PLATFORM} suffixes. Update BSP conf files to use the new deploy location, including symlinking back to ${DEPLOYDIR} where necessary. Signed-off-by: Peter Hoyes <peter.hoyes@arm.com> --- meta-arm-bsp/conf/machine/fvp-base.conf | 4 +-- meta-arm-bsp/conf/machine/sgi575.conf | 4 +-- .../corstone1000-flash-firmware-image.bb | 10 +++--- .../recipes-bsp/images/firmware-image-juno.bb | 4 +-- .../uefi/edk2-firmware-sbsa-ref.inc | 4 +-- .../wic/corstone1000-flash-firmware.wks.in | 2 +- .../trusted-firmware-a/trusted-firmware-a.inc | 31 ++++++------------- .../trusted-firmware-a_%.bbappend | 10 ++++++ 8 files changed, 33 insertions(+), 36 deletions(-)