Maksims Svecovs | 308bb34 | 2022-06-28 14:27:07 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Copyright (c) 2022 Arm Limited. All rights reserved. |
| 4 | # |
| 5 | # SPDX-License-Identifier: BSD-3-Clause |
| 6 | # |
Maksims Svecovs | 308bb34 | 2022-06-28 14:27:07 +0100 | [diff] [blame] | 7 | |
J-Alves | a00cb20 | 2024-07-09 11:42:45 +0100 | [diff] [blame] | 8 | set -ex |
| 9 | |
| 10 | # Build TF-A project. |
| 11 | # Argument $1 provides the sp layout file to be used. |
| 12 | # Argument $2 provides the spmc manifest to be used. |
| 13 | build_tfa() { |
| 14 | local SP_LAYOUT=$1 |
| 15 | local SPMC_MANIFEST=$2 |
| 16 | |
| 17 | echo "Building TF-A." |
| 18 | make -C ${WORKSPACE}/trusted-firmware-a \ |
| 19 | CROSS_COMPILE=aarch64-none-elf- \ |
| 20 | PLAT=fvp \ |
| 21 | DEBUG=1 \ |
| 22 | BL33=${WORKSPACE}/ff-a-acs/build/output/vm1.bin \ |
| 23 | BL32=${WORKSPACE}/hafnium/out/reference/secure_aem_v8a_fvp_vhe_clang/hafnium.bin \ |
| 24 | SP_LAYOUT_FILE=${SP_LAYOUT} \ |
| 25 | ARM_SPMC_MANIFEST_DTS=${SPMC_MANIFEST} \ |
| 26 | ARM_ARCH_MAJOR=8 \ |
| 27 | ARM_ARCH_MINOR=5 \ |
| 28 | BRANCH_PROTECTION=1 \ |
| 29 | GIC_EXT_INTID=1 \ |
| 30 | PLAT_TEST_SPM=1 \ |
| 31 | ENABLE_FEAT_MTE2=1 \ |
| 32 | SPD=spmd \ |
rahulg-arm | e92be1b | 2025-01-02 16:19:31 +0530 | [diff] [blame] | 33 | ENABLE_SPMD_LP=1\ |
J-Alves | a00cb20 | 2024-07-09 11:42:45 +0100 | [diff] [blame] | 34 | ARM_BL2_SP_LIST_DTS=${WORKSPACE}/trusted-firmware-a/build/fvp/debug/sp_list_fragment.dts \ |
Kathleen Capella | e0c7b99 | 2025-03-06 10:57:58 -0600 | [diff] [blame] | 35 | POETRY= \ |
J-Alves | a00cb20 | 2024-07-09 11:42:45 +0100 | [diff] [blame] | 36 | all fip -j8 |
| 37 | } |
| 38 | |
| 39 | # Copy the generated FIP image from TF-A project. |
| 40 | # Argument $1 contains the output file. |
| 41 | copy_tfa_fip() { |
| 42 | cp ${WORKSPACE}/trusted-firmware-a/build/fvp/debug/fip.bin $1 |
| 43 | } |
| 44 | |
| 45 | # Builds the ACS suite, assuming the repo has been setup. |
| 46 | # Argument $1 contains the exception level for the SPs, which should be 0 or 1. |
| 47 | build_acs() { |
| 48 | cd ${WORKSPACE}/ff-a-acs/build |
| 49 | cmake ../ -G"Unix Makefiles" \ |
| 50 | -DCROSS_COMPILE=aarch64-none-elf- \ |
| 51 | -DTARGET=tgt_tfa_fvp \ |
| 52 | -DPLATFORM_FFA_V_ALL=1 \ |
| 53 | -DPLATFORM_NS_HYPERVISOR_PRESENT=0 \ |
| 54 | -DPLATFORM_SP_EL=$1 \ |
| 55 | -DENABLE_BTI=ON \ |
| 56 | -DCMAKE_BUILD_TYPE=Debug \ |
| 57 | -DSUITE=all |
| 58 | make |
| 59 | } |
| 60 | |
| 61 | # Build Hafnium. |
| 62 | export PATH=${WORKSPACE}/hafnium/prebuilts/linux-x64/dtc:$PATH |
| 63 | echo "Building Hafnium." |
| 64 | make -C ${WORKSPACE}/hafnium PLATFORM=secure_aem_v8a_fvp_vhe |
| 65 | |
| 66 | # Setup the ACS test suite. |
J-Alves | b5b652b | 2024-07-09 12:18:37 +0100 | [diff] [blame] | 67 | pushd ${WORKSPACE}/ff-a-acs |
Maksims Svecovs | 308bb34 | 2022-06-28 14:27:07 +0100 | [diff] [blame] | 68 | mkdir build |
J-Alves | b5b652b | 2024-07-09 12:18:37 +0100 | [diff] [blame] | 69 | popd |
| 70 | |
| 71 | FFA_ACS_MANIFEST_FOLDER=${WORKSPACE}/ff-a-acs/platform/manifest/tgt_tfa_fvp |
J-Alves | aaece90 | 2024-07-09 09:55:28 +0100 | [diff] [blame] | 72 | |
J-Alves | a00cb20 | 2024-07-09 11:42:45 +0100 | [diff] [blame] | 73 | echo "Building ACS test suite (S-EL1 targets)." |
| 74 | build_acs 1 |
rahulg-arm | e92be1b | 2025-01-02 16:19:31 +0530 | [diff] [blame] | 75 | build_tfa ${FFA_ACS_MANIFEST_FOLDER}/sp_layout_v12.json ${FFA_ACS_MANIFEST_FOLDER}/fvp_spmc_manifest.dts |
J-Alves | a00cb20 | 2024-07-09 11:42:45 +0100 | [diff] [blame] | 76 | copy_tfa_fip ${WORKSPACE}/fip_sp_sel1.bin |
Maksims Svecovs | 308bb34 | 2022-06-28 14:27:07 +0100 | [diff] [blame] | 77 | |
J-Alves | b5b652b | 2024-07-09 12:18:37 +0100 | [diff] [blame] | 78 | make -C ${WORKSPACE}/trusted-firmware-a realclean |
| 79 | |
| 80 | # Clean ACS output folder. |
| 81 | pushd ${WORKSPACE}/ff-a-acs |
| 82 | rm -r build/* |
| 83 | popd |
| 84 | |
| 85 | echo "Building ACS test suite (S-EL0 targets)." |
| 86 | build_acs 0 |
rahulg-arm | e92be1b | 2025-01-02 16:19:31 +0530 | [diff] [blame] | 87 | build_tfa ${FFA_ACS_MANIFEST_FOLDER}/sp_layout_el0_v12.json ${FFA_ACS_MANIFEST_FOLDER}/fvp_spmc_manifest_el0.dts |
J-Alves | b5b652b | 2024-07-09 12:18:37 +0100 | [diff] [blame] | 88 | copy_tfa_fip ${WORKSPACE}/fip_sp_sel0.bin |
| 89 | |
Maksims Svecovs | 308bb34 | 2022-06-28 14:27:07 +0100 | [diff] [blame] | 90 | echo "Finished building all targets." |
| 91 | cd ${WORKSPACE} |