feat(trace-ext): Add trace extension test configurations

Added a test configurations to test:
1. Access to trace buffer control registers from TFTF
2. Access to trace filter control registers from TFTF
3. Access to trace system registers from TFTF

Change-Id: I76a64b43a0254553fd0e298786c55ea49c69f5d4
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
diff --git a/group/tf-l2-boot-tests-misc/fvp-aarch32-default,fvp-aarch32-default:fvp-tftf.aarch32-fip.tftf-aemva.aarch32.etm_trace_ext b/group/tf-l2-boot-tests-misc/fvp-aarch32-default,fvp-aarch32-default:fvp-tftf.aarch32-fip.tftf-aemva.aarch32.etm_trace_ext
new file mode 100644
index 0000000..1bbc737
--- /dev/null
+++ b/group/tf-l2-boot-tests-misc/fvp-aarch32-default,fvp-aarch32-default:fvp-tftf.aarch32-fip.tftf-aemva.aarch32.etm_trace_ext
@@ -0,0 +1,5 @@
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
diff --git a/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.ete_trace_ext b/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.ete_trace_ext
new file mode 100644
index 0000000..1bbc737
--- /dev/null
+++ b/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.ete_trace_ext
@@ -0,0 +1,5 @@
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
diff --git a/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.etm_trace_ext b/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.etm_trace_ext
new file mode 100644
index 0000000..1bbc737
--- /dev/null
+++ b/group/tf-l2-boot-tests-misc/fvp-default,fvp-default:fvp-tftf-fip.tftf-aemva.etm_trace_ext
@@ -0,0 +1,5 @@
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
diff --git a/model/base-aemva-common.sh b/model/base-aemva-common.sh
index a0fc23a..26aecfc 100644
--- a/model/base-aemva-common.sh
+++ b/model/base-aemva-common.sh
@@ -67,6 +67,18 @@
 # is multi-threading compatible
 reset_var supports_multi_threading
 
+# ETM plugin to access ETM trace system registers
+reset_var etm_plugin
+
+# ETE plugin to access ETE trace system registers
+reset_var ete_plugin
+
+# Trace filter register support
+reset_var supports_trace_filter_regs
+
+# Trace buffer control register support
+reset_var supports_trace_buffer_control_regs
+
 source "$ci_root/model/fvp_common.sh"
 
 #------------ Common configuration --------------
@@ -89,6 +101,9 @@
 
 ${nvcounter_version+-C bp.trusted_nv_counter.version=$nvcounter_version}
 ${nvcounter_diag+-C bp.trusted_nv_counter.diagnostics=$nvcounter_diag}
+
+${etm_plugin+--plugin=$etm_plugin_path}
+${ete_plugin+--plugin=$ete_plugin_path}
 EOF
 
 # TFTF Reboot/Shutdown tests
@@ -154,6 +169,8 @@
 ${etm_present+-C cluster0.cpu1.etm-present=$etm_present}
 ${etm_present+-C cluster0.cpu2.etm-present=$etm_present}
 ${etm_present+-C cluster0.cpu3.etm-present=$etm_present}
+${supports_trace_filter_regs+-C cluster0.has_self_hosted_trace_extension=$supports_trace_filter_regs}
+${supports_trace_buffer_control_regs+-C cluster0.has_trbe=$supports_trace_buffer_control_regs}
 
 EOF
 
@@ -262,6 +279,8 @@
 ${etm_present+-C cluster1.cpu1.etm-present=$etm_present}
 ${etm_present+-C cluster1.cpu2.etm-present=$etm_present}
 ${etm_present+-C cluster1.cpu3.etm-present=$etm_present}
+${supports_system_trace_filter_regs+-C cluster1.has_self_hosted_trace_extension=$supports_system_trace_filter_regs}
+${supports_trace_buffer_control_regs+-C cluster1.has_trbe=$supports_trace_buffer_control_regs}
 
 EOF
 
diff --git a/model/base-aemva.sh b/model/base-aemva.sh
index 2e681f2..6a5e956 100644
--- a/model/base-aemva.sh
+++ b/model/base-aemva.sh
@@ -9,6 +9,10 @@
 
 default_var sve_plugin_path "$warehouse/SysGen/PVModelLib/$model_version/$model_build/external/plugins/$model_flavour/sve2-HEAD/ScalableVectorExtension.so"
 
+default_var etm_plugin_path "$warehouse/SysGen/PVModelLib/$model_version/$model_build/external/plugins/$model_flavour/ETMv4ExamplePlugin.so"
+
+default_var ete_plugin_path "$warehouse/SysGen/ETE/0.0/79/external/lib/Linux64_GCC-6.4/libete-plugin.so"
+
 default_var is_dual_cluster 0
 
 source "$ci_root/model/base-aemva-common.sh"
diff --git a/run_config/fvp-aemva.aarch32.etm_trace_ext b/run_config/fvp-aemva.aarch32.etm_trace_ext
new file mode 100644
index 0000000..3c25591
--- /dev/null
+++ b/run_config/fvp-aemva.aarch32.etm_trace_ext
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	local model="base-aemva"
+
+	aarch32="1" \
+	etm_present="1" \
+	etm_plugin="1" \
+	supports_trace_filter_regs="2" \
+	model="$model" gen_model_params
+
+	model="$model" gen_fvp_yaml
+}
diff --git a/run_config/fvp-aemva.ete_trace_ext b/run_config/fvp-aemva.ete_trace_ext
new file mode 100644
index 0000000..a910998
--- /dev/null
+++ b/run_config/fvp-aemva.ete_trace_ext
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	local model="base-aemva"
+
+	model_version="0.0" \
+	model_build="6684" \
+	etm_present="1" \
+	ete_plugin="1" \
+	supports_trace_buffer_control_regs="1" \
+	supports_trace_filter_regs="2" \
+	model="$model" gen_model_params
+
+	model="$model" gen_fvp_yaml
+}
diff --git a/run_config/fvp-aemva.etm_trace_ext b/run_config/fvp-aemva.etm_trace_ext
new file mode 100644
index 0000000..64e03c5
--- /dev/null
+++ b/run_config/fvp-aemva.etm_trace_ext
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	local model="base-aemva"
+
+	etm_present="1" \
+	etm_plugin="1" \
+	supports_trace_buffer_control_regs="1" \
+	supports_trace_filter_regs="2" \
+	model="$model" gen_model_params
+
+	model="$model" gen_fvp_yaml
+}