diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a7f1f2..51e21eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,8 @@
 endif()
 
 include(${CMAKE_SCRIPTS_DIR}/common_user_options.cmake)
-include(${CMAKE_SCRIPTS_DIR}/platforms/${TARGET_PLATFORM}/build_configuration.cmake)
+
+add_platform_build_configuration(TARGET_PLATFORM ${TARGET_PLATFORM})
 
 set_platform_global_defaults()
 
@@ -88,9 +89,6 @@
 set(TEST_SRCS  ${CMAKE_CURRENT_SOURCE_DIR}/tests)
 list(APPEND USE_CASES_TESTS_SEARCH_DIR_LIST ${TEST_SRCS}/use_case)
 
-if (CPU_PROFILE_ENABLED)
-    set(PROFILING_OPT "${PROFILING_OPT} -DCPU_PROFILE_ENABLED")
-endif()
 # We include log target
 add_subdirectory(${SRC_PATH}/log ${CMAKE_BINARY_DIR}/log)
 
@@ -147,6 +145,8 @@
     set(USE_CASES ${USE_CASE_BUILD})
 endif()
 
+list(REMOVE_ITEM USE_CASES "" ${EXCLUDED_USE_CASES})
+message(STATUS "Use-cases excluded by platform configuration: ${EXCLUDED_USE_CASES}")
 message(STATUS "Building use-cases: ${USE_CASES}.")
 foreach(use_case ${USE_CASES})
 
@@ -220,6 +220,10 @@
     target_compile_definitions(${UC_LIB_NAME} PUBLIC
             "ACTIVATION_BUF_SZ=${${use_case}_ACTIVATION_BUF_SZ}")
 
+    # Set the CPU profiling defintiion
+    target_compile_definitions(${UC_LIB_NAME} PRIVATE
+            $<$<BOOL:${CPU_PROFILE_ENABLED}>:CPU_PROFILE_ENABLED>)
+
     target_link_libraries(${UC_LIB_NAME} PUBLIC
         log
         arm_math
diff --git a/scripts/cmake/platforms/native/build_configuration.cmake b/scripts/cmake/platforms/native/build_configuration.cmake
index c87ac89..bf6f980 100644
--- a/scripts/cmake/platforms/native/build_configuration.cmake
+++ b/scripts/cmake/platforms/native/build_configuration.cmake
@@ -15,19 +15,6 @@
 #  limitations under the License.
 #----------------------------------------------------------------------------
 
-set(TEST_TPIP ${DOWNLOAD_DEP_DIR}/test)
-
-file(MAKE_DIRECTORY ${TEST_TPIP})
-set(TEST_TPIP_INCLUDE ${TEST_TPIP}/include)
-file(MAKE_DIRECTORY ${TEST_TPIP_INCLUDE})
-
-ExternalProject_Add(catch2-headers
-        URL https://github.com/catchorg/Catch2/releases/download/v2.11.1/catch.hpp
-        DOWNLOAD_NO_EXTRACT 1
-        CONFIGURE_COMMAND ""
-        BUILD_COMMAND bash -c "cp -R <DOWNLOAD_DIR>/catch.hpp ${TEST_TPIP_INCLUDE}"
-        INSTALL_COMMAND "")
-
 function(set_platform_global_defaults)
     message(STATUS "Platform: Native (Linux based x86_64/aarch64 system)")
     if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
@@ -35,6 +22,24 @@
                 CACHE FILEPATH "Toolchain file")
     endif()
 
+    set(TEST_TPIP ${DOWNLOAD_DEP_DIR}/test)
+
+    file(MAKE_DIRECTORY ${TEST_TPIP})
+    set(TEST_TPIP_INCLUDE ${TEST_TPIP}/include)
+    file(MAKE_DIRECTORY ${TEST_TPIP_INCLUDE})
+
+    ExternalProject_Add(catch2-headers
+            URL https://github.com/catchorg/Catch2/releases/download/v2.11.1/catch.hpp
+            DOWNLOAD_NO_EXTRACT 1
+            CONFIGURE_COMMAND ""
+            BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/catch.hpp ${TEST_TPIP_INCLUDE}
+            INSTALL_COMMAND "")
+
+    add_library(catch2 INTERFACE)
+    target_include_directories(catch2
+            INTERFACE
+            ${TEST_TPIP_INCLUDE})
+
 endfunction()
 
 function(platform_custom_post_build)
@@ -98,16 +103,10 @@
 
         set(TEST_TARGET_NAME "${CMAKE_PROJECT_NAME}-${use_case}-tests")
         add_executable(${TEST_TARGET_NAME} ${TEST_SOURCES})
