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/build_helper/build_helper_config_maps.py b/build_helper/build_helper_config_maps.py
index ca7670a..3bce28f 100644
--- a/build_helper/build_helper_config_maps.py
+++ b/build_helper/build_helper_config_maps.py
@@ -27,6 +27,7 @@
     "arm/mps4/corstone320"               : "corstone320",
     "arm/mps3/corstone310/fvp"           : "corstone310",
     "arm/rse/tc/tc3"                     : "RSE_TC3",
+    "arm/rse/tc/tc4"                     : "RSE_TC4",
     "arm/rse/neoverse_rd/rdv3"           : "RSE_RDV3",
     "arm/rse/automotive_rd/rd1ae"        : "RSE_RD1AE",
     "cypress/psoc64"                     : "psoc64",
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index c5bd3a1..9beaad6 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -138,6 +138,30 @@
                                    "--align 8192 --rse-sic-tables-ns %(ci_build_root_dir)s/nspe/bin/tfm_ns_sic_tables_signed.bin "
                                    "--out %(ci_build_root_dir)s/spe/bin/host_flash.bin "
                                    "fip.bin"),
+                    "arm/rse/tc/tc4": ("if [ -f \"%(ci_build_root_dir)s/spe/bin/rse_bl1_tests.bin\" ]; then "
+                                   "srec_cat "
+                                   "%(ci_build_root_dir)s/spe/bin/bl1_1.bin -Binary -offset 0x0 "
+                                   "%(ci_build_root_dir)s/spe/bin/rse_bl1_tests.bin -Binary -offset 0x10000 "
+                                   "%(ci_build_root_dir)s/spe/bin/rom_dma_ics.bin -Binary -offset 0x1F000 "
+                                   "-o %(ci_build_root_dir)s/spe/bin/rom.bin -Binary;"
+                                   "else "
+                                   "srec_cat "
+                                   "%(ci_build_root_dir)s/spe/bin/bl1_1.bin -Binary -offset 0x0 "
+                                   "%(ci_build_root_dir)s/spe/bin/rom_dma_ics.bin -Binary -offset 0x1F000 "
+                                   "-o %(ci_build_root_dir)s/spe/bin/rom.bin -Binary;"
+                                   "fi;"
+                                   # fiptool in tc3 directory also compatible with tc4 fip.bin
+                                   "curl --fail --no-progress-meter --connect-timeout 10 --retry 6 -LS -o fiptool https://downloads.trustedfirmware.org/tf-m/rse/tc/tc3/fiptool;"
+                                   "chmod 755 fiptool;"
+                                   "curl --fail --no-progress-meter --connect-timeout 10 --retry 6 -LS -o fip.bin https://downloads.trustedfirmware.org/tf-m/rse/tc/tc4/4806a3a08/fip.bin;"
+                                   "./fiptool update "
+                                   "--align 8192 --rse-bl2 %(ci_build_root_dir)s/spe/bin/bl2_signed.bin "
+                                   "--align 8192 --rse-s %(ci_build_root_dir)s/spe/bin/tfm_s_encrypted.bin "
+                                   "--align 8192 --rse-ns %(ci_build_root_dir)s/nspe/bin/tfm_ns_encrypted.bin "
+                                   "--align 8192 --rse-sic-tables-s %(ci_build_root_dir)s/spe/bin/tfm_s_sic_tables_signed.bin "
+                                   "--align 8192 --rse-sic-tables-ns %(ci_build_root_dir)s/nspe/bin/tfm_ns_sic_tables_signed.bin "
+                                   "--out %(ci_build_root_dir)s/spe/bin/host_flash.bin "
+                                   "fip.bin"),
                    "stm/stm32l562e_dk": ("echo 'STM32L562E-DK board post process';"
                                           "%(ci_build_root_dir)s/spe/api_ns/postbuild.sh;"
                                           "pushd %(ci_build_root_dir)s/spe/api_ns;"
@@ -237,6 +261,11 @@
                            "%(ci_build_root_dir)s/spe/bin/rom.bin",
                            "%(ci_build_root_dir)s/spe/bin/encrypted_cm_provisioning_bundle_0.bin",
                            "%(ci_build_root_dir)s/spe/bin/encrypted_dm_provisioning_bundle_0.bin",
+                           "%(ci_build_root_dir)s/spe/bin/host_flash.bin"],
+                           "arm/rse/tc/tc4": [
+                           "%(ci_build_root_dir)s/spe/bin/rom.bin",
+                           "%(ci_build_root_dir)s/spe/bin/encrypted_cm_provisioning_bundle_0.bin",
+                           "%(ci_build_root_dir)s/spe/bin/encrypted_dm_provisioning_bundle_0.bin",
                            "%(ci_build_root_dir)s/spe/bin/host_flash.bin"]
                            }
 }
