ci: add tftf handoff w/ RESET_TO_BL31 test

Change-Id: Ib8a8cd867281b0f885c92884435c06d8ec17d3fe
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
diff --git a/fvp_utils.sh b/fvp_utils.sh
index 03d1d2c..f013fe0 100644
--- a/fvp_utils.sh
+++ b/fvp_utils.sh
@@ -329,6 +329,7 @@
         [spm]="spm.bin"
         [tc_fitimage]="tc_fitimage.bin"
         [tftf]="tftf.bin"
+        [tl]="tl.bin"
         [tmp]="tmp.bin"
         [uboot]="uboot.bin"
     )
@@ -379,6 +380,7 @@
         [spm]="$(gen_bin_url spm.bin)"
         [tc_fitimage]="$(gen_bin_url tc_fitimage.bin)"
         [tftf]="$(gen_bin_url tftf.bin)"
+        [tl]="$(gen_bin_url tl.bin)"
         [tmp]="$(gen_bin_url tmp.bin)"
         [uboot]="$(gen_bin_url uboot.bin)"
     )
@@ -434,6 +436,7 @@
         ["[= ]spm.bin"]="={SPM}"
         ["[= ]tc_fitimage.bin"]="={TC_FITIMAGE}"
         ["[= ]tftf.bin"]="={TFTF}"
+        ["[= ]tl.bin"]="={TL}"
         ["[= ].*/tmp.bin"]="={TMP}"
         ["[= ]uboot.bin"]="={UBOOT}"
     )
diff --git a/group/tftf-l2-fvp/fvp-aarch64-handoff-rst-bl31,fvp-aarch64-handoff:fvp-tftf.rst31-aemv8a.rst31.tftf.handoff b/group/tftf-l2-fvp/fvp-aarch64-handoff-rst-bl31,fvp-aarch64-handoff:fvp-tftf.rst31-aemv8a.rst31.tftf.handoff
new file mode 100644
index 0000000..747e74e
--- /dev/null
+++ b/group/tftf-l2-fvp/fvp-aarch64-handoff-rst-bl31,fvp-aarch64-handoff:fvp-tftf.rst31-aemv8a.rst31.tftf.handoff
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2024 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+    make -C "$tf_root/tools/tlc" install
+}
diff --git a/run_config/fvp-aemv8a.rst31.tftf.handoff b/run_config/fvp-aemv8a.rst31.tftf.handoff
new file mode 100644
index 0000000..0c729a7
--- /dev/null
+++ b/run_config/fvp-aemv8a.rst31.tftf.handoff
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2024, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+generate_lava_job() {
+	local model="base-aemv8a"
+
+	model="$model" \
+		preload_bl33_bin="tftf.bin" \
+		preload_bl33="1" \
+		dtb_bin="tl.bin" \
+		dtb_addr="0x87ffb000" \
+		reset_to_bl31="1" \
+		gen_model_params
+
+	model="$model" gen_fvp_yaml
+}
diff --git a/run_config/fvp-tftf.rst31 b/run_config/fvp-tftf.rst31
new file mode 100644
index 0000000..ebab4fb
--- /dev/null
+++ b/run_config/fvp-tftf.rst31
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2024, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+generate_lava_job_template() {
+	uart="0" set_expect_variable "skip_early_boot_msgs" "1"
+
+	uart="0" file="tftf.exp" track_expect
+	uart="1" file="hold_uart.exp" track_expect
+
+	payload_type="tftf" gen_yaml_template
+}
diff --git a/tf_config/fvp-aarch64-handoff-rst-bl31 b/tf_config/fvp-aarch64-handoff-rst-bl31
new file mode 100644
index 0000000..4544f9c
--- /dev/null
+++ b/tf_config/fvp-aarch64-handoff-rst-bl31
@@ -0,0 +1,4 @@
+CROSS_COMPILE=aarch64-none-elf-
+PLAT=fvp
+RESET_TO_BL31=1
+TRANSFER_LIST=1