-        target_include_directories(${TEST_TARGET_NAME} PUBLIC
-                ${TEST_TPIP_INCLUDE} ${TEST_RESOURCES_INCLUDE})
-        target_link_libraries(${TEST_TARGET_NAME} PUBLIC ${UC_LIB_NAME})
+        target_include_directories(${TEST_TARGET_NAME} PRIVATE ${TEST_RESOURCES_INCLUDE})
+        target_link_libraries(${TEST_TARGET_NAME} PRIVATE ${UC_LIB_NAME} catch2)
         target_compile_definitions(${TEST_TARGET_NAME} PRIVATE
                 "ACTIVATION_BUF_SZ=${${use_case}_ACTIVATION_BUF_SZ}"
                 TESTS)
-
-        add_dependencies(
-                "${TEST_TARGET_NAME}"
-                "catch2-headers"
-        )
     endif ()
 endfunction()
\ No newline at end of file
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 9a4066d..9d72405 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -1,5 +1,5 @@
 #----------------------------------------------------------------------------
-#  Copyright (c) 2021 Arm Limited. All rights reserved.
+#  Copyright (c) 2021 - 2022 Arm Limited. All rights reserved.
 #  SPDX-License-Identifier: Apache-2.0
 #
 #  Licensed under the Apache License, Version 2.0 (the "License");
@@ -65,22 +65,6 @@
         DESTINATION ${TENSORFLOW_LITE_MICRO_PATH}/tools/make/targets/)
 endif()
 
-#TODO: this thing fails the TF build, when the driver is compiled, fatal error: 'ethosETHOSU_ARCH_interface.h' file not found
-#if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
-#    set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_generic")
-#    set(TENSORFLOW_LITE_MICRO_TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR}${CPU_FEATURES})
-#    if(ETHOS_U_NPU_ENABLED)
-#        # Arm Ethos-U55 NPU is the co-processor for ML workload:
-#        set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR  "ethos_u")
-#    endif()
-#
-#    set(TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL  "cmsis_nn")
-#
-#else()
-#    set(TENSORFLOW_LITE_MICRO_TARGET "linux")
-#    set(TENSORFLOW_LITE_MICRO_TARGET_ARCH x86_64)
-#endif()
-
 if (TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS)
     list(APPEND MAKE_TARGETS_LIST "clean_downloads")
 endif()
diff --git a/scripts/cmake/util_functions.cmake b/scripts/cmake/util_functions.cmake
index f9742f7..447265c 100644
--- a/scripts/cmake/util_functions.cmake
+++ b/scripts/cmake/util_functions.cmake
@@ -174,3 +174,20 @@
     endif()
 
 endfunction()
+
+function(add_platform_build_configuration)
+
+    set(oneValueArgs TARGET_PLATFORM)
+    cmake_parse_arguments(PARSED "" "${oneValueArgs}" "" ${ARGN} )
+    message(STATUS "Searching for ${PARSED_TARGET_PLATFORM} build configuration")
+    list(APPEND PLATFORM_BUILD_CONFIG_DIRS ${CMAKE_SCRIPTS_DIR}/platforms)
+
+    FIND_PATH(PLATFORM_BUILD_CONFIG
+            NAMES build_configuration.cmake
+            PATH_SUFFIXES ${PARSED_TARGET_PLATFORM}
+            PATHS ${PLATFORM_BUILD_CONFIG_DIRS}
+            )
+
+    message(STATUS "Found build configuration: ${PLATFORM_BUILD_CONFIG}")
+    include(${PLATFORM_BUILD_CONFIG}/build_configuration.cmake)
+endfunction()
\ No newline at end of file
diff --git a/source/hal/platform/mps3/CMakeLists.txt b/source/hal/platform/mps3/CMakeLists.txt
index ad510ee..46db2aa 100644
--- a/source/hal/platform/mps3/CMakeLists.txt
+++ b/source/hal/platform/mps3/CMakeLists.txt
@@ -33,7 +33,7 @@
 # 2. Set the platform cmake descriptor file
 if (NOT DEFINED PLATFORM_CMAKE_DESCRIPTOR_FILE)
     set(PLATFORM_CMAKE_DESCRIPTOR_FILE
-        cmake/subsystem-profiles/corstone-sse-300.cmake
+        cmake/subsystem-profiles/${TARGET_SUBSYSTEM}.cmake
         CACHE PATH
         "Platform's CMake descriptor file path")
 endif()
diff --git a/source/hal/platform/mps3/cmake/subsystem-profiles/corstone-sse-300.cmake b/source/hal/platform/mps3/cmake/subsystem-profiles/sse-300.cmake
similarity index 100%
rename from source/hal/platform/mps3/cmake/subsystem-profiles/corstone-sse-300.cmake
rename to source/hal/platform/mps3/cmake/subsystem-profiles/sse-300.cmake