@@ -366,6 +395,15 @@
                     # RSE_TC3_GCC_2_Release_BL2_ATTESTATION_SCHEME_CCA
                     ("arm/rse/tc/tc3", "GCC_10_3", "2",
                      "OFF", "OFF", "Release", True, "", "ATTESTATION_SCHEME_CCA"),
+                    # RSE_TC4_GCC_3_RegS_RegNS_Release_BL2_ATTESTATION_SCHEME_DPE
+                    ("arm/rse/tc/tc4", "GCC_10_3", "3",
+                     "RegS, RegNS", "OFF", "Release", True, "", "ATTESTATION_SCHEME_DPE"),
+                    # RSE_TC4_GCC_2_RegBL1_1_Debug_BL2
+                    ("arm/rse/tc/tc4", "GCC_10_3", "2",
+                     "RegBL1_1", "OFF", "Debug", True, "", ""),
+                    # RSE_TC4_GCC_2_Release_BL2_ATTESTATION_SCHEME_CCA
+                    ("arm/rse/tc/tc4", "GCC_10_3", "2",
+                     "OFF", "OFF", "Release", True, "", "ATTESTATION_SCHEME_CCA"),
                     # RSE_RDV3_GCC_2_Release_BL2_NSOFF_CFG0
                     ("arm/rse/neoverse_rd/rdv3", "GCC_10_3", "2",
                      "OFF", "OFF", "Release", True, "", "NSOFF, CFG0"),
@@ -960,6 +998,25 @@
                 ]
                 }
 
+config_rse_tc4 = {"seed_params": {
+                "tfm_platform":     ["arm/rse/tc/tc4"],
+                "compiler":         ["GCC_10_3"],
+                "isolation_level":  ["1", "2", "3"],
+                "test_regression":  ["OFF", "RegS, RegNS"],
+                "test_psa_api":     ["OFF"],
+                "cmake_build_type": ["Debug", "Release"],
+                "with_bl2":         [True],
+                "profile":          [""],
+                "extra_params":     ["ATTESTATION_SCHEME_DPE"]
+                },
+                "common_params": _common_tfm_builder_cfg,
+                "invalid": _common_tfm_invalid_configs + [
+                    # BL2 is too large for RSE in Debug builds with tests
+                    ("arm/rse/tc/tc4", "GCC_10_3", "*", "RegBL2, RegS, RegNS", "*",
+                     "Debug", True, "*", "*"),
+                ]
+                }
+
 config_rse_rdv3 = {"seed_params": {
                 "tfm_platform":     ["arm/rse/neoverse_rd/rdv3"],
                 "compiler":         ["GCC_10_3"],
@@ -1309,6 +1366,7 @@
                     "nightly_corstone320": config_corstone320,
                     "nightly_corstone1000": config_corstone1000,
                     "nightly_rse_tc3": config_rse_tc3,
+                    "nightly_rse_tc4": config_rse_tc4,
                     "nightly_rse_rdv3": config_rse_rdv3,
                     "nightly_rse_rd1ae": config_rse_rd1ae,
                     "nightly_psoc64": config_psoc64,
@@ -1337,6 +1395,7 @@
                     "release_corstone315": config_corstone315,
                     "release_corstone320": config_corstone320,
                     "release_rse_tc3": config_rse_tc3,
+                    "release_rse_tc4": config_rse_tc4,
                     "release_rse_rdv3": config_rse_rdv3,
                     "release_rse_rd1ae": config_rse_rd1ae,
                     "release_psoc64": config_psoc64,
@@ -1372,6 +1431,7 @@
                     "corstone315": config_corstone315,
                     "corstone320": config_corstone320,
                     "rse_tc3": config_rse_tc3,
+                    "rse_tc4": config_rse_tc4,
                     "rse_rdv3": config_rse_rdv3,
                     "rse_rd1ae": config_rse_rd1ae,
                     "cypress_psoc64": config_psoc64,