acs: prepare to extend with S-EL0 partitions
Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: Ie73ff1a8ba668699bb2776a26a3d1fe43ee67f31
diff --git a/acs/builder.sh b/acs/builder.sh
index afc44d4..682ceb2 100755
--- a/acs/builder.sh
+++ b/acs/builder.sh
@@ -4,48 +4,71 @@
#
# SPDX-License-Identifier: BSD-3-Clause
#
-# Build ACS test suite.
+set -ex
+
+# Build TF-A project.
+# Argument $1 provides the sp layout file to be used.
+# Argument $2 provides the spmc manifest to be used.
+build_tfa() {
+ local SP_LAYOUT=$1
+ local SPMC_MANIFEST=$2
+
+ echo "Building TF-A."
+ make -C ${WORKSPACE}/trusted-firmware-a \
+ CROSS_COMPILE=aarch64-none-elf- \
+ PLAT=fvp \
+ DEBUG=1 \
+ BL33=${WORKSPACE}/ff-a-acs/build/output/vm1.bin \
+ BL32=${WORKSPACE}/hafnium/out/reference/secure_aem_v8a_fvp_vhe_clang/hafnium.bin \
+ SP_LAYOUT_FILE=${SP_LAYOUT} \
+ ARM_SPMC_MANIFEST_DTS=${SPMC_MANIFEST} \
+ ARM_ARCH_MAJOR=8 \
+ ARM_ARCH_MINOR=5 \
+ BRANCH_PROTECTION=1 \
+ GIC_EXT_INTID=1 \
+ PLAT_TEST_SPM=1 \
+ ENABLE_FEAT_MTE2=1 \
+ SPD=spmd \
+ ARM_BL2_SP_LIST_DTS=${WORKSPACE}/trusted-firmware-a/build/fvp/debug/sp_list_fragment.dts \
+ all fip -j8
+}
+
+# Copy the generated FIP image from TF-A project.
+# Argument $1 contains the output file.
+copy_tfa_fip() {
+ cp ${WORKSPACE}/trusted-firmware-a/build/fvp/debug/fip.bin $1
+}
+
+# Builds the ACS suite, assuming the repo has been setup.
+# Argument $1 contains the exception level for the SPs, which should be 0 or 1.
+build_acs() {
+ cd ${WORKSPACE}/ff-a-acs/build
+ cmake ../ -G"Unix Makefiles" \
+ -DCROSS_COMPILE=aarch64-none-elf- \
+ -DTARGET=tgt_tfa_fvp \
+ -DPLATFORM_FFA_V_ALL=1 \
+ -DPLATFORM_NS_HYPERVISOR_PRESENT=0 \
+ -DPLATFORM_SP_EL=$1 \
+ -DENABLE_BTI=ON \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DSUITE=all
+ make
+}
+
+# Build Hafnium.
+export PATH=${WORKSPACE}/hafnium/prebuilts/linux-x64/dtc:$PATH
+echo "Building Hafnium."
+make -C ${WORKSPACE}/hafnium PLATFORM=secure_aem_v8a_fvp_vhe
+
+# Setup the ACS test suite.
cd ${WORKSPACE}/ff-a-acs
mkdir build
-cd build
-echo "Building ACS test suite."
-cmake ../ -G"Unix Makefiles" \
- -DCROSS_COMPILE=aarch64-none-elf- \
- -DTARGET=tgt_tfa_fvp \
- -DPLATFORM_FFA_V_ALL=1 \
- -DPLATFORM_NS_HYPERVISOR_PRESENT=0 \
- -DPLATFORM_SP_EL=1 \
- -DENABLE_BTI=ON \
- -DCMAKE_BUILD_TYPE=Debug \
- -DSUITE=all
-make
-
-# Build Hafnium
-export PATH=${WORKSPACE}/hafnium/prebuilts/linux-x64/dtc:$PATH
-
-cd ${WORKSPACE}/hafnium
-echo "Building Hafnium."
-make PLATFORM=secure_aem_v8a_fvp_vhe
-
-# Build TF-A
-cd ${WORKSPACE}/trusted-firmware-a
-echo "Building TF-A."
-make CROSS_COMPILE=aarch64-none-elf- PLAT=fvp DEBUG=1 \
- BL33=${WORKSPACE}/ff-a-acs/build/output/vm1.bin \
- BL32=${WORKSPACE}/hafnium/out/reference/secure_aem_v8a_fvp_vhe_clang/hafnium.bin \
- SP_LAYOUT_FILE=${WORKSPACE}/ff-a-acs/platform/manifest/tgt_tfa_fvp/sp_layout.json \
- ARM_SPMC_MANIFEST_DTS=${WORKSPACE}/ff-a-acs/platform/manifest/tgt_tfa_fvp/fvp_spmc_manifest.dts \
- ARM_ARCH_MAJOR=8 \
- ARM_ARCH_MINOR=5 \
- BRANCH_PROTECTION=1 \
- GIC_EXT_INTID=1 \
- PLAT_TEST_SPM=1 \
- ENABLE_FEAT_MTE2=1 \
- SPD=spmd \
- ARM_BL2_SP_LIST_DTS=${WORKSPACE}/trusted-firmware-a/build/fvp/debug/sp_list_fragment.dts \
- all fip -j8
+echo "Building ACS test suite (S-EL1 targets)."
+build_acs 1
+build_tfa ${WORKSPACE}/ff-a-acs/platform/manifest/tgt_tfa_fvp/sp_layout.json ${WORKSPACE}/ff-a-acs/platform/manifest/tgt_tfa_fvp/fvp_spmc_manifest.dts
+copy_tfa_fip ${WORKSPACE}/fip_sp_sel1.bin
echo "Finished building all targets."
cd ${WORKSPACE}