Add support for Hafnium code coverage

Signed-off-by: Saul Romero <saul.romero@arm.com>
Change-Id: I79504f7a9a17cad04fb345528cfedff8775dc163
diff --git a/job/tf-worker/run_fvp_test.sh b/job/tf-worker/run_fvp_test.sh
index b68f2e0..c402036 100755
--- a/job/tf-worker/run_fvp_test.sh
+++ b/job/tf-worker/run_fvp_test.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 #
-# Copyright (c) 2019-2022, Arm Limited. All rights reserved.
+# Copyright (c) 2019-2023, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -35,6 +35,9 @@
 		READELF="$(which 'arm-none-eabi-readelf')"
 		FALLBACK_PLUGIN_URL="http://files.oss.arm.com/downloads/tf-a/coverage-plugin"
 		FALLBACK_FILES="CoverageTrace.so,CoverageTrace.o,PluginUtils.o"
+	elif [[ "$TEST_GROUP" == spm* ]];then
+			PROJECT="HAFNIUM"
+			LIST_OF_BINARIES="secure_hafnium.elf hafnium.elf"
 	elif [[ "$TEST_GROUP" == tf* ]];then
 		PROJECT="TF-A"
 		LIST_OF_BINARIES="bl1.elf bl2.elf bl31.elf"
diff --git a/model/fvp_common.sh b/model/fvp_common.sh
index 399ee47..14ce8b8 100644
--- a/model/fvp_common.sh
+++ b/model/fvp_common.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2019-2022, Arm Limited. All rights reserved.
+# Copyright (c) 2019-2023, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -118,7 +118,7 @@
 # runs, so that FVP trace log was properly dumped (and parsed by LAVA).
 # Don't use it for other OpenCI runs, as it may lead to race condition
 # with LAVA's capturing of FVP output.
-if echo "$RUN_CONFIG" | grep -iq 'tftf'; then
+if echo "$RUN_CONFIG" | grep -Eiq 'tftf|spm'; then
     is_arm_env=0
     if is_arm_jenkins_env; then
         is_arm_env=1
diff --git a/script/gen_merge_report.sh b/script/gen_merge_report.sh
index 6045a3b..4cd4f67 100644
--- a/script/gen_merge_report.sh
+++ b/script/gen_merge_report.sh
@@ -196,6 +196,9 @@
     tf*)
             project="trusted_firmware"
             jenkins_archive_folder=merge/outdir;;
+    spm*)
+            project="hafnium"
+            jenkins_archive_folder=merge/outdir;;
     *)
             exit 0;;
 esac
diff --git a/script/qa-code-coverage.sh b/script/qa-code-coverage.sh
index 95b79f8..95cc32f 100644
--- a/script/qa-code-coverage.sh
+++ b/script/qa-code-coverage.sh
@@ -171,6 +171,25 @@
                   }
               ]
 EOM
+elif [ "$PROJECT" = "HAFNIUM" ]; then
+      read -r -d '' scm_sources << EOM
+              [
+                  {
+                  "type": "git",
+                  "URL":  "$CC_TRUSTED_FIRMWARE_URL",
+                  "COMMIT": "$CC_TRUSTED_FIRMWARE_COMMIT",
+                  "REFSPEC": "$CC_TRUSTED_FIRMWARE_REFSPEC",
+                  "LOCATION": "trusted_firmware"
+                  },
+                  {
+                  "type": "git",
+                  "URL":  "$CC_SPM_URL",
+                  "COMMIT": "$CC_SPM_COMMIT",
+                  "REFSPEC": "$CC_SPM_REFSPEC",
+                  "LOCATION": "spm"
+                  }
+              ]
+EOM
   else
       echo "SCM sources not provided for project '${PROJECT}'"
       exit 1