RSE: Add TC4 jobs

Add TC4 jobs as a copy of TC3.

Change-Id: I35cd975780a445c4645f31ba32a7d7b88f0b595a
Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
diff --git a/lava_helper/jinja2_templates/fvp_rse_tc4.jinja2 b/lava_helper/jinja2_templates/fvp_rse_tc4.jinja2
new file mode 100644
index 0000000..0ca7814
--- /dev/null
+++ b/lava_helper/jinja2_templates/fvp_rse_tc4.jinja2
@@ -0,0 +1,72 @@
+{#------------------------------------------------------------------------------
+# Copyright (c) 2018-2025, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-----------------------------------------------------------------------------#}
+{% extends 'jinja2_templates/base.jinja2' %}
+{% block metadata %}
+{{ super() }}
+{% endblock %}
+{% block base %}
+{{ super() }}
+{% endblock %}
+{% block actions %}
+context:
+  kernel_start_message: ''
+
+actions:
+- deploy:
+    to: fvp
+    images:
+{% for name, img in binaries.items() %}
+      {{ name }}:
+        url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
+- boot:
+    failure_retry: 3
+    method: fvp
+    docker:
+      name: {{ docker_prefix }}/fvp:fvp_tc4_0.0_8404
+      local: true
+    prompts:
+    - 'root@lava '
+    image: /opt/model/FVP_TC4/models/Linux64_GCC-9.3/FVP_TC4
+    timeout:
+      minutes: 10
+    console_string: 'rse_terminal_uart: Listening for serial connection on port (?P<PORT>\d+)'
+    license_variable: '{{ license_variable }}'
+    use_telnet: True
+    arguments:
+    -  "--simlimit 900"
+    -  "-C css.sms.rse.rom.raw_image={ROM}"
+    -  "--data css.sms.rse.sram0={CM_PROVISIONING_BUNDLE}@0x400"
+    -  "--data css.sms.rse.sram1={DM_PROVISIONING_BUNDLE}@0x0"
+    -  "-C board.flashloader0.fname={FLASH}"
+    -  "-C displayController=2"
+    -  "-C css.sms.rse.sic.SIC_AUTH_ENABLE=1"
+    -  "-C css.sms.rse.sic.SIC_DECRYPT_ENABLE=1"
+    -  "-C css.sms.rse.VMADDRWIDTH=16"
+    -  "-C css.sms.rse.intchecker.ICBC_RESET_VALUE=0x0000011B"
+    -  "-C soc.pl011_uart1.shutdown_on_eot=1"
+    -  "-C disable_visualisation=1"
+
+    prompts:
+    - '(.*)'
+
+- test:
+    monitors:
+    {%- for monitor in monitors %}
+    - name: "{{monitor.name}}"
+      start: "{{monitor.start}}"
+      end: "{{monitor.end}}"
+      pattern: "{{monitor.pattern}}"
+      fixupdict:
+         '{{monitor.fixup.pass}}': pass
+         '{{monitor.fixup.fail}}': fail
+         {%- if monitor.fixup.skip %}
+         '{{monitor.fixup.skip}}': skip
+         {%- endif %}
+    {%- endfor %}
+
+{% endblock %}
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index 6d7264e..65b7aa0 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -360,6 +360,36 @@
     }
 }
 
+# RSE on TC4 FVP
+fvp_rse_tc4 = {
+    "templ": "fvp_rse_tc4.jinja2",
+    "job_name": "fvp_rse_tc4",
+    "device_type": "fvp",
+    "job_timeout": 15,
+    "action_timeout": 10,
+    "monitor_timeout": 15,
+    "poweroff_timeout": 1,
+    "platforms": {"arm/rse/tc/tc4": ""},
+    "binaries": {
+        "rom": {
+            "data": "spe/bin/rom.bin"
+        },
+        "cm_provisioning_bundle": {
+            "data": "spe/bin/encrypted_cm_provisioning_bundle_0.bin"
+        },
+        "dm_provisioning_bundle": {
+            "data": "spe/bin/encrypted_dm_provisioning_bundle_0.bin"
+        },
+        "flash": {
+            "data": "spe/bin/host_flash.bin"
+        }
+    },
+    "monitors": {
+        'no_reg_tests': no_reg_tests_monitors,
+        'reg_tests': reg_tests_monitors,
+    }
+}
+
 # QEMU for AN521 with BL2 bootloader
 qemu_mps2_bl2 = {
     "templ": "qemu_mps2_bl2.jinja2",
@@ -532,6 +562,7 @@
     "fvp_mps4_cs320_bl1_bl2": fvp_mps4_cs320_bl1_bl2,
     "fvp_corstone1000": fvp_corstone1000,
     "fvp_rse_tc3": fvp_rse_tc3,
+    "fvp_rse_tc4": fvp_rse_tc4,
     "qemu_mps2_bl2": qemu_mps2_bl2,
     "musca_b1": musca_b1_bl2,
     "stm32l562e_dk": stm32l562e_dk,