Build: Fetch t_cose lib into the shared folder

Fetch the t_cose library into the shared folder so
later it can be copied to the individual job workspaces.

TF-M switched from using its internal t_cose fork to use
the upstream t_cose repository thus TF-M tries to fetch it
during the CMake configuration step.

Signed-off-by: David Vincze <david.vincze@arm.com>
Change-Id: I2fe9840028ed981bb4a1de9be1ef908c67dfd960
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index c6dfb54..e6eef5d 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -62,6 +62,7 @@
         "-DPSA_ARCH_TESTS_PATH=%(codebase_root_dir)s/../psa-arch-tests " + \
         "-DMCUBOOT_PATH=%(codebase_root_dir)s/../mcuboot " + \
         "-DQCBOR_PATH=%(codebase_root_dir)s/../qcbor " + \
+        "-DT_COSE_PATH=%(codebase_root_dir)s/../t_cose " + \
         "-DTFM_EXTRAS_REPO_PATH=%(codebase_root_dir)s/../tf-m-extras ",
 
     "nspe_config_template": "cmake -G Ninja " + \
@@ -70,7 +71,8 @@
         "-DCONFIG_SPE_PATH=%(ci_build_root_dir)s/spe/api_ns " + \
         "-DTFM_TOOLCHAIN_FILE=%(ci_build_root_dir)s/spe/api_ns/cmake/%(ns_compiler)s " + \
         "%(extra_params)s " + \
-        "-DQCBOR_PATH=%(codebase_root_dir)s/../qcbor ",
+        "-DQCBOR_PATH=%(codebase_root_dir)s/../qcbor " + \
+        "-DT_COSE_PATH=%(codebase_root_dir)s/../t_cose ",
 
     # CMake build commands will be executed for every build.
     "spe_cmake_build":  "cmake --build %(ci_build_root_dir)s/spe -- install",
diff --git a/clone.sh b/clone.sh
index 484bbfb..6a8628b 100755
--- a/clone.sh
+++ b/clone.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 #
-# Copyright (c) 2021-2023 Arm Limited. All rights reserved.
+# Copyright (c) 2021-2025 Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -24,7 +24,7 @@
 # i.e. tf-m-build-config, uses its default SHARE_FOLDER value, in this
 # case, it would simply clone its own repositories without reusing any
 # file however the current approach prevents the latter unless the job
-# is triggered manually from the buider job itself.
+# is triggered manually from the builder job itself.
 #
 
 set -ex
@@ -106,6 +106,10 @@
 QCBOR_REFSPEC="${QCBOR_VERSION:-"$(parse_version lib/ext/qcbor/CMakeLists.txt set\(QCBOR_VERSION \" 2)"}"
 QCBOR_NAME="qcbor"
 
+T_COSE_PROJECT="${T_COSE_URL:-}"
+T_COSE_REFSPEC="${T_COSE_VERSION:-"$(parse_version lib/ext/t_cose/CMakeLists.txt set\(T_COSE_VERSION \" 2)"}"
+T_COSE_NAME="t_cose"
+
 TFM_EXTRAS_PROJECT="${TFM_EXTRAS_URL:-}"
 TFM_EXTRAS_REFSPEC="${TFM_EXTRAS_REFSPEC:-"$(parse_version lib/ext/tf-m-extras/CMakeLists.txt set\(TFM_EXTRAS_REPO_VERSION \" 2)"}"
 TFM_EXTRAS_NAME="tf-m-extras"
@@ -124,6 +128,7 @@
     "${MBEDTLS_PROJECT};${MBEDTLS_NAME};${MBEDTLS_REFSPEC}"
     "${MCUBOOT_PROJECT};${MCUBOOT_NAME};${MCUBOOT_REFSPEC}"
     "${QCBOR_PROJECT};${QCBOR_NAME};${QCBOR_REFSPEC}"
+    "${T_COSE_PROJECT};${T_COSE_NAME};${T_COSE_REFSPEC}"
     "${TFM_EXTRAS_PROJECT};${TFM_EXTRAS_NAME};${TFM_EXTRAS_REFSPEC}"
     "${TFM_TOOLS_PROJECT};${TFM_TOOLS_NAME};${TFM_TOOLS_REFSPEC}"
     "${QA_TOOLS_PROJECT};${QA_TOOLS_NAME};${QA_TOOLS_REFSPEC}"
diff --git a/cppcheck/tfm-suppress-list.txt b/cppcheck/tfm-suppress-list.txt
index 11e11da..a935dc2 100644
--- a/cppcheck/tfm-suppress-list.txt
+++ b/cppcheck/tfm-suppress-list.txt
@@ -1,5 +1,5 @@
 //-------------------------------------------------------------------------------
-// Copyright (c) 2018-2024, Arm Limited and Contributors. All rights reserved.
+// Copyright (c) 2018-2025, Arm Limited and Contributors. All rights reserved.
 //
 // SPDX-License-Identifier: BSD-3-Clause
 //
@@ -54,6 +54,7 @@
 *:*/mcuboot/*
 *:*/mbedtls/*
 *:lib/ext/qcbor-src/*
+*:lib/ext/t_cose-src/*
 *:lib/ext/cmsis-src/*
 
 //cppcheck shouldn't complain about unused function.
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index 55bb6bf..62c04cd 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -1,6 +1,6 @@
 #!/usr/bin/env groovy
 //-------------------------------------------------------------------------------
-// Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
+// Copyright (c) 2020-2025, Arm Limited and Contributors. All rights reserved.
 //
 // SPDX-License-Identifier: BSD-3-Clause
 //
@@ -117,6 +117,8 @@
   params += string(name: 'PSA_ARCH_TESTS_URL', value: env.PSA_ARCH_TESTS_URL)
   params += string(name: 'QCBOR_VERSION', value: env.QCBOR_VERSION)
   params += string(name: 'QCBOR_URL', value: env.QCBOR_URL)
+  params += string(name: 'T_COSE_VERSION', value: env.T_COSE_VERSION)
+  params += string(name: 'T_COSE_URL', value: env.T_COSE_URL)
   params += string(name: 'SHARE_FOLDER', value: env.SHARE_FOLDER)
   return { -> results
     def build_res = build(job: 'tf-m-build-config', parameters: params, propagate: false)
diff --git a/run-build.sh b/run-build.sh
index c0a8b99..1722d79 100755
--- a/run-build.sh
+++ b/run-build.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2025, Arm Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -93,6 +93,13 @@
     cd -
 fi
 
+cnt=$(ls trusted-firmware-m/lib/ext/t_cose/*.patch 2> /dev/null | wc -l)
+if [ "$cnt" != "0" ] ; then
+    cd t_cose
+    git apply ../trusted-firmware-m/lib/ext/t_cose/*.patch
+    cd -
+fi
+
 cnt=$(ls tf-m-tests/tests_psa_arch/fetch_repo/*.patch 2> /dev/null | wc -l)
 if [ "$cnt" != "0" ] ; then
     cd psa-arch-tests