diff --git a/app_broker/CMakeLists.txt b/app_broker/CMakeLists.txt
index 2933833..08ffb89 100644
--- a/app_broker/CMakeLists.txt
+++ b/app_broker/CMakeLists.txt
@@ -30,9 +30,6 @@
 # lib parth
 set(APP_LIB_DIR                  ${CMAKE_CURRENT_LIST_DIR}/../lib)
 
-# TF-M logging
-add_subdirectory(${APP_LIB_DIR}/log    ${CMAKE_CURRENT_BINARY_DIR}/lib/log)
-
 # OS wrapper library consists of the wrapper layer of RTOSes, such as RTX
 add_library(os_wrapper STATIC)
 
@@ -113,6 +110,24 @@
     )
 endif()
 
+# TF-M ns logging
+add_library(tfm_ns_log STATIC EXCLUDE_FROM_ALL)
+
+target_sources(tfm_ns_log
+    PRIVATE
+        ${APP_LIB_DIR}/log/tfm_log_raw.c
+)
+
+target_include_directories(tfm_ns_log
+    PUBLIC
+        ${APP_LIB_DIR}/log/
+)
+
+target_link_libraries(tfm_ns_log
+    PRIVATE
+        platform_ns
+)
+
 ################## Update plaform_ns with NS settings #################
 
 target_include_directories(platform_ns
@@ -166,6 +181,11 @@
     PUBLIC
         RTX_OS
         tfm_api_ns
-        tfm_log
+        tfm_ns_log
         $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:ns_multi_core>
 )
+
+target_compile_definitions(tfm_test_broker
+    PUBLIC
+        $<$<BOOL:${TFM_NS_REG_TEST}>:TFM_NS_REG_TEST>
+)
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index 2717293..2fd6dbb 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -54,3 +54,34 @@
     message(STATUS "${footer}")
 endfunction()
 
+# Collect arguments via command line.
+# cmd_line: the output argument to collect the arguments via command line
+#
+# Those command line arguments will be passed to ExternalProject_Add().
+# Those arguments shall not be populated by the settings parsed inside each ExternalProject_Add()
+function(collect_build_cmd_args cmd_line)
+
+    get_cmake_property(CACHE_ARGS CACHE_VARIABLES)
+    foreach(CACHE_ARG ${CACHE_ARGS})
+        get_property(ARG_HELPSTRING CACHE "${CACHE_ARG}" PROPERTY HELPSTRING)
+        if("${ARG_HELPSTRING}" MATCHES "variable specified on the command line")
+            get_property(CACHE_ARG_TYPE CACHE ${CACHE_ARG} PROPERTY TYPE)
+            set(ARG_VAL ${${CACHE_ARG}})
+
+            # CMake automatically converts relative paths passed via command line into absolute
+            # ones. Since external projects have different base directories compared to root
+            # directory, relative paths will be incorrectly converted inside external projects.
+            # Enforce all the relative paths into abosulte paths before collecting them in the
+            # build command argument list.
+            if(NOT ${ARG_VAL} STREQUAL "")
+                if(IS_DIRECTORY ${ARG_VAL} AND NOT IS_ABSOLUTE ${ARG_VAL})
+                    get_filename_component(ABS_PATH ${ARG_VAL} ABSOLUTE)
+                    set(ARG_VAL ${ABS_PATH})
+                endif()
+            endif()
+            list(APPEND TEMP_CMD_LINE "-D${CACHE_ARG}:${CACHE_ARG_TYPE}=${ARG_VAL}")
+        endif()
+    endforeach()
+
+    set(${cmd_line} ${TEMP_CMD_LINE} PARENT_SCOPE)
+endfunction()
diff --git a/erpc/server/app/CMakeLists.txt b/erpc/server/app/CMakeLists.txt
index 83fdb22..0d58275 100644
--- a/erpc/server/app/CMakeLists.txt
+++ b/erpc/server/app/CMakeLists.txt
@@ -30,5 +30,5 @@
 target_link_libraries(erpc_app
     PRIVATE
         erpc_server
-        tfm_log
+        tfm_ns_log
 )
diff --git a/lib/log/CMakeLists.txt b/lib/log/CMakeLists.txt
deleted file mode 100644
index a843b41..0000000
--- a/lib/log/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-############################# Ns Log ###########################################
-
-add_library(tfm_log INTERFACE)
-
-target_sources(tfm_log
-    INTERFACE
-        tfm_log_raw.c
-)
-
-target_include_directories(tfm_log
-    INTERFACE
-        .
-)
-
-target_link_libraries(tfm_log
-    INTERFACE
-        platform_ns
-)
diff --git a/tests_reg/CMakeLists.txt b/tests_reg/CMakeLists.txt
index a60f744..cf33c84 100644
--- a/tests_reg/CMakeLists.txt
+++ b/tests_reg/CMakeLists.txt
@@ -21,6 +21,7 @@
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../cmake)
 list(APPEND CMAKE_MODULE_PATH ${CONFIG_SPE_PATH}/cmake)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/utils)
 include(remote_library)
 include(toolchain_selection)
 
@@ -29,24 +30,28 @@
 # Platform abilities for example IRQ test support status
 include(${CONFIG_SPE_PATH}/platform/config.cmake OPTIONAL)
 
-set(TFM_NS_REG_TEST       ON)
-set(NS                    ON)
+include(${TFM_TOOLCHAIN_FILE})
+project(tfm_ns LANGUAGES C ASM)
+tfm_toolchain_reload_compiler()
+
+# Include configs exported from TF-M
+include(${CONFIG_SPE_PATH}/cmake/spe_config.cmake)
 
 # Test suite configurations - set up by SPE build
 include(${CONFIG_SPE_PATH}/config_ns_test.cmake)
 
-# Test configurations
+# Default test configurations
 include(${CMAKE_CURRENT_LIST_DIR}/test/config/default_test_config.cmake)
-
-include(${TFM_TOOLCHAIN_FILE})
-project(tfm_ns LANGUAGES C ASM)
-tfm_toolchain_reload_compiler()
+# Config check in case additional test configs passed in via command line.
+include(${CMAKE_CURRENT_LIST_DIR}/test/config/check_config.cmake)
 
 add_executable(tfm_ns)
 
 add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../lib/ext ${CMAKE_BINARY_DIR}/lib/ext)
 add_subdirectory(../app_broker ${CMAKE_BINARY_DIR}/app_broker)
-add_subdirectory(test)
+if(TFM_NS_REG_TEST)
+    add_subdirectory(test/ns_regression)
+endif()
 
 ############################# TFM NS main app ##################################
 
@@ -58,8 +63,12 @@
 target_link_libraries(tfm_ns
     PRIVATE
         tfm_test_broker
-        tfm_ns_tests
-        tfm_test_framework_common
+        $<$<BOOL:${TFM_NS_REG_TEST}>:tfm_ns_tests>
+)
+
+target_compile_definitions(tfm_ns
+    PUBLIC
+        $<$<BOOL:${TFM_NS_REG_TEST}>:TFM_NS_REG_TEST>
 )
 
 set_target_properties(tfm_ns PROPERTIES
diff --git a/tests_reg/spe/CMakeLists.txt b/tests_reg/spe/CMakeLists.txt
index 21534a6..c312810 100644
--- a/tests_reg/spe/CMakeLists.txt
+++ b/tests_reg/spe/CMakeLists.txt
@@ -7,25 +7,21 @@
 cmake_minimum_required(VERSION 3.15)
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../cmake)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../utils)
 include(utils)
+include(regression_flag_parse)
 
-# Force cross compilation and avoid compiler search and test
-set(CMAKE_SYSTEM_NAME Generic)
-set(CMAKE_C_COMPILER_FORCED TRUE)
-set(CMAKE_CXX_COMPILER_FORCED TRUE)
+collect_build_cmd_args(TFM_CMDLINE_CONFIGS)
 
-project("TF-M SPE for tests" LANGUAGES C)
+project("TF-M SPE for tests" NONE)
 
 if (NOT DEFINED CONFIG_TFM_SOURCE_PATH OR NOT EXISTS ${CONFIG_TFM_SOURCE_PATH})
 #TODO: Fetch TF-M repositry if not exists
     message(FATAL_ERROR "CONFIG_TFM_SOURCE_PATH = ${CONFIG_TFM_SOURCE_PATH} is not defined or incorrect. Please provide full path to TF-M sources.")
 endif()
 
-if (NOT DEFINED TFM_TOOLCHAIN_FILE)
-    set(TFM_TOOLCHAIN_FILE    ${CONFIG_TFM_SOURCE_PATH}/toolchain_GNUARM.cmake)
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/config/set_config.cmake)
+# Parse regression test flags, include both NS and S ones
+parse_regression_flag(TFM_CMDLINE_CONFIGS)
 
 # tfm_s_test is IMPORTED to inform CMake that it has no source files.
 add_executable(tfm_s_test IMPORTED)
@@ -35,12 +31,10 @@
   SOURCE_DIR        ${CONFIG_TFM_SOURCE_PATH}
   BINARY_DIR        build-spe
   INSTALL_DIR       api_ns
-  CMAKE_ARGS        -DTFM_PLATFORM=${TFM_PLATFORM}
-  CMAKE_ARGS        -DCONFIG_TFM_TEST_DIR=${CMAKE_CURRENT_LIST_DIR}/../test
-  CMAKE_ARGS        -DTFM_EXTRA_CONFIG_PATH=${CMAKE_CURRENT_BINARY_DIR}/config_spe.cmake
+  CMAKE_ARGS        -DCONFIG_TFM_TEST_DIR=${CMAKE_CURRENT_LIST_DIR}/../test/secure_regression
+  CMAKE_ARGS        -DCONFIG_TFM_TEST_CONFIG_FILE=${CMAKE_CURRENT_LIST_DIR}/../test/config/config.cmake
   CMAKE_ARGS        -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-  CMAKE_ARGS        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-  CMAKE_ARGS        -DTFM_TOOLCHAIN_FILE=${TFM_TOOLCHAIN_FILE}
+  CMAKE_CACHE_DEFAULT_ARGS ${TFM_CMDLINE_CONFIGS}
   PREFIX             "temp"
 )
 
