feat(sve): adds a new test for SPM+SVE
Adds a new SPM test to enable testing of SVE-enabled systems.
Adds a new run_config to separate SVE-enabled environment from
fvp-default.
Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: Idd77bb8671cb5ca1d78250b28de62990cb17ff7c
diff --git a/group/spm-l2-boot-tests/fvp-default,fvp-spm-sve,fvp-default-sve:fvp-spm.sve b/group/spm-l2-boot-tests/fvp-default,fvp-spm-sve,fvp-default-sve:fvp-spm.sve
new file mode 100644
index 0000000..aa57540
--- /dev/null
+++ b/group/spm-l2-boot-tests/fvp-default,fvp-spm-sve,fvp-default-sve:fvp-spm.sve
@@ -0,0 +1,5 @@
+#
+# Copyright (c) 2021, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
diff --git a/run_config/fvp-spm.sve b/run_config/fvp-spm.sve
new file mode 100644
index 0000000..54b89ab
--- /dev/null
+++ b/run_config/fvp-spm.sve
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2021, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+ build_fip BL33="$archive/tftf.bin" BL32="$archive/secure_hafnium.bin"
+}
+
+fetch_tf_resource() {
+ # Expect scripts
+ uart="0" file="tftf.exp" track_expect
+ uart="2" file="spm-uart2.exp" track_expect
+
+ payload_type="tftf" gen_fvp_yaml_template
+
+}
+
+post_fetch_tf_resource() {
+ local model="base-aemv8a"
+
+ # SPM(reference implementation of S-EL2 firmware) has SMMUv3 driver
+ # enabled to help with stage-2 translation and virtualization of
+ # upstream peripheral devices. Hence, enable the SMMUv3 IP in FVP
+ # by confuguring the appropriate parameters of the SMMUv3 AEM.
+
+ model="$model" \
+ sve_plugin=1 \
+ arch_version="8.5" \
+ has_smmuv3_params="1" \
+ has_branch_target_exception="1" \
+ restriction_on_speculative_execution="2" \
+ gen_model_params
+
+ model="$model" gen_fvp_yaml
+}
diff --git a/tf_config/fvp-spm-sve b/tf_config/fvp-spm-sve
new file mode 100644
index 0000000..dbe3787
--- /dev/null
+++ b/tf_config/fvp-spm-sve
@@ -0,0 +1,11 @@
+CROSS_COMPILE=aarch64-none-elf-
+PLAT=fvp
+ARM_ARCH_MINOR=5
+BRANCH_PROTECTION=1
+CTX_INCLUDE_EL2_REGS=1
+CTX_INCLUDE_PAUTH_REGS=1
+ENABLE_SVE_FOR_NS=1
+ENABLE_SVE_FOR_SWD=1
+SP_LAYOUT_FILE=${tftf_root}/build/fvp/${bin_mode}/sp_layout.json
+SPD=spmd
+SPMD_SPM_AT_SEL2=1
diff --git a/tftf_config/fvp-default-sve b/tftf_config/fvp-default-sve
new file mode 100644
index 0000000..4482ac8
--- /dev/null
+++ b/tftf_config/fvp-default-sve
@@ -0,0 +1,3 @@
+CROSS_COMPILE=aarch64-none-elf-
+PLAT=fvp
+ARM_ARCH_FEATURE=sve
\ No newline at end of file