diff --git a/tests_reg/spe/config/config_spe.cmake.in b/tests_reg/spe/config/config_spe.cmake.in
deleted file mode 100644
index 22f024d..0000000
--- a/tests_reg/spe/config/config_spe.cmake.in
+++ /dev/null
@@ -1,40 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-# This is configuration file for building TF-M SPE image for S + NS tests.
-# This file to be included in to TF-M build via TFM_EXTRA_CONFIG_PATH command option.
-#-------------------------------------------------------------------------------
-
-# Command-line options
-@COMMAND_LINE_OPTIONS@
-
-set(TEST_S          @TEST_S@ CACHE BOOL "Enable Secure Tests")
-set(TEST_NS         @TEST_NS@ CACHE BOOL "Enable NS Tests")
-set(TFM_S_REG_TEST  ON CACHE BOOL "Enable S regression test")
-
-# The following NS test configs are required for SPE build to include test codes
-set(TEST_NS_ATTESTATION  @TEST_NS_ATTESTATION@ CACHE BOOL   "Enable NS Attestation Tests")
-
-# Secure Partitions
-@SP_CONFIG_OPTIONS@
-# Secure test suites
-@S_TEST_CONFIG_OPTIONS@
-# Test configurations
-include(@PROFILE_TEST_CONFIG_FILE@)
-include(${CONFIG_TFM_TEST_DIR}/config/default_test_config.cmake)
-
-# Test Secure Partition building using out-of-tree build
-list(APPEND TFM_EXTRA_MANIFEST_LIST_FILES ${CONFIG_TFM_TEST_DIR}/secure_fw/tfm_test_manifest_list.yaml)
-list(APPEND TFM_EXTRA_PARTITION_PATHS
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/common_test_services/tfm_secure_client_service
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/common_test_services/tfm_secure_client_2
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/spm/ipc/service
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/spm/sfn/service
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/spm/irq/service
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/ps/service
-            ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/fpu/service
-)
diff --git a/tests_reg/spe/config/default_config.cmake b/tests_reg/spe/config/default_config.cmake
deleted file mode 100644
index c5f998c..0000000
--- a/tests_reg/spe/config/default_config.cmake
+++ /dev/null
@@ -1,74 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-if(NOT DEFINED TEST_S AND NOT DEFINED TEST_NS)
-    # Only when there is no user input, both test are enabled.
-    set(TEST_S  ON CACHE BOOL "Enable Secure Tests")
-    set(TEST_NS ON CACHE BOOL "Enable NS Tests")
-endif()
-
-# Explicitly set values
-set(TEST_S  OFF CACHE BOOL "Enable Secure Tests")
-set(TEST_NS OFF CACHE BOOL "Enable NS Tests")
-
-################## Set configs that follow TEST_S/TEST_NS #########################################
-# "conditional" configs
-if(CONFIG_TFM_SPM_BACKEND_IPC)
-    set(TEST_S_IPC          ${TEST_S}        CACHE BOOL      "Whether to build NS regression SFN backend tests")
-    set(TEST_NS_IPC         ${TEST_NS}       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-else()
-    set(TEST_S_SFN_BACKEND  ${TEST_S}        CACHE BOOL      "Whether to build S regression SFN backend tests")
-    set(TEST_NS_SFN_BACKEND ${TEST_NS}       CACHE BOOL      "Whether to build S regression SFN backend tests")
-endif()
-
-# Make FLIH IRQ test as the default IRQ test
-if (PLATFORM_FLIH_IRQ_TEST_SUPPORT AND NOT TEST_NS_SLIH_IRQ)
-    set(TEST_NS_FLIH_IRQ    ${TEST_NS}       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
-endif()
-
-if (PLATFORM_SLIH_IRQ_TEST_SUPPORT AND NOT TEST_NS_FLIH_IRQ)
-    set(TEST_NS_SLIH_IRQ    ${TEST_NS}       CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
-endif()
-
-if(PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT)
-    set(TEST_S_FWU          ${TEST_S}        CACHE BOOL      "Whether to build NS regression FWU tests")
-    set(TEST_NS_FWU         ${TEST_NS}       CACHE BOOL      "Whether to build NS regression FWU tests")
-endif()
-
-# Test suites that enabled by default as long as TEST_S is ON
-set(TEST_S_ATTESTATION      ${TEST_S}        CACHE BOOL      "Whether to build S regression Attestation tests")
-set(TEST_S_CRYPTO           ${TEST_S}        CACHE BOOL      "Whether to build S regression Crypto tests")
-set(TEST_S_ITS              ${TEST_S}        CACHE BOOL      "Whether to build S regression ITS tests")
-set(TEST_S_PS               ${TEST_S}        CACHE BOOL      "Whether to build S regression PS tests")
-set(TEST_S_PLATFORM         ${TEST_S}        CACHE BOOL      "Whether to build S regression Platform tests")
-
-# Test suites that enabled by default as long as TEST_NS is ON
-set(TEST_NS_ATTESTATION     ${TEST_NS}        CACHE BOOL      "Whether to build NS regression Attestation tests")
-set(TEST_NS_CRYPTO          ${TEST_NS}        CACHE BOOL      "Whether to build NS regression Crypto tests")
-set(TEST_NS_ITS             ${TEST_NS}        CACHE BOOL      "Whether to build NS regression ITS tests")
-set(TEST_NS_PS              ${TEST_NS}        CACHE BOOL      "Whether to build NS regression PS tests")
-set(TEST_NS_PLATFORM        ${TEST_NS}        CACHE BOOL      "Whether to build NS regression Platform tests")
-
-###################### Ensure "conditional" config has default values ##############################
-set(TEST_S_IPC            OFF       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-set(TEST_NS_IPC           OFF       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-set(TEST_S_SFN_BACKEND    OFF       CACHE BOOL      "Whether to build S regression SFN backend tests")
-set(TEST_NS_SFN_BACKEND   OFF       CACHE BOOL      "Whether to build S regression SFN backend tests")
-set(TEST_S_FWU            OFF       CACHE BOOL      "Whether to build S regression FWU tests")
-set(TEST_NS_FWU           OFF       CACHE BOOL      "Whether to build NS regression FWU tests")
-set(TEST_NS_SLIH_IRQ      OFF       CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
-set(TEST_NS_FLIH_IRQ      OFF       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
-
-######################### Disabled test suites by default ##########################################
-set(TEST_S_FPU            OFF       CACHE BOOL      "Whether to build S regression FPU tests")
-set(TEST_NS_FPU           OFF       CACHE BOOL      "Whether to build NS regression FPU tests")
-
-set(TEST_NS_MULTI_CORE    OFF       CACHE BOOL      "Whether to build NS regression multi-core tests")
-set(TEST_NS_MANAGE_NSID   OFF       CACHE BOOL      "Whether to build NS regression NSID management tests")
-
-set(TEST_NS_T_COSE        OFF       CACHE BOOL      "Whether to build NS regression t_cose tests")
-set(TEST_NS_QCBOR         OFF       CACHE BOOL      "Whether to build NS regression QCBOR tests")
diff --git a/tests_reg/spe/config/profile_default_config.cmake b/tests_reg/spe/config/profile_default_config.cmake
deleted file mode 100644
index 0c1dae5..0000000
--- a/tests_reg/spe/config/profile_default_config.cmake
+++ /dev/null
@@ -1,72 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-if(NOT DEFINED TEST_S AND NOT DEFINED TEST_NS)
-    # Only when there is no user input, both test are enabled.
-    set(TEST_S  ON CACHE BOOL "Enable Secure Tests")
-    set(TEST_NS ON CACHE BOOL "Enable NS Tests")
-endif()
-
-# Explicitly set values
-set(TEST_S  OFF CACHE BOOL "Enable Secure Tests")
-set(TEST_NS OFF CACHE BOOL "Enable NS Tests")
-
-################## Set configs that follow TEST_S/TEST_NS #########################################
-# "conditional" configs
-if(CONFIG_TFM_SPM_BACKEND_IPC)
-    set(TEST_S_IPC          ${TEST_S}        CACHE BOOL      "Whether to build NS regression SFN backend tests")
-    set(TEST_NS_IPC         ${TEST_NS}       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-else()
-    set(TEST_S_SFN_BACKEND  ${TEST_S}        CACHE BOOL      "Whether to build S regression SFN backend tests")
-    set(TEST_NS_SFN_BACKEND ${TEST_NS}       CACHE BOOL      "Whether to build S regression SFN backend tests")
-endif()
-
-# Make FLIH IRQ test as the default IRQ test
-if (PLATFORM_FLIH_IRQ_TEST_SUPPORT AND NOT TEST_NS_SLIH_IRQ)
-    set(TEST_NS_FLIH_IRQ    ${TEST_NS}       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
-endif()
-
-if (PLATFORM_SLIH_IRQ_TEST_SUPPORT AND NOT TEST_NS_FLIH_IRQ)
-    set(TEST_NS_SLIH_IRQ    ${TEST_NS}       CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
-endif()
-
-# Test suites that follow the corresponding Secure Partitions
-set(TEST_S_FWU          ${TFM_PARTITION_FIRMWARE_UPDATE}            CACHE BOOL  "Whether to build NS regression FWU tests")
-set(TEST_NS_FWU         ${TFM_PARTITION_FIRMWARE_UPDATE}            CACHE BOOL  "Whether to build NS regression FWU tests")
-
-set(TEST_S_ATTESTATION  ${TFM_PARTITION_INITIAL_ATTESTATION}        CACHE BOOL  "Whether to build S regression Attestation tests")
-set(TEST_S_CRYPTO       ${TFM_PARTITION_CRYPTO}                     CACHE BOOL  "Whether to build S regression Crypto tests")
-set(TEST_S_ITS          ${TFM_PARTITION_INTERNAL_TRUSTED_STORAGE}   CACHE BOOL  "Whether to build S regression ITS tests")
-set(TEST_S_PS           ${TFM_PARTITION_PROTECTED_STORAGE}          CACHE BOOL  "Whether to build S regression PS tests")
-set(TEST_S_PLATFORM     ${TFM_PARTITION_PLATFORM}                   CACHE BOOL  "Whether to build S regression Platform tests")
-
-# Test suites that enabled by default as long as TEST_NS is ON
-set(TEST_NS_ATTESTATION ${TFM_PARTITION_INITIAL_ATTESTATION}        CACHE BOOL  "Whether to build NS regression Attestation tests")
-set(TEST_NS_CRYPTO      ${TFM_PARTITION_CRYPTO}                     CACHE BOOL  "Whether to build NS regression Crypto tests")
-set(TEST_NS_ITS         ${TFM_PARTITION_INTERNAL_TRUSTED_STORAGE}   CACHE BOOL  "Whether to build NS regression ITS tests")
-set(TEST_NS_PS          ${TFM_PARTITION_PROTECTED_STORAGE}          CACHE BOOL  "Whether to build NS regression PS tests")
-set(TEST_NS_PLATFORM    ${TFM_PARTITION_PLATFORM}                   CACHE BOOL  "Whether to build NS regression Platform tests")
-
-###################### Ensure "conditional" config has default values ##############################
-set(TEST_S_IPC            OFF       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-set(TEST_NS_IPC           OFF       CACHE BOOL      "Whether to build NS regression SFN backend tests")
-set(TEST_S_SFN_BACKEND    OFF       CACHE BOOL      "Whether to build S regression SFN backend tests")
-set(TEST_NS_SFN_BACKEND   OFF       CACHE BOOL      "Whether to build S regression SFN backend tests")
-set(TEST_S_FWU            OFF       CACHE BOOL      "Whether to build S regression FWU tests")
-set(TEST_NS_FWU           OFF       CACHE BOOL      "Whether to build NS regression FWU tests")
-set(TEST_NS_SLIH_IRQ      OFF       CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
-set(TEST_NS_FLIH_IRQ      OFF       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
-
-######################### Disabled test suites by default ##########################################
-set(TEST_S_FPU            OFF       CACHE BOOL      "Whether to build S regression FPU tests")
-set(TEST_NS_FPU           OFF       CACHE BOOL      "Whether to build NS regression FPU tests")
-
-set(TEST_NS_MULTI_CORE    OFF       CACHE BOOL      "Whether to build NS regression multi-core tests")
-set(TEST_NS_MANAGE_NSID   OFF       CACHE BOOL      "Whether to build NS regression NSID management tests")
-
-set(TEST_NS_T_COSE        OFF       CACHE BOOL      "Whether to build NS regression t_cose tests")
-set(TEST_NS_QCBOR         OFF       CACHE BOOL      "Whether to build NS regression QCBOR tests")
diff --git a/tests_reg/spe/config/set_config.cmake b/tests_reg/spe/config/set_config.cmake
deleted file mode 100644
index 4cea154..0000000
--- a/tests_reg/spe/config/set_config.cmake
+++ /dev/null
@@ -1,141 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-# Profile
-if(TFM_PROFILE)
-    include(${CONFIG_TFM_SOURCE_PATH}/config/profile/${TFM_PROFILE}.cmake)
-    set(PROFILE_TEST_CONFIG_FILE    ${CMAKE_CURRENT_LIST_DIR}/../../test/config/profile/${TFM_PROFILE}_test.cmake)
-else()
-    set(PROFILE_TEST_CONFIG_FILE    ${CMAKE_CURRENT_LIST_DIR}/../../test/config/default_test_config.cmake)
-endif()
-
-# Backend config is required to enable or disable corresponding test suites
-# Set up backend config
-if((DEFINED TFM_ISOLATION_LEVEL AND TFM_ISOLATION_LEVEL GREATER 1) OR
-    CONFIG_TFM_SPM_BACKEND STREQUAL "IPC" OR TFM_MULTI_CORE_TOPOLOGY)
-    set(CONFIG_TFM_SPM_BACKEND_IPC  ON)
-    set(CONFIG_TFM_SPM_BACKEND_SFN  OFF)
-else()
-    #The default backend is SFN
-    set(CONFIG_TFM_SPM_BACKEND_IPC  OFF)
-    set(CONFIG_TFM_SPM_BACKEND_SFN  ON)
-endif()
-
-# Get platform configurations, for example, PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT
-include(${CONFIG_TFM_SOURCE_PATH}/config/tfm_platform.cmake)
-include(${TARGET_PLATFORM_PATH}/config.cmake OPTIONAL)
-
-# Set up test suites configurations according to command-line options.
-# By default (no test suites configs at all), configs are set according to default_config.cmake.
-# Users can:
-# 1. Disable all the S/NS tests by setting corresponding TEST_S/TEST_NS to OFF
-# 2. Disable individual test suites by setting the corresponding TEST_(N)S_* to OFF.
-#    Other test suites are set according to default_config.cmake
-# 3. Enable individual test suites by setting the corresponding TEST_(N)S_* to ON.
-#    Other test suites are disabled by default. To enable other test suites, set the corresponding
-#    config option to ON. This applies to TEST_S and TEST_NS as well which can be used to enable
-#    test suites that are disabled by default even then TEST_NS/S is enabled.
-
-# Check if user enabled individual test suites.
-# If not, the default config is applied
-set(LOAD_DEFAULT_CONFIG ON)
-get_cmake_property(CACHE_VARS CACHE_VARIABLES)
-foreach(CACHE_VAR ${CACHE_VARS})
-    string(REGEX MATCH "^TEST_S.+" _S_TEST_FOUND "${CACHE_VAR}")
-    if (_S_TEST_FOUND AND "${${CACHE_VAR}}")
-        # User enabled individual S test suite, by default all other S test suites are off,
-        # Unless TEST_S is explicity set to ON
-        set(TEST_S OFF CACHE BOOL "Enable Secure Tests")
-        set(LOAD_DEFAULT_CONFIG OFF)
-        break()
-    endif()
-    string(REGEX MATCH "^TEST_NS.+" _NS_TEST_FOUND "${CACHE_VAR}")
-    if (_NS_TEST_FOUND AND "${${CACHE_VAR}}")
-        # User enabled individual NS test suite, by default all other NS test suites are OFF,
-        # Unless TEST_NS is explicity set to ON
-        set(TEST_NS OFF CACHE BOOL "Enable NS Tests")
-        set(LOAD_DEFAULT_CONFIG OFF)
-        break()
-    endif()
-endforeach()
-
-# If the user also enable TEST_S/TEST_NS, the default configs should also be loaded.
-if((TEST_S OR TEST_NS) AND NOT LOAD_DEFAULT_CONFIG)
-    set(LOAD_DEFAULT_CONFIG ON)
-endif()
-
-if(LOAD_DEFAULT_CONFIG)
-    # If profile is set, then test suites are enabled according to Secure Partitions.
-    # On the contrary, by default, Secure Partitions are enabled according to test suites.
-    if(TFM_PROFILE)
-        include(${CMAKE_CURRENT_LIST_DIR}/profile_default_config.cmake)
-    else()
-        include(${CMAKE_CURRENT_LIST_DIR}/default_config.cmake)
-    endif()
-endif()
-
-# Set up dependency Secure Partition configs
-include(${CMAKE_CURRENT_LIST_DIR}/enable_dep_config.cmake)
-
-# Set up variables for config_*.cmake.in
-get_cmake_property(CACHE_VARS CACHE_VARIABLES)
-foreach(CACHE_VAR ${CACHE_VARS})
-    get_property(HELP_STRING CACHE ${CACHE_VAR} PROPERTY HELPSTRING)
-    get_property(CACHE_TYPE CACHE ${CACHE_VAR} PROPERTY TYPE)
-
-    # Command-line options passing to Secure build
-    if("${HELP_STRING}" MATCHES "variable specified on the command line")
-        string(REGEX MATCH "^TEST_NS.*" _NS_TEST_FOUND "${CACHE_VAR}")
-        if(NOT _NS_TEST_FOUND)
-            # Skip NS test suite config options
-            string(APPEND COMMAND_LINE_OPTIONS
-                   "set(${CACHE_VAR}\r\n    ${${CACHE_VAR}}\r\n    CACHE ${CACHE_TYPE} \"${HELP_STRING}\")\r\n")
-        endif()
-    endif()
-
-    # Secure test suites
-    string(REGEX MATCH "^TEST_S.+" _S_TEST_FOUND "${CACHE_VAR}")
-    if (_S_TEST_FOUND)
-        format_string(FORMATTED_CACHE_VAR ${CACHE_VAR} 25 " ")
-        format_string(FORMATTED_CACHE_VAL ${${CACHE_VAR}} 5 " ")
-        string(APPEND S_TEST_CONFIG_OPTIONS
-               "set(${FORMATTED_CACHE_VAR} ${FORMATTED_CACHE_VAL} CACHE ${CACHE_TYPE} \"${HELP_STRING}\")\r\n"
-        )
-    endif()
-
-    # NS test suits
-    string(REGEX MATCH "^TEST_NS.+" _NS_TEST_FOUND "${CACHE_VAR}")
-    if (_NS_TEST_FOUND)
-        format_string(FORMATTED_CACHE_VAR ${CACHE_VAR} 25 " ")
-        format_string(FORMATTED_CACHE_VAL ${${CACHE_VAR}} 5 " ")
-        string(APPEND NS_TEST_CONFIG_OPTIONS
-               "set(${FORMATTED_CACHE_VAR} ${FORMATTED_CACHE_VAL} CACHE ${CACHE_TYPE} \"${HELP_STRING}\")\r\n"
-        )
-    endif()
-
-    # Secure Partitions
-    string(REGEX MATCH "^TFM_PARTITION_.+" _PARTITION_FOUND "${CACHE_VAR}")
-    if (_PARTITION_FOUND)
-        format_string(FORMATTED_CACHE_VAR ${CACHE_VAR} 40 " ")
-        format_string(FORMATTED_CACHE_VAL ${${CACHE_VAR}} 5 " ")
-        string(APPEND SP_CONFIG_OPTIONS
-               "set(${FORMATTED_CACHE_VAR} ${FORMATTED_CACHE_VAL} CACHE ${CACHE_TYPE} \"${HELP_STRING}\")\r\n"
-        )
-    endif()
-endforeach()
-
-# This file is for Secure build
-configure_file(${CMAKE_CURRENT_LIST_DIR}/config_spe.cmake.in
-               ${CMAKE_BINARY_DIR}/config_spe.cmake
-               @ONLY)
-
-# This file is for NS build
-configure_file(${CMAKE_CURRENT_LIST_DIR}/config_ns_test.cmake.in
-               ${CMAKE_BINARY_DIR}/api_ns/config_ns_test.cmake
-               @ONLY)
-
-include(${CMAKE_CURRENT_LIST_DIR}/check_config.cmake)
diff --git a/tests_reg/test/CMakeLists.txt b/tests_reg/test/CMakeLists.txt
deleted file mode 100644
index aa2025f..0000000
--- a/tests_reg/test/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.13)
-
-add_library(tfm_test_framework_common INTERFACE)
-
-target_sources(tfm_test_framework_common
-    INTERFACE
-        ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_helpers.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test_helper.c
-)
-
-target_include_directories(tfm_test_framework_common
-    INTERFACE
-        framework
-)
-
-add_subdirectory(secure_fw)
-
-if(TEST_BL2)
-    add_subdirectory(bl2)
-endif()
-
-if(TEST_BL1_1 OR TEST_BL1_2)
-    add_subdirectory(bl1)
-endif()
diff --git a/tests_reg/test/bl1/CMakeLists.txt b/tests_reg/test/bl1/CMakeLists.txt
index 83c6dc0..529e4eb 100644
--- a/tests_reg/test/bl1/CMakeLists.txt
+++ b/tests_reg/test/bl1/CMakeLists.txt
@@ -11,11 +11,5 @@
     return()
 endif()
 
-# Reload the compiler options for the secure core, if the NS core differs
-if (EXISTS ${TARGET_PLATFORM_PATH}/preload_ns.cmake)
-    include(${TARGET_PLATFORM_PATH}/preload.cmake)
-    tfm_toolchain_reload_compiler()
-endif()
-
 add_subdirectory(bl1_1)
 add_subdirectory(bl1_2)
diff --git a/tests_reg/test/bl1/bl1_1/CMakeLists.txt b/tests_reg/test/bl1/bl1_1/CMakeLists.txt
index 520a3ec..4a2095e 100644
--- a/tests_reg/test/bl1/bl1_1/CMakeLists.txt
+++ b/tests_reg/test/bl1/bl1_1/CMakeLists.txt
@@ -9,6 +9,30 @@
     return()
 endif()
 
+set(LOG_SOURCE_ROOT ${TFM_TESTS_ROOT_DIR}/lib/log)
+
+add_library(bl1_1_log INTERFACE)
+
+target_sources(bl1_1_log
+    INTERFACE
+        ${LOG_SOURCE_ROOT}/tfm_log_raw.c
+)
+
+target_include_directories(bl1_1_log
+    INTERFACE
+        ${LOG_SOURCE_ROOT}
+)
+
+target_link_libraries(bl1_1_log
+    INTERFACE
+        platform_bl1_1
+)
+
+target_link_libraries(tfm_test_framework_common
+    INTERFACE
+        bl1_1_log
+)
+
 add_subdirectory(suites/crypto)
 add_subdirectory(suites/trng)
 add_subdirectory(suites/integration)
@@ -30,7 +54,6 @@
         tfm_test_framework_common
         platform_bl1_1
         bl1_1_shared_lib
-        tfm_log
         bl1_1_test_suite_crypto
         bl1_1_test_suite_trng
         bl1_1_test_suite_integration
diff --git a/tests_reg/test/bl2/CMakeLists.txt b/tests_reg/test/bl2/CMakeLists.txt
index e559800..b2a436c 100644
--- a/tests_reg/test/bl2/CMakeLists.txt
+++ b/tests_reg/test/bl2/CMakeLists.txt
@@ -13,10 +13,4 @@
     return()
 endif()
 
-# Reload the compiler options for the secure core, if the NS core differs
-if (EXISTS ${TARGET_PLATFORM_PATH}/preload_ns.cmake)
-    include(${TARGET_PLATFORM_PATH}/preload.cmake)
-    tfm_toolchain_reload_compiler()
-endif()
-
 add_subdirectory(mcuboot)
diff --git a/tests_reg/test/bl2/mcuboot/CMakeLists.txt b/tests_reg/test/bl2/mcuboot/CMakeLists.txt
index 4dd1028..abb1665 100644
--- a/tests_reg/test/bl2/mcuboot/CMakeLists.txt
+++ b/tests_reg/test/bl2/mcuboot/CMakeLists.txt
@@ -11,25 +11,28 @@
 # So a dedicated library is duplicated here, and it links the platform_s instead of platform_ns.
 
 # TO-DO: find a better approach to reference the directory
-set(LOG_SOURCE_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../../../lib/log)
+set(LOG_SOURCE_ROOT ${TFM_TESTS_ROOT_DIR}/lib/log)
 
 add_library(mcuboot_test_log INTERFACE)
-add_library(mcuboot_test_log_interface INTERFACE)
 
 target_sources(mcuboot_test_log
     INTERFACE
         ${LOG_SOURCE_ROOT}/tfm_log_raw.c
 )
 
-target_include_directories(mcuboot_test_log_interface
+target_include_directories(mcuboot_test_log
     INTERFACE
         ${LOG_SOURCE_ROOT}
 )
 
 target_link_libraries(mcuboot_test_log
     INTERFACE
-        mcuboot_test_log_interface
-        platform_common_interface
+        platform_bl2
+)
+
+target_link_libraries(tfm_test_framework_common
+    INTERFACE
+        mcuboot_test_log
 )
 
 add_subdirectory(suites/integration)
@@ -52,5 +55,4 @@
     PRIVATE
         platform_bl2
         mcuboot_test_suite_integration
-        mcuboot_test_log
 )
diff --git a/tests_reg/spe/config/check_config.cmake b/tests_reg/test/config/check_config.cmake
similarity index 100%
rename from tests_reg/spe/config/check_config.cmake
rename to tests_reg/test/config/check_config.cmake
diff --git a/tests_reg/test/config/config.cmake b/tests_reg/test/config/config.cmake
new file mode 100644
index 0000000..56d6bff
--- /dev/null
+++ b/tests_reg/test/config/config.cmake
@@ -0,0 +1,172 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2023, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+include(${CMAKE_CURRENT_LIST_DIR}/enable_dep_config.cmake)
+
+########################## TEST SYNC ###########################################
+
+if ((NOT TFM_PARTITION_PROTECTED_STORAGE))
+    set(TEST_NS_PS              OFF        CACHE BOOL      "Whether to build NS regression PS tests")
+    set(TEST_S_PS               OFF        CACHE BOOL      "Whether to build S regression PS tests")
+endif()
+
+if (NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
+    set(TEST_NS_ITS             OFF        CACHE BOOL      "Whether to build NS regression ITS tests")
+    set(TEST_S_ITS              OFF        CACHE BOOL      "Whether to build S regression ITS tests")
+
+    # TEST_NS_PS relies on TEST_NS_ITS
+    set(TEST_NS_PS              OFF        CACHE BOOL      "Whether to build NS regression PS tests")
+endif()
+
+if (NOT TFM_PARTITION_CRYPTO)
+    set(TEST_NS_CRYPTO          OFF        CACHE BOOL      "Whether to build NS regression Crypto tests")
+    set(TEST_S_CRYPTO           OFF        CACHE BOOL      "Whether to build S regression Crypto tests")
+endif()
+
+if (NOT TFM_PARTITION_INITIAL_ATTESTATION)
+    set(TEST_NS_ATTESTATION     OFF        CACHE BOOL      "Whether to build NS regression Attestation tests")
+    set(TEST_S_ATTESTATION      OFF        CACHE BOOL      "Whether to build S regression Attestation tests")
+    set(TEST_NS_QCBOR           OFF        CACHE BOOL      "Whether to build NS regression QCBOR tests")
+    set(TEST_NS_T_COSE          OFF        CACHE BOOL      "Whether to build NS regression t_cose tests")
+endif()
+
+if (SYMMETRIC_INITIAL_ATTESTATION)
+    set(TEST_NS_T_COSE          OFF        CACHE BOOL      "Whether to build NS regression t_cose tests")
+endif()
+
+if (NOT TFM_PARTITION_PLATFORM)
+    set(TEST_NS_PLATFORM        OFF        CACHE BOOL      "Whether to build NS regression Platform tests")
+    set(TEST_S_PLATFORM         OFF        CACHE BOOL      "Whether to build S regression Platform tests")
+endif()
+
+if (NOT TFM_PARTITION_FIRMWARE_UPDATE)
+    set(TEST_NS_FWU             OFF        CACHE BOOL      "Whether to build NS regression FWU tests")
+    set(TEST_S_FWU              OFF        CACHE BOOL      "Whether to build S regression FWU tests")
+endif()
+
+if (NOT TFM_MULTI_CORE_TOPOLOGY)
+    set(TEST_NS_MULTI_CORE      OFF        CACHE BOOL      "Whether to build NS regression multi-core tests")
+endif()
+
+if (NOT TFM_NS_MANAGE_NSID)
+    set(TEST_NS_MANAGE_NSID     OFF        CACHE BOOL      "Whether to build NS regression NSID management tests")
+endif()
+
+if (CONFIG_TFM_FLOAT_ABI STREQUAL "soft")
+    set(TEST_S_FPU              OFF        CACHE BOOL      "Whether to build S regression FPU tests")
+    set(TEST_NS_FPU             OFF        CACHE BOOL      "Whether to build NS regression FPU tests")
+endif()
+
+########################## Test profile ########################################
+
+if (TFM_PROFILE)
+    include(${CMAKE_CURRENT_LIST_DIR}/profile/${TFM_PROFILE}_test.cmake)
+endif()
+
+########################## SLIH/FLIH IRQ Test ##################################
+
+# Make FLIH IRQ test as the default IRQ test
+if (PLATFORM_FLIH_IRQ_TEST_SUPPORT
+    AND TEST_NS AND NOT TEST_NS_SLIH_IRQ)
+    set(TEST_NS_FLIH_IRQ        ON        CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
+endif()
+
+if (PLATFORM_SLIH_IRQ_TEST_SUPPORT
+    AND TEST_NS AND NOT TEST_NS_FLIH_IRQ)
+    set(TEST_NS_SLIH_IRQ        ON        CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
+endif()
+
+############################ IPC backend test ##################################
+if (CONFIG_TFM_SPM_BACKEND_IPC AND TEST_NS)
+    set(TEST_NS_IPC             ON        CACHE BOOL      "Whether to build NS regression SFN backend tests")
+endif()
+
+if (CONFIG_TFM_SPM_BACKEND_IPC AND TEST_S)
+    set(TEST_S_IPC              ON        CACHE BOOL      "Whether to build NS regression SFN backend tests")
+endif()
+
+############################ SFN backend test ##################################
+
+if (CONFIG_TFM_SPM_BACKEND_SFN AND TEST_NS)
+    set(TEST_NS_SFN_BACKEND     ON        CACHE BOOL      "Whether to build NS regression SFN backend tests")
+endif()
+
+if (CONFIG_TFM_SPM_BACKEND_SFN AND TEST_S)
+    set(TEST_S_SFN_BACKEND      ON        CACHE BOOL      "Whether to build S regression SFN backend tests")
+endif()
+
+########################## Load default config #################################
+
+if (TEST_S)
+    include(${CMAKE_CURRENT_LIST_DIR}/default_s_test_config.cmake)
+endif()
+if (TEST_NS)
+    include(${CMAKE_CURRENT_LIST_DIR}/default_ns_test_config.cmake)
+endif()
+
+###################### Test Partition configurations ###########################
+if (TEST_NS_IPC OR TEST_S_IPC)
+    set(TFM_PARTITION_IPC_TEST  ON)
+else()
+    set(TFM_PARTITION_IPC_TEST  OFF)
+endif()
+
+if (TEST_NS_PS OR TEST_S_PS)
+    set(TFM_PARTITION_PS_TEST  ON)
+else()
+    set(TFM_PARTITION_PS_TEST  OFF)
+endif()
+
+if (TEST_NS_SFN_BACKEND OR TEST_S_SFN_BACKEND)
+    set(TFM_PARTITION_SFN_BACKEND_TEST  ON)
+else()
+    set(TFM_PARTITION_SFN_BACKEND_TEST  OFF)
+endif()
+
+# Enable FPU test partition if S or NS FP test enabled
+if (TEST_S_FPU OR TEST_NS_FPU)
+    set(TEST_PARTITION_FPU_TEST        ON)
+else()
+    set(TEST_PARTITION_FPU_TEST        OFF)
+endif()
+
+if(TEST_NS_FLIH_IRQ)
+    set(TFM_PARTITION_FLIH_TEST        ON)
+else()
+    set(TFM_PARTITION_FLIH_TEST        OFF)
+endif()
+
+if(TEST_NS_SLIH_IRQ)
+    set(TFM_PARTITION_SLIH_TEST        ON)
+else()
+    set(TFM_PARTITION_SLIH_TEST        OFF)
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/default_test_config.cmake)
+
+# Test Secure Partition building using out-of-tree build
+list(APPEND TFM_EXTRA_MANIFEST_LIST_FILES ${CONFIG_TFM_TEST_DIR}/../secure_fw/tfm_test_manifest_list.yaml)
+
+set(SECURE_FW_REG_DIR ${CMAKE_CURRENT_LIST_DIR}/../secure_fw)
+
+# Test services are also required by some NS regression tests.
+# Include test services at first no matter whether secure tests are enabled.
+list(APPEND TFM_EXTRA_PARTITION_PATHS
+     ${SECURE_FW_REG_DIR}/suites/spm/ipc/service
+     ${SECURE_FW_REG_DIR}/suites/spm/sfn/service
+     ${SECURE_FW_REG_DIR}/suites/spm/irq/service
+     ${SECURE_FW_REG_DIR}/suites/ps/service
+     ${SECURE_FW_REG_DIR}/suites/fpu/service
+)
+
+if(TFM_S_REG_TEST)
+    # secure test services are required if any secure test is opened
+    list(APPEND TFM_EXTRA_PARTITION_PATHS
+         ${SECURE_FW_REG_DIR}/common_test_services/tfm_secure_client_service
+         ${SECURE_FW_REG_DIR}/common_test_services/tfm_secure_client_2
+)
+endif()
diff --git a/tests_reg/spe/config/config_ns_test.cmake.in b/tests_reg/test/config/config_ns_test.cmake.in
similarity index 84%
rename from tests_reg/spe/config/config_ns_test.cmake.in
rename to tests_reg/test/config/config_ns_test.cmake.in
index 25c6c31..11dc1a3 100644
--- a/tests_reg/spe/config/config_ns_test.cmake.in
+++ b/tests_reg/test/config/config_ns_test.cmake.in
@@ -7,5 +7,3 @@
 
 # This file is consumed by NS test build to get test configurations
 @NS_TEST_CONFIG_OPTIONS@
-# Profile test configurations
-include(@PROFILE_TEST_CONFIG_FILE@)
diff --git a/tests_reg/test/config/default_ns_test_config.cmake b/tests_reg/test/config/default_ns_test_config.cmake
new file mode 100644
index 0000000..fbdbe1e
--- /dev/null
+++ b/tests_reg/test/config/default_ns_test_config.cmake
@@ -0,0 +1,25 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+########################## NS test suites ######################################
+
+set(TEST_NS_ATTESTATION     ON        CACHE BOOL      "Whether to build NS regression Attestation tests")
+set(TEST_NS_T_COSE          ON        CACHE BOOL      "Whether to build NS regression t_cose tests")
+set(TEST_NS_CRYPTO          ON        CACHE BOOL      "Whether to build NS regression Crypto tests")
+set(TEST_NS_ITS             ON        CACHE BOOL      "Whether to build NS regression ITS tests")
+set(TEST_NS_PS              ON        CACHE BOOL      "Whether to build NS regression PS tests")
+set(TEST_NS_PLATFORM        ON        CACHE BOOL      "Whether to build NS regression Platform tests")
+set(TEST_NS_FWU             ON        CACHE BOOL      "Whether to build NS regression FWU tests")
+set(TEST_NS_MULTI_CORE      ON        CACHE BOOL      "Whether to build NS regression multi-core tests")
+set(TEST_NS_MANAGE_NSID     ON        CACHE BOOL      "Whether to build NS regression NSID management tests")
+
+set(TEST_NS_QCBOR           OFF       CACHE BOOL      "Whether to build NS regression QCBOR tests")
+set(TEST_NS_SLIH_IRQ        OFF       CACHE BOOL      "Whether to build NS regression Second-Level Interrupt Handling tests")
+set(TEST_NS_FLIH_IRQ        OFF       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
+set(TEST_NS_FPU             OFF       CACHE BOOL      "Whether to build NS regression FPU tests")
+set(TEST_NS_IPC             OFF       CACHE BOOL      "Whether to build NS regression IPC tests")
+set(TEST_NS_SFN_BACKEND     OFF       CACHE BOOL      "Whether to build NS regression SFN backend tests")
diff --git a/tests_reg/test/config/default_s_test_config.cmake b/tests_reg/test/config/default_s_test_config.cmake
new file mode 100644
index 0000000..eb2e622
--- /dev/null
+++ b/tests_reg/test/config/default_s_test_config.cmake
@@ -0,0 +1,19 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+########################## S test suites #######################################
+
+set(TEST_S_ATTESTATION      ON        CACHE BOOL      "Whether to build S regression Attestation tests")
+set(TEST_S_CRYPTO           ON        CACHE BOOL      "Whether to build S regression Crypto tests")
+set(TEST_S_ITS              ON        CACHE BOOL      "Whether to build S regression ITS tests")
+set(TEST_S_PS               ON        CACHE BOOL      "Whether to build S regression PS tests")
+set(TEST_S_PLATFORM         ON        CACHE BOOL      "Whether to build S regression Platform tests")
+
+set(TEST_S_FWU              OFF       CACHE BOOL      "Whether to build S regression FWU tests")
+set(TEST_S_IPC              OFF       CACHE BOOL      "Whether to build S regression IPC tests")
+set(TEST_S_SFN_BACKEND      OFF       CACHE BOOL      "Whether to build S regression SFN tests")
+set(TEST_S_FPU              OFF       CACHE BOOL      "Whether to build S regression FPU tests")
diff --git a/tests_reg/spe/config/enable_dep_config.cmake b/tests_reg/test/config/enable_dep_config.cmake
similarity index 66%
rename from tests_reg/spe/config/enable_dep_config.cmake
rename to tests_reg/test/config/enable_dep_config.cmake
index 957f61f..b31b52d 100755
--- a/tests_reg/spe/config/enable_dep_config.cmake
+++ b/tests_reg/test/config/enable_dep_config.cmake
@@ -5,7 +5,20 @@
 #
 #-------------------------------------------------------------------------------
 
-###################### TF-M Secure Partition configurations ###########################
+if(TEST_NS OR TEST_S)
+    # Enable default Secure Partition for tests when secure or non-secure regressions are enabled
+
+    set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Internal Trusted Storage partition")
+    set(TFM_PARTITION_PROTECTED_STORAGE        ON       CACHE BOOL      "Enable Protected Storage partition")
+    set(TFM_PARTITION_CRYPTO                   ON       CACHE BOOL      "Enable Crypto partition")
+    set(TFM_PARTITION_INITIAL_ATTESTATION      ON       CACHE BOOL      "Enable Initial Attestation partition")
+    set(TFM_PARTITION_PLATFORM                 ON       CACHE BOOL      "Enable Platform partition")
+
+    if(PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT)
+        set(TFM_PARTITION_FIRMWARE_UPDATE      ON       CACHE BOOL      "Enable firmware update partition")
+    endif()
+endif()
+
 if(TEST_S_CRYPTO OR TEST_NS_CRYPTO)
     set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Internal Trusted Storage partition")
     set(TFM_PARTITION_CRYPTO                   ON       CACHE BOOL      "Enable Crypto partition")
@@ -17,7 +30,7 @@
     set(TFM_PARTITION_CRYPTO                   ON       CACHE BOOL      "Enable Crypto partition")
     set(TFM_PARTITION_PLATFORM                 ON       CACHE BOOL      "Enable Platform partition")
 
-    # TEST_NS_PS relies on TEST_NS_ITS, this should goes to NS test config setup
+    # TEST_NS_PS relies on TEST_NS_ITS
     if(TEST_NS_PS)
         set(TEST_NS_ITS                        ON       CACHE BOOL      "Whether to build NS regression ITS tests")
     endif()
@@ -47,35 +60,3 @@
 if(TEST_NS_MANAGE_NSID AND NOT TFM_MULTI_CORE_TOPOLOGY)
     set(TFM_NS_MANAGE_NSID                     ON       CACHE BOOL      "Support NSPE OS providing NSPE client_id")
 endif()
-
-###################### Test Partition configurations ###########################
-if(TEST_NS_IPC OR TEST_S_IPC)
-    set(TFM_PARTITION_IPC_TEST  ON  CACHE BOOL  "Enable the IPC test Partitions")
-else()
-    set(TFM_PARTITION_IPC_TEST  OFF CACHE BOOL  "Enable the IPC test Partitions")
-endif()
-
-if(TEST_NS_SFN_BACKEND OR TEST_S_SFN_BACKEND)
-    set(TFM_PARTITION_SFN_BACKEND_TEST  ON  CACHE BOOL  "Enable the SFN test Partitions")
-else()
-    set(TFM_PARTITION_SFN_BACKEND_TEST  OFF CACHE BOOL  "Enable the SFN test Partitions")
-endif()
-
-if(TEST_S_PS)
-    set(TFM_PARTITION_PS_TEST ON CACHE BOOL "Enable the PS test Partition")
-endif()
-
-if(TEST_NS_SLIH_IRQ)
-    set(TFM_PARTITION_SLIH_TEST ON CACHE BOOL "Enable the SLIH test Partition")
-endif()
-
-if(TEST_NS_FLIH_IRQ)
-    set(TFM_PARTITION_FLIH_TEST ON CACHE BOOL "Enable the FLIH test Partition")
-endif()
-
-# Enable FPU test partition if S or NS FP test enabled
-if (TEST_S_FPU OR TEST_NS_FPU)
-    set(TFM_PARTITION_FPU_TEST        ON   CACHE BOOL  "Enable the FPU test Partitions")
-else()
-    set(TFM_PARTITION_FPU_TEST        OFF  CACHE BOOL  "Enable the FPU test Partitions")
-endif()
diff --git a/tests_reg/test/framework/CMakeLists.txt b/tests_reg/test/framework/CMakeLists.txt
new file mode 100644
index 0000000..e30a3a1
--- /dev/null
+++ b/tests_reg/test/framework/CMakeLists.txt
@@ -0,0 +1,22 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+cmake_minimum_required(VERSION 3.13)
+
+add_library(tfm_test_framework_common INTERFACE)
+
+target_sources(tfm_test_framework_common
+    INTERFACE
+        ${CMAKE_CURRENT_SOURCE_DIR}/test_framework.c
+        ${CMAKE_CURRENT_SOURCE_DIR}/test_framework_helpers.c
+        ${CMAKE_CURRENT_SOURCE_DIR}/test_framework_integ_test_helper.c
+)
+
+target_include_directories(tfm_test_framework_common
+    INTERFACE
+        ${CMAKE_CURRENT_LIST_DIR}
+)
diff --git a/tests_reg/test/ns_regression/CMakeLists.txt b/tests_reg/test/ns_regression/CMakeLists.txt
new file mode 100644
index 0000000..5f81c60
--- /dev/null
+++ b/tests_reg/test/ns_regression/CMakeLists.txt
@@ -0,0 +1,83 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+cmake_minimum_required(VERSION 3.13)
+
+########################## TEST Configuration ##################################
+
+include(utils)
+    dump_options("NS TEST Configuration"
+    "
+        TEST_NS;
+        TEST_NS_ATTESTATION;
+        TEST_NS_CRYPTO;
+        TEST_NS_ITS;
+        TEST_NS_PS;
+        TEST_NS_QCBOR;
+        TEST_NS_T_COSE;
+        TEST_NS_PLATFORM;
+        TEST_NS_FWU;
+        TEST_NS_IPC;
+        TEST_NS_SLIH_IRQ;
+        TEST_NS_FLIH_IRQ;
+        TEST_NS_MULTI_CORE;
+        TEST_NS_MANAGE_NSID;
+        TEST_NS_SFN_BACKEND;
+        TEST_NS_FPU;
+    "
+    )
+
+# Common regression test framework
+add_subdirectory(${CMAKE_SOURCE_DIR}/test/framework ${CMAKE_CURRENT_BINARY_DIR}/framework)
+
+add_library(tfm_ns_tests INTERFACE)
+add_library(tfm_test_framework_ns INTERFACE)
+
+target_compile_definitions(tfm_test_framework_ns
+    INTERFACE
+        DOMAIN_NS=1
+)
+
+target_link_libraries(tfm_test_framework_ns
+    INTERFACE
+        tfm_test_framework_common
+        tfm_api_ns
+        tfm_ns_log
+)
+
+target_sources(tfm_ns_tests
+    INTERFACE
+        non_secure_suites.c
+)
+
+target_link_libraries(tfm_ns_tests
+    INTERFACE
+        tfm_test_framework_ns
+        tfm_config
+)
+
+target_compile_definitions(tfm_ns_tests
+    INTERFACE
+        $<$<BOOL:${TFM_FUZZER_TOOL_TESTS}>:TFM_FUZZER_TOOL_TESTS>
+)
+
+include(test_suite_utils)
+
+# A temporary workaround:
+# Temporarily disable Secure regression test flags to build NS test suites.
+#
+# Alternatively, CMake files in test suites can be seperated into secure ones and non-secure ones.
+pre_ns_suite_build()
+add_subdirectory(${CMAKE_SOURCE_DIR}/test/secure_fw/suites
+                 ${CMAKE_CURRENT_BINARY_DIR}/secure_fw/suites
+)
+# Recover Secure regression test filgs.
+post_ns_suite_build()
+
+
+
+
diff --git a/tests_reg/test/secure_fw/non_secure_suites.c b/tests_reg/test/ns_regression/non_secure_suites.c
similarity index 100%
rename from tests_reg/test/secure_fw/non_secure_suites.c
rename to tests_reg/test/ns_regression/non_secure_suites.c
diff --git a/tests_reg/test/secure_fw/CMakeLists.txt b/tests_reg/test/secure_fw/CMakeLists.txt
deleted file mode 100644
index 6f74262..0000000
--- a/tests_reg/test/secure_fw/CMakeLists.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.13)
-
-########################## TEST Configuration ##################################
-
-include(utils)
-    dump_options("TEST Configuration"
-    "
-        TEST_NS;
-        TEST_S;
-        TEST_NS_ATTESTATION;
-        TEST_NS_CRYPTO;
-        TEST_NS_ITS;
-        TEST_NS_PS;
-        TEST_NS_QCBOR;
-        TEST_NS_T_COSE;
-        TEST_NS_PLATFORM;
-        TEST_NS_FWU;
-        TEST_NS_IPC;
-        TEST_NS_SLIH_IRQ;
-        TEST_NS_FLIH_IRQ;
-        TEST_NS_MULTI_CORE;
-        TEST_NS_MANAGE_NSID;
-        TEST_NS_SFN_BACKEND;
-        TEST_NS_FPU;
-        TEST_S_ATTESTATION;
-        TEST_S_CRYPTO;
-        TEST_S_ITS;
-        TEST_S_PS;
-        TEST_S_PLATFORM;
-        TEST_S_FWU;
-        TEST_S_IPC;
-        TEST_S_SFN_BACKEND;
-        TEST_S_FPU;
-    "
-    )
-
-if (TFM_S_REG_TEST)
-    add_library(tfm_test_framework_s INTERFACE)
-
-    target_link_libraries(tfm_test_framework_s
-        INTERFACE
-            psa_interface
-            tfm_test_framework_common
-            tfm_sprt
-            tfm_config
-    )
-
-    target_compile_definitions(tfm_test_framework_s
-        INTERFACE
-            USE_SP_LOG
-            $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
-    )
-
-    add_library(tfm_s_tests STATIC)
-
-    target_sources(tfm_s_tests
-        PRIVATE
-            ${CMAKE_CURRENT_SOURCE_DIR}/secure_suites.c
-    )
-
-    target_link_libraries(tfm_s_tests
-        PUBLIC
-            tfm_test_framework_s
-            tfm_spm
-    )
-
-endif()
-
-# Include test suites at last after other targets are setup.
-add_subdirectory(suites)
diff --git a/tests_reg/test/secure_fw/suites/CMakeLists.txt b/tests_reg/test/secure_fw/suites/CMakeLists.txt
index 9b7f1e7..9321d0b 100644
--- a/tests_reg/test/secure_fw/suites/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/CMakeLists.txt
@@ -9,40 +9,6 @@
 
 cmake_minimum_required(VERSION 3.13)
 
-if(TFM_NS_REG_TEST AND NS)
-    add_library(tfm_ns_tests INTERFACE)
-    add_library(tfm_test_framework_ns INTERFACE)
-
-    target_compile_definitions(tfm_test_framework_ns
-        INTERFACE
-            DOMAIN_NS=1
-    )
-
-    target_link_libraries(tfm_test_framework_ns
-        INTERFACE
-            tfm_test_framework_common
-            tfm_api_ns
-            tfm_log
-    )
-
-    target_sources(tfm_ns_tests
-        INTERFACE
-            ../non_secure_suites.c
-    )
-
-    target_link_libraries(tfm_ns_tests
-        INTERFACE
-            tfm_test_framework_ns
-            tfm_config
-    )
-
-    target_compile_definitions(tfm_ns_tests
-        INTERFACE
-            $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
-            $<$<BOOL:${TFM_FUZZER_TOOL_TESTS}>:TFM_FUZZER_TOOL_TESTS>
-    )
-endif()
-
 # Add test suites.
 # Secure test suite library targets shall already be added in secure_tests.cmake
 add_subdirectory(attestation)
diff --git a/tests_reg/test/secure_fw/suites/attestation/CMakeLists.txt b/tests_reg/test/secure_fw/suites/attestation/CMakeLists.txt
index 7904750..e95747e 100644
--- a/tests_reg/test/secure_fw/suites/attestation/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/attestation/CMakeLists.txt
@@ -9,7 +9,7 @@
 
 ####################### Non Secure #############################################
 
-if (TEST_NS_ATTESTATION AND TFM_NS_REG_TEST) # Need TFM_NS_REG_TEST to exclude when building SPE
+if (TEST_NS_ATTESTATION)
     add_library(tfm_test_suite_attestation_ns STATIC EXCLUDE_FROM_ALL)
 
     target_sources(tfm_test_suite_attestation_ns
@@ -60,14 +60,17 @@
 
 if (TEST_S_ATTESTATION)
 
-    add_library(tfm_test_suite_attestation_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/attest_token_test.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/ext/qcbor_util/qcbor_util.c
-        $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_symmetric.c>
-        $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/secure/attest_symmetric_s_interface_testsuite.c>
-        $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_asymmetric.c>
-        $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/secure/attest_asymmetric_s_interface_testsuite.c>
+    add_library(tfm_test_suite_attestation_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_attestation_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/attest_token_test.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/ext/qcbor_util/qcbor_util.c
+            $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_symmetric.c>
+            $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/secure/attest_symmetric_s_interface_testsuite.c>
+            $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/attest_token_decode_asymmetric.c>
+            $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/secure/attest_asymmetric_s_interface_testsuite.c>
     )
 
     target_include_directories(tfm_test_suite_attestation_s
diff --git a/tests_reg/test/secure_fw/suites/crypto/CMakeLists.txt b/tests_reg/test/secure_fw/suites/crypto/CMakeLists.txt
index 811b2cb..b94001a 100644
--- a/tests_reg/test/secure_fw/suites/crypto/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/crypto/CMakeLists.txt
@@ -64,9 +64,12 @@
 
 if (TEST_S_CRYPTO)
 
-    add_library(tfm_test_suite_crypto_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/crypto_tests_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/crypto_sec_interface_testsuite.c
+    add_library(tfm_test_suite_crypto_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_crypto_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/crypto_tests_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/crypto_sec_interface_testsuite.c
     )
 
     target_include_directories(tfm_test_suite_crypto_s
diff --git a/tests_reg/test/secure_fw/suites/fpu/CMakeLists.txt b/tests_reg/test/secure_fw/suites/fpu/CMakeLists.txt
index e1c2f33..c8b7d0c 100644
--- a/tests_reg/test/secure_fw/suites/fpu/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/fpu/CMakeLists.txt
@@ -45,9 +45,13 @@
 ####################### Secure #################################################
 
 if (TEST_S_FPU)
-    add_library(tfm_test_suite_fpu_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/fpu_tests_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/fpu_s_interface_testsuite.c
+
+    add_library(tfm_test_suite_fpu_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_fpu_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/fpu_tests_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/fpu_s_interface_testsuite.c
     )
 
     target_include_directories(tfm_test_suite_fpu_s
diff --git a/tests_reg/test/secure_fw/suites/fpu/service/CMakeLists.txt b/tests_reg/test/secure_fw/suites/fpu/service/CMakeLists.txt
index 57c96a3..2cdf772 100644
--- a/tests_reg/test/secure_fw/suites/fpu/service/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/fpu/service/CMakeLists.txt
@@ -36,7 +36,7 @@
         .
     PRIVATE
         ${CMAKE_BINARY_DIR}/generated/secure_fw/test_services/tfm_fpu_service
-        ${CONFIG_TFM_TEST_DIR}/secure_fw/suites/fpu
+        ${SECURE_FW_REG_DIR}/suites/fpu
 )
 
 target_include_directories(tfm_partitions
diff --git a/tests_reg/test/secure_fw/suites/its/CMakeLists.txt b/tests_reg/test/secure_fw/suites/its/CMakeLists.txt
index c87f9f9..da1b603 100644
--- a/tests_reg/test/secure_fw/suites/its/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/its/CMakeLists.txt
@@ -45,10 +45,14 @@
 ####################### Secure #################################################
 
 if (TEST_S_ITS)
-    add_library(tfm_test_suite_its_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/its_tests_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_its_s_interface_testsuite.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_its_s_reliability_testsuite.c
+
+    add_library(tfm_test_suite_its_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_its_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/its_tests_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_its_s_interface_testsuite.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_its_s_reliability_testsuite.c
     )
 
     target_include_directories(tfm_test_suite_its_s
diff --git a/tests_reg/test/secure_fw/suites/platform/CMakeLists.txt b/tests_reg/test/secure_fw/suites/platform/CMakeLists.txt
index 543c3c5..fe62b0b 100644
--- a/tests_reg/test/secure_fw/suites/platform/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/platform/CMakeLists.txt
@@ -44,9 +44,13 @@
 ####################### Secure #################################################
 
 if (TEST_S_PLATFORM)
-    add_library(tfm_test_suite_platform_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/platform_tests_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/platform_s_interface_testsuite.c
+
+    add_library(tfm_test_suite_platform_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_platform_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/platform_tests_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/platform_s_interface_testsuite.c
     )
 
     target_include_directories(tfm_test_suite_platform_s
diff --git a/tests_reg/test/secure_fw/suites/ps/CMakeLists.txt b/tests_reg/test/secure_fw/suites/ps/CMakeLists.txt
index 2ca1e29..cc5547a 100644
--- a/tests_reg/test/secure_fw/suites/ps/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/ps/CMakeLists.txt
@@ -49,10 +49,14 @@
 ####################### Secure #################################################
 
 if (TEST_S_PS)
-    add_library(tfm_test_suite_ps_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_ps_s_interface_testsuite.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_ps_s_reliability_testsuite.c
-        $<$<BOOL:${PS_TEST_NV_COUNTERS}>:${CMAKE_CURRENT_SOURCE_DIR}/secure/ps_rollback_protection_testsuite.c>
+
+    add_library(tfm_test_suite_ps_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_ps_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_ps_s_interface_testsuite.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/psa_ps_s_reliability_testsuite.c
+            $<$<BOOL:${PS_TEST_NV_COUNTERS}>:${CMAKE_CURRENT_SOURCE_DIR}/secure/ps_rollback_protection_testsuite.c>
     )
 
     target_sources(tfm_app_rot_partition_ps
diff --git a/tests_reg/test/secure_fw/suites/spm/ipc/CMakeLists.txt b/tests_reg/test/secure_fw/suites/spm/ipc/CMakeLists.txt
index 957f65e..1503889 100644
--- a/tests_reg/test/secure_fw/suites/spm/ipc/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/spm/ipc/CMakeLists.txt
@@ -47,9 +47,13 @@
 ####################### Secure #################################################
 
 if (TEST_S_IPC)
-    add_library(tfm_test_suite_ipc_s STATIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/ipc_s_interface_testsuite.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/../common/suites/client_api_tests.c
+
+    add_library(tfm_test_suite_ipc_s STATIC EXCLUDE_FROM_ALL)
+
+    target_sources(tfm_test_suite_ipc_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/ipc_s_interface_testsuite.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/../common/suites/client_api_tests.c
     )
 
     target_include_directories(tfm_test_suite_ipc_s
diff --git a/tests_reg/test/secure_fw/suites/spm/ipc/service/tfm_ipc_client/CMakeLists.txt b/tests_reg/test/secure_fw/suites/spm/ipc/service/tfm_ipc_client/CMakeLists.txt
index 9a8dccb..ccaebae 100644
--- a/tests_reg/test/secure_fw/suites/spm/ipc/service/tfm_ipc_client/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/spm/ipc/service/tfm_ipc_client/CMakeLists.txt
@@ -33,7 +33,7 @@
         .
     PRIVATE
         ${CMAKE_BINARY_DIR}/generated/secure_fw/test_services/tfm_ipc_client
-        ${CONFIG_TFM_TEST_DIR}/secure_fw/common_test_services/tfm_secure_client_2
+        ${SECURE_FW_REG_DIR}/common_test_services/tfm_secure_client_2
 )
 
 target_include_directories(tfm_partitions
diff --git a/tests_reg/test/secure_fw/suites/spm/irq/service/tfm_slih_test_service/CMakeLists.txt b/tests_reg/test/secure_fw/suites/spm/irq/service/tfm_slih_test_service/CMakeLists.txt
index fdad447..d54f870 100644
--- a/tests_reg/test/secure_fw/suites/spm/irq/service/tfm_slih_test_service/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/spm/irq/service/tfm_slih_test_service/CMakeLists.txt
@@ -37,6 +37,11 @@
         platform_s
 )
 
+target_compile_definitions(tfm_app_rot_partition_slih_test
+    PUBLIC
+        TFM_PARTITION_SLIH_TEST
+)
+
 target_link_libraries(tfm_spm
     PRIVATE
         tfm_app_rot_partition_slih_test
diff --git a/tests_reg/test/secure_fw/suites/t_cose/CMakeLists.txt b/tests_reg/test/secure_fw/suites/t_cose/CMakeLists.txt
index 1d2f04d..f288a17 100644
--- a/tests_reg/test/secure_fw/suites/t_cose/CMakeLists.txt
+++ b/tests_reg/test/secure_fw/suites/t_cose/CMakeLists.txt
@@ -7,20 +7,25 @@
 
 cmake_policy(SET CMP0079 NEW)
 
-if(TEST_NS_ATTESTATION AND TFM_NS_REG_TEST) # Need TFM_NS_REG_TEST to exclude when building SPE
-    include(${CONFIG_SPE_PATH}/t_cose/tfm_t_cose.cmake)
+if (NOT TEST_NS_ATTESTATION AND NOT TEST_NS_T_COSE)
+    return()
+endif()
+
+set(T_COSE_SRC_DIR ${CONFIG_SPE_PATH}/t_cose)
+
+include(${T_COSE_SRC_DIR}/tfm_t_cose.cmake)
 
 ############################ t_cose non secure #################################
-    add_library(tfm_t_cose_ns STATIC EXCLUDE_FROM_ALL)
 
-    target_link_libraries(tfm_t_cose_ns
-        PRIVATE
-            tfm_t_cose_common
-            tfm_t_cose_defs
-            tfm_qcbor_ns
-            tfm_api_ns
-    )
-endif()
+add_library(tfm_t_cose_ns STATIC EXCLUDE_FROM_ALL)
+
+target_link_libraries(tfm_t_cose_ns
+    PUBLIC
+        tfm_t_cose_common
+        tfm_t_cose_defs
+        tfm_qcbor_ns
+        tfm_api_ns
+)
 
 if (NOT TEST_NS_T_COSE)
     return()
@@ -30,8 +35,6 @@
 
 add_library(tfm_t_cose_test STATIC EXCLUDE_FROM_ALL)
 
-set(T_COSE_SRC_DIR ${CMAKE_SOURCE_DIR}/lib/ext/t_cose)
-
 target_sources(tfm_t_cose_test
     PRIVATE
         ${T_COSE_SRC_DIR}/test/run_tests.c
@@ -47,6 +50,11 @@
         $<BUILD_INTERFACE:${T_COSE_SRC_DIR}/test>
 )
 
+target_link_libraries(tfm_t_cose_test
+    PUBLIC
+        tfm_t_cose_ns
+)
+
 ####################### Non Secure #############################################
 
 add_library(tfm_test_suite_t_cose_ns STATIC EXCLUDE_FROM_ALL)
diff --git a/tests_reg/test/secure_regression/CMakeLists.txt b/tests_reg/test/secure_regression/CMakeLists.txt
new file mode 100644
index 0000000..9a09438
--- /dev/null
+++ b/tests_reg/test/secure_regression/CMakeLists.txt
@@ -0,0 +1,70 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2023, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# Check configuration.
+# Config check shall be performed after all configurations complete.
+# Difficult to insert a hook to perform test config check inside configuration sequence.
+# Put the check here before secure regression tests start.
+include(${CMAKE_CURRENT_LIST_DIR}/../config/check_config.cmake)
+
+if(TFM_S_REG_TEST OR TEST_BL2 OR TEST_BL1_1 OR TEST_BL1_2)
+    # In secure build, if a service/test looks for top-level directories, it will be a very long path.
+    # Define variables of top-level directories to shorten the long paths.
+    # Regresstion test directory
+    set(REG_TEST_DIR          ${CMAKE_CURRENT_LIST_DIR}/../)
+    # Root directory of tf-m-tests
+    set(TFM_TESTS_ROOT_DIR    ${CMAKE_CURRENT_LIST_DIR}/../../../)
+
+    list(APPEND CMAKE_MODULE_PATH ${TFM_TESTS_ROOT_DIR}/cmake)
+    list(APPEND CMAKE_MODULE_PATH ${REG_TEST_DIR}/../utils)
+    include(utils)
+
+    add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../framework ${CMAKE_CURRENT_BINARY_DIR}/framework)
+endif()
+
+if(TFM_S_REG_TEST)
+    include(secure_fw.cmake)
+endif()
+
+if(TEST_BL2)
+    add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../bl2 ${CMAKE_CURRENT_BINARY_DIR}/bl2)
+endif()
+
+if(TEST_BL1_1 OR TEST_BL1_2)
+    add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../bl1 ${CMAKE_CURRENT_BINARY_DIR}/bl1)
+endif()
+
+# NS test suites
+get_cmake_property(CACHE_VARS CACHE_VARIABLES)
+foreach(CACHE_VAR ${CACHE_VARS})
+    get_property(HELP_STRING CACHE ${CACHE_VAR} PROPERTY HELPSTRING)
+    get_property(CACHE_TYPE CACHE ${CACHE_VAR} PROPERTY TYPE)
+
+    string(REGEX MATCH "^TEST_NS.+" _NS_TEST_FOUND "${CACHE_VAR}")
+    if (_NS_TEST_FOUND)
+        format_string(FORMATTED_CACHE_VAR ${CACHE_VAR} 25 " ")
+        format_string(FORMATTED_CACHE_VAL ${${CACHE_VAR}} 5 " ")
+        string(APPEND NS_TEST_CONFIG_OPTIONS
+               "set(${FORMATTED_CACHE_VAR} ${FORMATTED_CACHE_VAL} CACHE ${CACHE_TYPE} \"${HELP_STRING}\")\r\n"
+        )
+    endif()
+endforeach()
+
+# Specify TFM_NS_REG_TEST
+string(APPEND NS_TEST_CONFIG_OPTIONS
+       "set(TFM_NS_REG_TEST \"${TFM_NS_REG_TEST}\")\r\n"
+)
+
+# Extra NS test sute path
+string(APPEND NS_TEST_CONFIG_OPTIONS
+       "set(EXTRA_NS_TEST_SUITE_PATH \"${EXTRA_NS_TEST_SUITE_PATH}\"  CACHE PATH \"List of extra non-secure test suites directories. An extra test suite folder contains source code, CMakeLists.txt and cmake configuration file\")\r\n"
+)
+
+# This file is for NS build
+configure_file(${CMAKE_CURRENT_LIST_DIR}/../config/config_ns_test.cmake.in
+               ${CMAKE_INSTALL_PREFIX}/config_ns_test.cmake
+               @ONLY)
\ No newline at end of file
diff --git a/tests_reg/test/secure_regression/secure_fw.cmake b/tests_reg/test/secure_regression/secure_fw.cmake
new file mode 100644
index 0000000..4714639
--- /dev/null
+++ b/tests_reg/test/secure_regression/secure_fw.cmake
@@ -0,0 +1,86 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+# Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
+# or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+include(utils)
+    dump_options("TEST Configuration"
+    "
+        TEST_NS;
+        TEST_S;
+        TEST_NS_ATTESTATION;
+        TEST_NS_CRYPTO;
+        TEST_NS_ITS;
+        TEST_NS_PS;
+        TEST_NS_QCBOR;
+        TEST_NS_T_COSE;
+        TEST_NS_PLATFORM;
+        TEST_NS_FWU;
+        TEST_NS_IPC;
+        TEST_NS_SLIH_IRQ;
+        TEST_NS_FLIH_IRQ;
+        TEST_NS_MULTI_CORE;
+        TEST_NS_MANAGE_NSID;
+        TEST_NS_SFN_BACKEND;
+        TEST_NS_FPU;
+        TEST_S_ATTESTATION;
+        TEST_S_CRYPTO;
+        TEST_S_ITS;
+        TEST_S_PS;
+        TEST_S_PLATFORM;
+        TEST_S_FWU;
+        TEST_S_IPC;
+        TEST_S_SFN_BACKEND;
+        TEST_S_FPU;
+    "
+    )
+
+add_library(tfm_test_framework_s INTERFACE)
+add_library(tfm_s_tests STATIC)
+
+target_link_libraries(tfm_test_framework_s
+    INTERFACE
+        psa_interface
+        tfm_test_framework_common
+        tfm_sprt
+        tfm_config
+)
+
+target_compile_definitions(tfm_test_framework_s
+    INTERFACE
+        USE_SP_LOG
+)
+
+target_sources(tfm_s_tests
+    PRIVATE
+        ${CMAKE_CURRENT_LIST_DIR}/secure_suites.c
+)
+
+target_link_libraries(tfm_s_tests
+    PUBLIC
+        tfm_test_framework_s
+        tfm_config
+        tfm_spm
+)
+
+target_compile_definitions(tfm_s_tests
+    PRIVATE
+        $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
+)
+
+include(test_suite_utils)
+
+# A temporary workaround:
+# Temporarily disable Non-secure regression test flags to build NS test suites.
+#
+# Alternatively, CMake files in test suites can be seperated into secure ones and non-secure ones.
+pre_secure_suite_build()
+add_subdirectory(${SECURE_FW_REG_DIR}/suites
+                 ${CMAKE_CURRENT_BINARY_DIR}/secure_fw/suites
+)
+# Recover Non-secure regression test filgs.
+post_secure_suite_build()
diff --git a/tests_reg/test/secure_fw/secure_suites.c b/tests_reg/test/secure_regression/secure_suites.c
similarity index 100%
rename from tests_reg/test/secure_fw/secure_suites.c
rename to tests_reg/test/secure_regression/secure_suites.c
diff --git a/tests_reg/test_app.c b/tests_reg/test_app.c
index bd45b38..d29743c 100644
--- a/tests_reg/test_app.c
+++ b/tests_reg/test_app.c
@@ -7,7 +7,9 @@
 
 #include "test_app.h"
 #include "tfm_log.h"
+#ifdef TFM_NS_REG_TEST
 #include "test_framework_integ_test.h"
+#endif
 
 /**
  * \brief Services test thread
@@ -18,7 +20,9 @@
 {
     UNUSED_VARIABLE(argument);
 
+#ifdef TFM_NS_REG_TEST
     tfm_non_secure_client_run_tests();
+#endif
 
     /* Output EOT char for test environments like FVP. */
     LOG_MSG("\x04");
diff --git a/tests_reg/utils/regression_flag_parse.cmake b/tests_reg/utils/regression_flag_parse.cmake
new file mode 100644
index 0000000..ee05c45
--- /dev/null
+++ b/tests_reg/utils/regression_flag_parse.cmake
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2023, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# Set whether Secure and Non-secure regression tests are selected.
+# If any regression test is selected, set corresponding TFM_S_REG_TEST/TEST_NS_REG_TEST to
+# require TF-M build secure tests and test partitions.
+#
+# cmd_line: the output argument to collect the arguments via command line
+#
+function(parse_regression_flag cmd_line)
+
+    set(TFM_NS_REG_TEST OFF)
+    set(TFM_S_REG_TEST  OFF)
+
+    get_cmake_property(CACHE_VARS CACHE_VARIABLES)
+
+    # By default all non-secure regression tests are disabled.
+    # If TEST_NS or TEST_NS_XXX flag is passed via command line and set to ON,
+    # selected corresponding features to support non-secure regression tests.
+    foreach(CACHE_VAR ${CACHE_VARS})
+        string(REGEX MATCH "^TEST_NS.*" _NS_TEST_FOUND "${CACHE_VAR}")
+        if (_NS_TEST_FOUND AND "${${CACHE_VAR}}")
+            # TFM_NS_REG_TEST is a TF-M internal cmake flag to manage building
+            # tf-m-tests non-secure regression tests related source
+            set(TFM_NS_REG_TEST ON)
+            break()
+        endif()
+    endforeach()
+
+    foreach(CACHE_VAR ${CACHE_VARS})
+        string(REGEX MATCH "^TEST_S.*" _S_TEST_FOUND "${CACHE_VAR}")
+        if (_S_TEST_FOUND AND "${${CACHE_VAR}}")
+            # TFM_S_REG_TEST is a TF-M internal cmake flag to manage building
+            # tf-m-tests secure regression tests related source
+            set(TFM_S_REG_TEST ON)
+            break()
+        endif()
+    endforeach()
+
+    # By default EXTRA_<NS/S>_TEST_SUITES_PATHS is not set, extra test is also an
+    # out-of-tree build regression test, and if they are enabled,
+    # TFM_<NS/S>_REG_TEST will be enabled.
+    if (EXTRA_NS_TEST_SUITE_PATH)
+        set(TFM_NS_REG_TEST ON)
+    endif()
+
+    if (EXTRA_S_TEST_SUITE_PATH)
+        set(TFM_S_REG_TEST ON)
+    endif()
+
+    set(ns_reg_cmd    "-DTFM_NS_REG_TEST:BOOL=${TFM_NS_REG_TEST}")
+    set(s_reg_cmd     "-DTFM_S_REG_TEST:BOOL=${TFM_S_REG_TEST}")
+    set(${cmd_line}   "${${cmd_line}};${ns_reg_cmd};${s_reg_cmd}" PARENT_SCOPE)
+
+endfunction()
diff --git a/tests_reg/utils/test_suite_utils.cmake b/tests_reg/utils/test_suite_utils.cmake
new file mode 100644
index 0000000..e9e6c66
--- /dev/null
+++ b/tests_reg/utils/test_suite_utils.cmake
@@ -0,0 +1,86 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2023, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# Temporarily unset NS test flags to skip NS test suites during S build.
+# These flags will be recovered in post_secure_suite_build().
+# Their values are kept in temporary local variables.
+macro(pre_secure_suite_build)
+    get_cmake_property(CACHE_VARS CACHE_VARIABLES)
+
+    foreach(CACHE_VAR ${CACHE_VARS})
+        string(REGEX MATCH "^TEST_NS.*" _NS_TEST_FOUND "${CACHE_VAR}")
+        if(_NS_TEST_FOUND AND "${${CACHE_VAR}}")
+            set(TEMP_${CACHE_VAR} ${${CACHE_VAR}})
+            unset(${CACHE_VAR} CACHE)
+        endif()
+    endforeach()
+
+    if(EXTRA_NS_TEST_SUITE_PATH)
+        set(TEMP_EXTRA_NS_TEST_SUITE_PATH ${EXTRA_NS_TEST_SUITE_PATH})
+        unset(EXTRA_NS_TEST_SUITE_PATH CACHE)
+    endif()
+endmacro()
+
+# Recover test flags unset in pre_secure_suite_build().
+# Their values are restored from temporary local variables and written back.
+macro(post_secure_suite_build)
+    get_cmake_property(TEMP_TEST_VARS VARIABLES)
+
+    foreach(TEMP_TEST ${TEMP_TEST_VARS})
+        string(REGEX MATCH "^TEMP_TEST_NS.*" _NS_TEST_FOUND "${TEMP_TEST}")
+        if(_NS_TEST_FOUND AND "${${TEMP_TEST}}")
+            string(REGEX REPLACE "^TEMP_" "" TEST_NAME ${TEMP_TEST})
+            set(${TEST_NAME}    ON    CACHE BOOL "")
+            unset(${TEMP_TEST})
+        endif()
+    endforeach()
+
+    if(TEMP_EXTRA_NS_TEST_SUITE_PATH)
+        set(EXTRA_NS_TEST_SUITE_PATH    ${TEMP_EXTRA_NS_TEST_SUITE_PATH}    CACHE PATH "")
+        unset(TEMP_EXTRA_NS_TEST_SUITE_PATH)
+    endif()
+endmacro()
+
+# Temporarily unset S test flags to skip S test suites during NS build.
+# These flags will be recovered in post_ns_suite_build(). Their values are kept in temporary local
+# variables.
+macro(pre_ns_suite_build)
+    get_cmake_property(CACHE_VARS CACHE_VARIABLES)
+
+    foreach(CACHE_VAR ${CACHE_VARS})
+        string(REGEX MATCH "^TEST_S.*" _S_TEST_FOUND "${CACHE_VAR}")
+        if(_S_TEST_FOUND AND "${${CACHE_VAR}}")
+            set(TEMP_${CACHE_VAR} ${${CACHE_VAR}})
+            unset(${CACHE_VAR} CACHE)
+        endif()
+    endforeach()
+
+    if(EXTRA_S_TEST_SUITE_PATH)
+        set(TEMP_EXTRA_S_TEST_SUITE_PATH ${EXTRA_S_TEST_SUITE_PATH})
+        unset(EXTRA_S_TEST_SUITE_PATH CACHE)
+    endif()
+endmacro()
+
+# Recover test flags unset in pre_ns_suite_build().
+# Their values are restored from temporary local variables and written back.
+macro(post_ns_suite_build)
+    get_cmake_property(TEMP_TEST_VARS VARIABLES)
+
+    foreach(TEMP_TEST ${TEMP_TEST_VARS})
+        string(REGEX MATCH "^TEMP_TEST_S.*" _S_TEST_FOUND "${TEMP_TEST}")
+        if(_S_TEST_FOUND AND "${${TEMP_TEST}}")
+            string(REGEX REPLACE "^TEMP_" "" TEST_NAME ${TEMP_TEST})
+            set(${TEST_NAME}    ON    CACHE BOOL "")
+            unset(${TEMP_TEST})
+        endif()
+    endforeach()
+
+    if(TEMP_EXTRA_S_TEST_SUITE_PATH)
+        set(EXTRA_S_TEST_SUITE_PATH    ${TEMP_EXTRA_S_TEST_SUITE_PATH}    CACHE PATH "")
+        unset(TEMP_EXTRA_S_TEST_SUITE_PATH)
+    endif()
+endmacro()
