Adding CMake build support.
diff --git a/api-tests/CMakeLists.txt b/api-tests/CMakeLists.txt
new file mode 100644
index 0000000..fa949a3
--- /dev/null
+++ b/api-tests/CMakeLists.txt
@@ -0,0 +1,385 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# Set the minimum required version of CMake for the project
+cmake_minimum_required(VERSION 3.10)
+
+# cmake_policy
+cmake_policy(SET CMP0057 NEW)
+
+# Find python interpreter version 3 or greater
+find_package(PythonInterp 3 REQUIRED)
+# Find Git package
+find_package(Git REQUIRED)
+
+get_filename_component(PSA_ROOT_DIR . ABSOLUTE)
+
+list(APPEND CMAKE_MODULE_PATH ${PSA_ROOT_DIR}/tools/cmake)
+include("common/Utils")
+include(${PSA_ROOT_DIR}/tools/cmake/common/CMakeSettings.cmake)
+
+# list of supported suites
+list(APPEND PSA_SUITES
+	"IPC"
+	"CRYPTO"
+	"PROTECTED_STORAGE"
+	"INTERNAL_TRUSTED_STORAGE"
+	"INITIAL_ATTESTATION"
+)
+
+# list of ipc files required
+list(APPEND PSA_IPC_FILES
+	"psa/client.h"
+	"psa/service.h"
+	"psa_manifest/sid.h"
+	"psa_manifest/pid.h"
+	"psa/lifecycle.h"
+)
+
+# list of crypto files required
+list(APPEND PSA_CRYPTO_FILES
+	"psa/crypto.h"
+)
+
+# list of protected_storage files required
+list(APPEND PSA_PROTECTED_STORAGE_FILES
+	"psa/protected_storage.h"
+)
+
+# list of internal_trusted_storage files required
+list(APPEND PSA_INTERNAL_TRUSTED_STORAGE_FILES
+	"psa/internal_trusted_storage.h"
+)
+
+# list of initial_attestation files required
+list(APPEND PSA_INITIAL_ATTESTATION_FILES
+	"psa/initial_attestation.h"
+	"psa/crypto.h"
+)
+
+# list of supported toolchains
+list(APPEND PSA_TOOLCHAIN_SUPPORT
+        GNUARM
+        ARMCLANG
+        HOST_GCC
+)
+
+# list of suported CPU arch
+list(APPEND PSA_CPU_ARCH_SUPPORT
+	armv8m_ml
+	armv8m_bl
+	armv7m
+)
+
+# list of VERBOSE options
+list(APPEND PSA_VERBOSE_OPTIONS 1 2 3 4 5)
+
+message(STATUS "[PSA] : ----------Process input arguments- start-------------")
+
+# Check for TARGET command line argument
+_check_arguments("TARGET")
+# Check for SUTIE command line argument
+_check_arguments("SUITE")
+# Check for PSA_INCLUDE_PATHS command line argument
+_check_arguments("PSA_INCLUDE_PATHS")
+# Check for CPU_ARCH command line argument
+_check_arguments("CPU_ARCH")
+
+string(TOLOWER ${SUITE} SUITE_LOWER)
+
+# Check for valid targets
+_get_sub_dir_list(PSA_TARGET_LIST ${PSA_ROOT_DIR}/platform/targets)
+if(NOT ${TARGET} IN_LIST PSA_TARGET_LIST)
+	message(FATAL_ERROR "[PSA] : Error: Unspported value for -DTARGET=, supported targets are : ${PSA_TARGET_LIST}")
+endif()
+
+# Check for the presence of required test suite directories
+if((NOT IS_DIRECTORY ${PSA_ROOT_DIR}/dev_apis) OR (NOT IS_DIRECTORY ${PSA_ROOT_DIR}/ff))
+	message(STATUS "[PSA] : Error: Could not find architecture test suite directories in psa root path ${PSA_ROOT_DIR}")
+endif()
+
+if(FALSE)
+# Check for build directory specified
+if(NOT DEFINED BUILD)
+	set(BUILD ${CMAKE_CURRENT_BINARY_DIR}/BUILD CACHE INTERNAL "Defaulting build directory to ${BUILD}" FORCE)
+else()
+	set(BUILD ${CMAKE_CURRENT_BINARY_DIR}/${BUILD}/BUILD CACHE INTERNAL "Defaulting build directory to ${BUILD}" FORCE)
+endif()
+endif()
+
+# Check for valid suite cmake argument passed
+if(NOT ${SUITE} IN_LIST PSA_SUITES)
+	message(FATAL_ERROR "[PSA] : Error: Unsupported value for -DSUITE=, select one from supported suites which are : ${PSA_SUITES}")
+endif()
+
+# Project variables
+set(PSA_TARGET_PRE_BUILD		psa_pre_build)
+set(PSA_TARGET_GENERATE_DATABASE_PRE	psa_generate_database_prerequisite)
+set(PSA_TARGET_GENERATE_DATABASE	psa_generate_database)
+set(PSA_TARGET_GENERATE_DATABASE_POST	psa_generate_database_cleanup)
+set(PSA_TARGET_QCBOR			psa_qcbor)
+set(PSA_TARGET_PAL_NSPE_LIB		pal_nspe)
+set(PSA_TARGET_VAL_NSPE_LIB		val_nspe)
+set(PSA_TARGET_TEST_COMBINE_LIB		test_combine)
+set(PSA_TARGET_DRIVER_PARTITION_LIB	driver_partition)
+set(PSA_TARGET_CLIENT_PARTITION_LIB	client_partition)
+set(PSA_TARGET_SERVER_PARTITION_LIB	server_partition)
+if(${SUITE} STREQUAL "IPC")
+	set(PSA_SUITE_DIR		${PSA_ROOT_DIR}/ff/${SUITE_LOWER})
+	set(PSA_SUITE_OUT_DIR		${CMAKE_CURRENT_BINARY_DIR}/ff/${SUITE_LOWER})
+else()
+	set(PSA_SUITE_DIR		${PSA_ROOT_DIR}/dev_apis/${SUITE_LOWER})
+	set(PSA_SUITE_OUT_DIR		${CMAKE_CURRENT_BINARY_DIR}/dev_apis/${SUITE_LOWER})
+endif()
+set(PSA_TARGET_CONFIG_HEADER_GENERATOR	${PSA_ROOT_DIR}/tools/scripts/target_cfg/targetConfigGen.py)
+set(PSA_TESTLIST_GENERATOR		${PSA_ROOT_DIR}/tools/scripts/gen_tests_list.py)
+set(TARGET_CONFIGURATION_FILE		${PSA_ROOT_DIR}/platform/targets/${TARGET}/target.cfg)
+set(TGT_CONFIG_SOURCE_C			${CMAKE_CURRENT_BINARY_DIR}/targetConfigGen.c)
+set(OUTPUT_HEADER			target_database.h)
+set(DATABASE_TABLE_NAME			target_database)
+set(DATABASE_TABLE_SECTION_NAME		"NOSECTION")
+set(TARGET_HEADER_GEN_INCLUDE_PATHS     "${PSA_ROOT_DIR}/val/nspe|${PSA_ROOT_DIR}/val/common|${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common|${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto")
+set(TESTSUITE_DB			${PSA_SUITE_DIR}/testsuite.db)
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+set(PSA_QCBOR_GIT_REPO_LINK		https://github.com/laurencelundblade/QCBOR.git)
+set(PSA_QCBOR_GIT_REPO_TAG		da53227db1488dde0952bdff66c3d904dce270b3)
+set(PSA_QCBOR_INCLUDE_PATH		${CMAKE_CURRENT_BINARY_DIR}/src/psa_qcbor/inc)
+endif()
+set(PSA_TESTLIST_FILE			${CMAKE_CURRENT_BINARY_DIR}/testlist.txt)
+set(PSA_TEST_ENTRY_LIST_INC		${CMAKE_CURRENT_BINARY_DIR}/test_entry_list.inc)
+set(PSA_TEST_ENTRY_FUN_DECLARE_INC	${CMAKE_CURRENT_BINARY_DIR}/test_entry_fn_declare_list.inc)
+set(PSA_CLIENT_TEST_LIST_DELCARE_INC	${CMAKE_CURRENT_BINARY_DIR}/client_tests_list_declare.inc)
+set(PSA_CLIENT_TEST_LIST_INC		${CMAKE_CURRENT_BINARY_DIR}/client_tests_list.inc)
+set(PSA_SERVER_TEST_LIST_DECLARE_INC	${CMAKE_CURRENT_BINARY_DIR}/server_tests_list_declare.inc)
+set(PSA_SERVER_TEST_LIST		${CMAKE_CURRENT_BINARY_DIR}/server_tests_list.inc)
+
+# Validity check for required files for a given suite
+if(NOT DEFINED PSA_${SUITE}_FILES)
+	message(FATAL_ERROR "[PSA] : List of file/s to verify against ${suite} is not defined")
+endif()
+foreach(file_item ${PSA_${SUITE}_FILES})
+	set(PSA_FILE_FOUND FALSE)
+	foreach(include_path ${PSA_INCLUDE_PATHS})
+		if((EXISTS ${include_path}/${file_item}) AND
+		   (NOT PSA_FILE_FOUND))
+			set(PSA_FILE_FOUND TRUE)
+			break()
+		endif()
+	endforeach()
+	if(NOT PSA_FILE_FOUND)
+		message(FATAL_ERROR "[PSA] : Couldn't find ${file_item} in ${PSA_INCLUDE_PATHS}")
+	endif()
+endforeach()
+
+# Check for TOOLCHAIN command line argument
+if(NOT DEFINED TOOLCHAIN)
+        set(TOOLCHAIN "GNUARM" CACHE INTERNAL "Compiler used" FORCE)
+        message(STATUS "[PSA] : Defaulting compiler to ${TOOLCHAIN}")
+endif()
+
+# Check for CPU architecture
+if(NOT ${CPU_ARCH} IN_LIST PSA_CPU_ARCH_SUPPORT)
+	message(FATAL_ERROR "[PSA] : Error: Unsupported value for -DCPU_ARCH=, supported CPU arch are : ${PSA_CPU_ARCH_SUPPORT}")
+endif()
+
+
+# Check for VERBOSE
+if(NOT DEFINED VERBOSE)
+	set(VERBOSE 3 CACHE INTERNAL "Default VERBOSE value" FORCE)
+        message(STATUS "[PSA] : Defaulting to VERBOSE=3")
+else()
+	if(NOT ${VERBOSE} IN_LIST PSA_VERBOSE_OPTIONS)
+		message(FATAL_ERROR "[PSA] : Error: Unspported value for -DVERBOSE=, supported values are : ${PSA_VERBOSE_OPTIONS}")
+	endif()
+endif()
+
+if(NOT DEFINED INCLUDE_PANIC_TESTS)
+	set(INCLUDE_PANIC_TESTS 0 CACHE INTERNAL "By default panic tests are disabled" FORCE)
+        message(STATUS "[PSA] : Defaulting to INCLUDE_PANIC_TESTS=0")
+else()
+	if(INCLUDE_PANIC_TESTS EQUAL 1)
+		message(STATUS "[PSA] : Ensure you set watchdog.num to 1 in ${PSA_ROOT_DIR}/platform/targets/${TARGET}/target.cfg")
+		message(STATUS "[PSA] : To test PSA APIs panic conditions, test harness may require to access watchdog timer "
+                	                "to recover from panic and to be able to continue with next test. "
+                        	        "Ignore this warning if system under test has capability to reset the system "
+                                	"when it encounters panic condition.")
+	endif()
+endif()
+
+if(NOT DEFINED WATCHDOG_AVAILABLE)
+	set(WATCHDOG_AVAILABLE	1 CACHE INTERNAL "By default watchdog is enabled" FORCE)
+        message(STATUS "[PSA] : Watchdog is enabled by default")
+endif()
+
+if((INCLUDE_PANIC_TESTS EQUAL 1) AND
+   (WATCHDOG_AVAILABLE EQUAL 0))
+	message(FATAL_ERROR "[PSA]: Panic test execution needs watchdog to be enabled! set -DWATCHDOG_AVAILABLE=1")
+endif()
+
+if(NOT DEFINED SP_HEAP_MEM_SUPP)
+	set(SP_HEAP_MEM_SUPP 1 CACHE INTERNAL "Are dynamic memory functions available to secure partition?" FORCE)
+        message(STATUS "[PSA] : Default value for SP_HEAP_MEM_SUPP is ${SP_HEAP_MEM_SUPP}")
+endif()
+
+if(NOT DEFINED TEST_COMBINE_ARCHIVE)
+	set(TEST_COMBINE_ARCHIVE 1 CACHE INTERNAL "Default option is to create archive" FORCE)
+        message(STATUS "[PSA] : Default value for TEST_COMBINE_ARCHIVE is ${TEST_COMBINE_ARCHIVE}")
+endif()
+
+message(STATUS "[PSA] : ----------Process input arguments- complete-------------")
+
+# Create PSA clean list
+list(APPEND PSA_CLEAN_LIST
+        ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_HEADER}
+	${PSA_TESTLIST_FILE}
+	${PSA_TEST_ENTRY_LIST_INC}
+	${PSA_TEST_ENTRY_FUN_DECLARE_INC}
+	${PSA_CLIENT_TEST_LIST_DELCARE_INC}
+	${PSA_CLIENT_TEST_LIST_INC}
+	${PSA_SERVER_TEST_LIST_DECLARE_INC}
+	${PSA_SERVER_TEST_LIST}
+)
+
+# Process testsuite.db
+message(STATUS "[PSA] : Creating testlist.txt 'available at ${PSA_TESTLIST_FILE}'")
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${PSA_TESTLIST_GENERATOR}
+					${SUITE_LOWER}
+					${TESTSUITE_DB}
+					${INCLUDE_PANIC_TESTS}
+					${PSA_TESTLIST_FILE}
+					${PSA_TEST_ENTRY_LIST_INC}
+					${PSA_TEST_ENTRY_FUN_DECLARE_INC}
+					${PSA_CLIENT_TEST_LIST_DELCARE_INC}
+					${PSA_CLIENT_TEST_LIST_INC}
+					${PSA_SERVER_TEST_LIST_DECLARE_INC}
+					${PSA_SERVER_TEST_LIST})
+# Creating CMake list variable from file
+file(READ ${PSA_TESTLIST_FILE} PSA_TEST_LIST)
+string(REGEX REPLACE "\n" ";" PSA_TEST_LIST "${PSA_TEST_LIST}")
+
+add_custom_target(
+	${PSA_TARGET_GENERATE_DATABASE_PRE}
+	COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/platform
+	COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/val
+	COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/partition
+	COMMAND ${CMAKE_COMMAND} -E make_directory ${PSA_SUITE_OUT_DIR}
+)
+
+# Generate target files from User provided data base
+include(ExternalProject)
+ExternalProject_Add(
+        ${PSA_TARGET_GENERATE_DATABASE}
+        PREFIX ${CMAKE_CURRENT_BINARY_DIR}
+        DOWNLOAD_COMMAND ""
+        UPDATE_COMMAND ""
+        PATCH_COMMAND ""
+        BUILD_COMMAND ""
+        SOURCE_DIR "${PSA_ROOT_DIR}/tools/scripts/target_cfg"
+	CMAKE_ARGS -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+		-DOUT_DIR=${CMAKE_CURRENT_BINARY_DIR}
+		-DTARGET=${TARGET}
+		-DGENERATOR_FILE=${PSA_TARGET_CONFIG_HEADER_GENERATOR}
+		-DINCLUDE_DIR=${PSA_ROOT_DIR}/val/common
+		-DTARGET_CONFIGURATION_FILE=${TARGET_CONFIGURATION_FILE}
+		-DTGT_CONFIG_SOURCE_C=${TGT_CONFIG_SOURCE_C}
+		-DOUTPUT_HEADER=${OUTPUT_HEADER}
+		-DDATABASE_TABLE_NAME=${DATABASE_TABLE_NAME}
+		-DDATABASE_TABLE_SECTION_NAME=${DATABASE_TABLE_SECTION_NAME}
+		-DTARGET_HEADER_GEN_INCLUDE_PATHS=${TARGET_HEADER_GEN_INCLUDE_PATHS}
+	LIST_SEPARATOR |
+        TEST_COMMAND ""
+)
+
+# Add custom target to clean generated files of the external project
+add_custom_target(
+        ${PSA_TARGET_GENERATE_DATABASE_POST}
+        COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/src/${PSA_TARGET_GENERATE_DATABASE}-build/ -- clean
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+# Cloning CMSIS_5 repo
+ExternalProject_Add(
+        ${PSA_TARGET_QCBOR}
+        PREFIX ${CMAKE_CURRENT_BINARY_DIR}
+        GIT_REPOSITORY ${PSA_QCBOR_GIT_REPO_LINK}
+        GIT_TAG ${PSA_QCBOR_GIT_REPO_TAG}
+        CONFIGURE_COMMAND ""
+        UPDATE_COMMAND ""
+        PATCH_COMMAND ""
+        BUILD_COMMAND ""
+        TEST_COMMAND ""
+        INSTALL_COMMAND ""
+)
+endif()
+
+# Check for supported toolchain/s
+if(${TOOLCHAIN} IN_LIST PSA_TOOLCHAIN_SUPPORT)
+        include(${PSA_ROOT_DIR}/tools/cmake/compiler/${TOOLCHAIN}.cmake)
+else()
+        message(FATAL_ERROR "[PSA] : Error: Unspported value for -DTOOLCHAIN=, supported toolchain are : ${PSA_TOOLCHAIN_SUPPORT}")
+endif()
+
+# Global macro to identify the PSA test suite cmake build
+add_definitions(-DPSA_CMAKE_BUILD)
+add_definitions(-D${SUITE})
+add_definitions(-DVERBOSE=${VERBOSE})
+
+if(${SP_HEAP_MEM_SUPP} EQUAL 1)
+	add_definitions(-DSP_HEAP_MEM_SUPP)
+endif()
+
+# Build PAL NSPE LIB
+include(${PSA_ROOT_DIR}/platform/targets/${TARGET}/target.cmake)
+# Build VAL NSPE LIB
+#add_definitions(-DVAL_NSPE_BUILD)
+include(${PSA_ROOT_DIR}/val/val_nspe.cmake)
+# Build test
+include(${PSA_SUITE_DIR}/suite.cmake)
+if(${SUITE} STREQUAL "IPC")
+# Build SPE LIB
+include(${PSA_ROOT_DIR}/val/val_spe.cmake)
+endif()
+
+add_dependencies(${PSA_TARGET_GENERATE_DATABASE}	${PSA_TARGET_GENERATE_DATABASE_PRE})
+add_dependencies(${PSA_TARGET_GENERATE_DATABASE_POST}	${PSA_TARGET_GENERATE_DATABASE})
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+add_dependencies(${PSA_TARGET_QCBOR}			${PSA_TARGET_GENERATE_DATABASE_POST})
+add_dependencies(${PSA_TARGET_PAL_NSPE_LIB}		${PSA_TARGET_QCBOR})
+else()
+add_dependencies(${PSA_TARGET_PAL_NSPE_LIB} 		${PSA_TARGET_GENERATE_DATABASE_POST})
+endif()
+add_dependencies(${PSA_TARGET_VAL_NSPE_LIB}		${PSA_TARGET_PAL_NSPE_LIB})
+add_dependencies(${PSA_TARGET_TEST_COMBINE_LIB}		${PSA_TARGET_VAL_NSPE_LIB})
+if(${SUITE} STREQUAL "IPC")
+add_dependencies(${PSA_TARGET_DRIVER_PARTITION_LIB}	${PSA_TARGET_TEST_COMBINE_LIB})
+add_dependencies(${PSA_TARGET_CLIENT_PARTITION_LIB}	${PSA_TARGET_DRIVER_PARTITION_LIB})
+add_dependencies(${PSA_TARGET_SERVER_PARTITION_LIB}	${PSA_TARGET_CLIENT_PARTITION_LIB})
+endif()
+
+# Include the files for make clean
+foreach(clean_item ${PSA_CLEAN_LIST})
+        set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clean_item})
+endforeach()
+
+set_property(TARGET ${PSA_TARGET_VAL_NSPE_LIB}          PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/val)
+set_property(TARGET ${PSA_TARGET_PAL_NSPE_LIB}          PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/platform)
+set_property(TARGET ${PSA_TARGET_TEST_COMBINE_LIB}      PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${PSA_SUITE_OUT_DIR})
+if(${SUITE} STREQUAL "IPC")
+set_property(TARGET ${PSA_TARGET_DRIVER_PARTITION_LIB}  PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/partition)
+set_property(TARGET ${PSA_TARGET_CLIENT_PARTITION_LIB}  PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/partition)
+set_property(TARGET ${PSA_TARGET_SERVER_PARTITION_LIB}  PROPERTY ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/partition)
+endif()
diff --git a/api-tests/dev_apis/README.md b/api-tests/dev_apis/README.md
index 518fe60..6b8fabf 100644
--- a/api-tests/dev_apis/README.md
+++ b/api-tests/dev_apis/README.md
@@ -31,32 +31,35 @@
 To build the test suite for your target platform, execute the following commands:
 
 ```
-cd api-tests
-./tools/scripts/setup.sh --target <platform_name> --cpu_arch <cpu_architecture_version> --suite <suite_name>  --build <build_dir> --include <include_path> --archive_tests
+    cd api-tests
+    mkdir <build_dir>
+    cd <build_dir>
+    cmake ../ -G"<generator-name> -DTARGET=<platform_name> -DCPU_ARCH=<cpu_architecture_version> -DSUITE=<suite_name> -DPSA_INCLUDE_PATHS="<include_path1>;<include_path2>;...;<include_pathn>"
+    cmake --build .
 ```
 <br />  where:
 
--   <platform_name> is the same as the name of the target-specific directory created in the **platform/targets/** directory.  <br />
+-   <generator-name> "Unix Makefiles" to generate Makefiles for Linux and Cygwin <br />
+                     "MinGW Makefiles" to generate Makefiles for cmd.exe on Windows  <br />
+-   <platform_name> is the same as the name of the target-specific directory created in the **platform/targets/** directory. The current release has been tested on **tgt_dev_apis_tfm_an521**, **tgt_dev_apis_tfm_musca_b1** and **tgt_dev_apis_tfm_musca_a** platforms.<br />
 -   <cpu_architecture_version> is the Arm Architecture version name for which the tests should be compiled. For example, Armv7M, Armv8M-Baseline and Armv8M-Mainline Architecture.  <br />
 -   <suite_name> is the suite name that is the same as the suite name available in **dev_apis/** directory. <br />
--   <build_dir> is a directory to store build output files. <br />
--   <include_path> is an additional directory to be included into the compiler search path. <br />
-Note: You must provide Developer APIs header file implementation to the test suite build system using this option. For example, to compile Crypto tests, the include path must point to the path where **psa/crypto.h** is located in your build system.<br />
--  Use **--archive_tests** option to create a combined test archive (**test_combine.a**) file by combining available test object files. Absence of this option creates a combined test binary (**test_elf_combine.bin**) by combining the available test ELF files.
+-   <include_path1>;<include_path2>;...;<include_pathn> is an additional directory to be included into the compiler search path.You must provide Developer APIs header file implementation to the test suite build system using this option. For example, to compile Crypto tests, the include path must point to the path where **psa/crypto.h** is located in your build system.<br />
 
-For details about options, refer to **./tools/scripts/setup.sh --help**.
-
-To compile Crypto tests for **tgt_dev_apis_mbedos_fvp_mps2_m4** platform, execute the following commands:
+To compile Crypto tests for **tgt_dev_apis_tfm_an521** platform, execute the following commands:
 ```
-cd api-tests
-./tools/scripts/setup.sh --target tgt_dev_apis_mbedos_fvp_mps2_m4 --cpu_arch armv7m --suite crypto --build BUILD_CRYPTO --include <include_path>  --archive_tests
+    cd api-tests
+    mkdir BUILD
+    cd  BUILD
+    cmake ../ -G"Unix Makefiles" -DTARGET=tgt_dev_apis_tfm_an521 -DCPU_ARCH=armv8m_ml -DSUITE=CRYPTO -DPSA_INCLUDE_PATHS="<include_path1>;<include_path2>;...;<include_pathn>"
+    cmake --build .
 ```
 
 ### Build output
 Building the test suite generates the following NSPE binaries:<br />
-- **<build_dir>/BUILD/val/val_nspe.a**
-- **<build_dir>/BUILD/platform/pal_nspe.a**
-- **<build_dir>/BUILD/dev_apis/<suite_name>/test_combine.a**
+- **<build_dir>/val/val_nspe.a**
+- **<build_dir>/platform/pal_nspe.a**
+- **<build_dir>/dev_apis/<suite_name>/test_combine.a**
 
 ### Integrating the libraries into your target platform
 
diff --git a/api-tests/dev_apis/crypto/suite.cmake b/api-tests/dev_apis/crypto/suite.cmake
new file mode 100644
index 0000000..ddb3128
--- /dev/null
+++ b/api-tests/dev_apis/crypto/suite.cmake
@@ -0,0 +1,56 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+foreach(test ${PSA_TEST_LIST})
+	include(${PSA_SUITE_DIR}/${test}/test.cmake)
+	foreach(source_file ${CC_SOURCE})
+		list(APPEND SUITE_CC_SOURCE
+			${PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE})
+		list(APPEND SUITE_AS_SOURCE
+			${PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	unset(CC_SOURCE)
+	unset(AS_SOURCE)
+endforeach()
+
+add_definitions(${CC_OPTIONS})
+add_definitions(${AS_OPTIONS})
+add_library(${PSA_TARGET_TEST_COMBINE_LIB} STATIC ${SUITE_CC_SOURCE} ${SUITE_AS_SOURCE})
+
+# Test related Include directories
+foreach(test ${PSA_TEST_LIST})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${PSA_SUITE_DIR}/${test})
+endforeach()
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+                ${psa_inc_path}
+        )
+endforeach()
+
+target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+)
diff --git a/api-tests/dev_apis/crypto/test_c001/source.mk b/api-tests/dev_apis/crypto/test_c001/source.mk
deleted file mode 100644
index f066e82..0000000
--- a/api-tests/dev_apis/crypto/test_c001/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c001.c test_c001.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c001/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c001/test.cmake
index 9761866..bed11f8 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c001/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c001.c
+	test_c001.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c002/source.mk b/api-tests/dev_apis/crypto/test_c002/source.mk
deleted file mode 100644
index b05e89a..0000000
--- a/api-tests/dev_apis/crypto/test_c002/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c002.c test_c002.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c002/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c002/test.cmake
index 9761866..c4762aa 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c002/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c002.c
+	test_c002.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c003/source.mk b/api-tests/dev_apis/crypto/test_c003/source.mk
deleted file mode 100644
index 6f21378..0000000
--- a/api-tests/dev_apis/crypto/test_c003/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c003.c test_c003.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c003/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c003/test.cmake
index 9761866..4d1ef6b 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c003/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c003.c
+	test_c003.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c004/source.mk b/api-tests/dev_apis/crypto/test_c004/source.mk
deleted file mode 100644
index 0c6aef1..0000000
--- a/api-tests/dev_apis/crypto/test_c004/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c004.c test_c004.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c004/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c004/test.cmake
index 9761866..3107f11 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c004/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c004.c
+	test_c004.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c005/source.mk b/api-tests/dev_apis/crypto/test_c005/source.mk
deleted file mode 100644
index 23bd36e..0000000
--- a/api-tests/dev_apis/crypto/test_c005/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c005.c test_c005.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c005/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c005/test.cmake
index 9761866..33fc0a6 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c005/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c005.c
+	test_c005.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c006/source.mk b/api-tests/dev_apis/crypto/test_c006/source.mk
deleted file mode 100644
index 11be5c5..0000000
--- a/api-tests/dev_apis/crypto/test_c006/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c006.c test_c006.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c006/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c006/test.cmake
index 9761866..22db535 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c006/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c006.c
+	test_c006.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c007/source.mk b/api-tests/dev_apis/crypto/test_c007/source.mk
deleted file mode 100644
index 3e76b14..0000000
--- a/api-tests/dev_apis/crypto/test_c007/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c007.c test_c007.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c007/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c007/test.cmake
index 9761866..53b0625 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c007/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c007.c
+	test_c007.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c008/source.mk b/api-tests/dev_apis/crypto/test_c008/source.mk
deleted file mode 100644
index 62d4727..0000000
--- a/api-tests/dev_apis/crypto/test_c008/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c008.c test_c008.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c008/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c008/test.cmake
index 9761866..625227a 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c008/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c008.c
+	test_c008.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c009/source.mk b/api-tests/dev_apis/crypto/test_c009/source.mk
deleted file mode 100644
index c865e8e..0000000
--- a/api-tests/dev_apis/crypto/test_c009/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c009.c test_c009.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c009/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c009/test.cmake
index 9761866..93b0c94 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c009/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c009.c
+	test_c009.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c010/source.mk b/api-tests/dev_apis/crypto/test_c010/source.mk
deleted file mode 100644
index 8b32fcf..0000000
--- a/api-tests/dev_apis/crypto/test_c010/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c010.c test_c010.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c010/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c010/test.cmake
index 9761866..c3ca105 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c010/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c010.c
+	test_c010.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c011/source.mk b/api-tests/dev_apis/crypto/test_c011/source.mk
deleted file mode 100644
index 4ab62a9..0000000
--- a/api-tests/dev_apis/crypto/test_c011/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c011.c test_c011.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c011/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c011/test.cmake
index 9761866..7c2b04e 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c011/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c011.c
+	test_c011.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c012/source.mk b/api-tests/dev_apis/crypto/test_c012/source.mk
deleted file mode 100644
index f6c4ec3..0000000
--- a/api-tests/dev_apis/crypto/test_c012/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c012.c test_c012.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c012/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c012/test.cmake
index 9761866..9ea7f0d 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c012/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c012.c
+	test_c012.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c013/source.mk b/api-tests/dev_apis/crypto/test_c013/source.mk
deleted file mode 100644
index 8d63e45..0000000
--- a/api-tests/dev_apis/crypto/test_c013/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c013.c test_c013.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c013/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c013/test.cmake
index 9761866..3939d2c 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c013/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c013.c
+	test_c013.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c014/source.mk b/api-tests/dev_apis/crypto/test_c014/source.mk
deleted file mode 100644
index 44a2bdb..0000000
--- a/api-tests/dev_apis/crypto/test_c014/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c014.c test_c014.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c014/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c014/test.cmake
index 9761866..6bf060f 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c014/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c014.c
+	test_c014.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c015/source.mk b/api-tests/dev_apis/crypto/test_c015/source.mk
deleted file mode 100644
index 70abb3c..0000000
--- a/api-tests/dev_apis/crypto/test_c015/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c015.c test_c015.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c015/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c015/test.cmake
index 9761866..69bf742 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c015/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c015.c
+	test_c015.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c016/source.mk b/api-tests/dev_apis/crypto/test_c016/source.mk
deleted file mode 100644
index f7d0b7e..0000000
--- a/api-tests/dev_apis/crypto/test_c016/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c016.c test_c016.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c016/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c016/test.cmake
index 9761866..a4aa713 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c016/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c016.c
+	test_c016.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c017/source.mk b/api-tests/dev_apis/crypto/test_c017/source.mk
deleted file mode 100644
index 6147e4c..0000000
--- a/api-tests/dev_apis/crypto/test_c017/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c017.c test_c017.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c017/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c017/test.cmake
index 9761866..4314199 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c017/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c017.c
+	test_c017.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c018/source.mk b/api-tests/dev_apis/crypto/test_c018/source.mk
deleted file mode 100644
index fbfbcae..0000000
--- a/api-tests/dev_apis/crypto/test_c018/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c018.c test_c018.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c018/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c018/test.cmake
index 9761866..32d01a5 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c018/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c018.c
+	test_c018.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c019/source.mk b/api-tests/dev_apis/crypto/test_c019/source.mk
deleted file mode 100644
index a0a473b..0000000
--- a/api-tests/dev_apis/crypto/test_c019/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c019.c test_c019.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c019/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c019/test.cmake
index 9761866..c240558 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c019/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c019.c
+	test_c019.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c020/source.mk b/api-tests/dev_apis/crypto/test_c020/source.mk
deleted file mode 100644
index accb40d..0000000
--- a/api-tests/dev_apis/crypto/test_c020/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c020.c test_c020.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c020/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c020/test.cmake
index 9761866..8ceb228 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c020/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c020.c
+	test_c020.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c021/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c021/test.cmake
index 9761866..e1a7891 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c021/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c021.c
+	test_c021.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c022/source.mk b/api-tests/dev_apis/crypto/test_c022/source.mk
deleted file mode 100644
index 2ef3d73..0000000
--- a/api-tests/dev_apis/crypto/test_c022/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c022.c test_c022.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c022/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c022/test.cmake
index 9761866..c095e55 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c022/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c022.c
+	test_c022.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c023/source.mk b/api-tests/dev_apis/crypto/test_c023/source.mk
deleted file mode 100644
index bd0d7e7..0000000
--- a/api-tests/dev_apis/crypto/test_c023/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c023.c test_c023.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c023/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c023/test.cmake
index 9761866..ceca9af 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c023/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c023.c
+	test_c023.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c024/source.mk b/api-tests/dev_apis/crypto/test_c024/source.mk
deleted file mode 100644
index bfa9bee..0000000
--- a/api-tests/dev_apis/crypto/test_c024/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c024.c test_c024.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c024/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c024/test.cmake
index 9761866..5904afc 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c024/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c024.c
+	test_c024.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c025/source.mk b/api-tests/dev_apis/crypto/test_c025/source.mk
deleted file mode 100644
index e5ef05c..0000000
--- a/api-tests/dev_apis/crypto/test_c025/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c025.c test_c025.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c025/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c025/test.cmake
index 9761866..af89d01 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c025/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c025.c
+	test_c025.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c026/source.mk b/api-tests/dev_apis/crypto/test_c026/source.mk
deleted file mode 100644
index ab8acf2..0000000
--- a/api-tests/dev_apis/crypto/test_c026/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c026.c test_c026.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c026/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c026/test.cmake
index 9761866..29ddd0a 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c026/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c026.c
+	test_c026.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c027/source.mk b/api-tests/dev_apis/crypto/test_c027/source.mk
deleted file mode 100644
index 243dff7..0000000
--- a/api-tests/dev_apis/crypto/test_c027/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c027.c test_c027.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c027/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c027/test.cmake
index 9761866..15623b7 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c027/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c027.c
+	test_c027.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c028/source.mk b/api-tests/dev_apis/crypto/test_c028/source.mk
deleted file mode 100644
index f7dd193..0000000
--- a/api-tests/dev_apis/crypto/test_c028/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c028.c test_c028.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c028/test.cmake
similarity index 82%
rename from api-tests/dev_apis/crypto/test_c021/source.mk
rename to api-tests/dev_apis/crypto/test_c028/test.cmake
index 9761866..eae954e 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c028/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c028.c
+	test_c028.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c029/source.mk b/api-tests/dev_apis/crypto/test_c029/source.mk
deleted file mode 100644
index 31b0f42..0000000
--- a/api-tests/dev_apis/crypto/test_c029/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c029.c test_c029.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c029/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c029/test.cmake
index 9761866..112f7ab 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c029/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c029.c
+	test_c029.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c030/source.mk b/api-tests/dev_apis/crypto/test_c030/source.mk
deleted file mode 100644
index 1cb3c47..0000000
--- a/api-tests/dev_apis/crypto/test_c030/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c030.c test_c030.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c030/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c030/test.cmake
index 9761866..ba46882 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c030/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c030.c
+	test_c030.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c031/source.mk b/api-tests/dev_apis/crypto/test_c031/source.mk
deleted file mode 100644
index be9d306..0000000
--- a/api-tests/dev_apis/crypto/test_c031/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c031.c test_c031.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c031/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c031/test.cmake
index 9761866..5ff1ecf 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c031/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c031.c
+	test_c031.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c032/source.mk b/api-tests/dev_apis/crypto/test_c032/source.mk
deleted file mode 100644
index 15305a1..0000000
--- a/api-tests/dev_apis/crypto/test_c032/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c032.c test_c032.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c032/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c032/test.cmake
index 9761866..769b43e 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c032/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c032.c
+	test_c032.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c033/source.mk b/api-tests/dev_apis/crypto/test_c033/source.mk
deleted file mode 100644
index e1925ed..0000000
--- a/api-tests/dev_apis/crypto/test_c033/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c033.c test_c033.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c033/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c033/test.cmake
index 9761866..505bd9e 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c033/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c033.c
+	test_c033.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c034/source.mk b/api-tests/dev_apis/crypto/test_c034/source.mk
deleted file mode 100644
index 48b0dde..0000000
--- a/api-tests/dev_apis/crypto/test_c034/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c034.c test_c034.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c034/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c034/test.cmake
index 9761866..dac6246 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c034/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c034.c
+	test_c034.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c035/source.mk b/api-tests/dev_apis/crypto/test_c035/source.mk
deleted file mode 100644
index b3318fe..0000000
--- a/api-tests/dev_apis/crypto/test_c035/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c035.c test_c035.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c035/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c035/test.cmake
index 9761866..049eb98 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c035/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c035.c
+	test_c035.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c036/source.mk b/api-tests/dev_apis/crypto/test_c036/source.mk
deleted file mode 100644
index 7a06132..0000000
--- a/api-tests/dev_apis/crypto/test_c036/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c036.c test_c036.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c036/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c036/test.cmake
index 9761866..e8b9666 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c036/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c036.c
+	test_c036.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c037/source.mk b/api-tests/dev_apis/crypto/test_c037/source.mk
deleted file mode 100644
index 0915b8a..0000000
--- a/api-tests/dev_apis/crypto/test_c037/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c037.c test_c037.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c037/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c037/test.cmake
index 9761866..0a6a24b 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c037/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c037.c
+	test_c037.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c038/source.mk b/api-tests/dev_apis/crypto/test_c038/source.mk
deleted file mode 100644
index 2f6d4f0..0000000
--- a/api-tests/dev_apis/crypto/test_c038/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c038.c test_c038.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c038/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c038/test.cmake
index 9761866..59a6c5e 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c038/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c038.c
+	test_c038.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c039/source.mk b/api-tests/dev_apis/crypto/test_c039/source.mk
deleted file mode 100644
index 710a57c..0000000
--- a/api-tests/dev_apis/crypto/test_c039/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c039.c test_c039.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c039/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c039/test.cmake
index 9761866..3ed4781 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c039/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c039.c
+	test_c039.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c040/source.mk b/api-tests/dev_apis/crypto/test_c040/source.mk
deleted file mode 100644
index 8033ae4..0000000
--- a/api-tests/dev_apis/crypto/test_c040/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c040.c test_c040.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c040/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c040/test.cmake
index 9761866..3d33945 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c040/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c040.c
+	test_c040.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c041/source.mk b/api-tests/dev_apis/crypto/test_c041/source.mk
deleted file mode 100644
index 1263a66..0000000
--- a/api-tests/dev_apis/crypto/test_c041/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c041.c test_c041.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c041/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c041/test.cmake
index 9761866..0e96d93 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c041/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c041.c
+	test_c041.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c042/source.mk b/api-tests/dev_apis/crypto/test_c042/source.mk
deleted file mode 100644
index 570ce55..0000000
--- a/api-tests/dev_apis/crypto/test_c042/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c042.c test_c042.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c042/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c042/test.cmake
index 9761866..f67e12f 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c042/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c042.c
+	test_c042.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c043/source.mk b/api-tests/dev_apis/crypto/test_c043/source.mk
deleted file mode 100644
index 9e58f79..0000000
--- a/api-tests/dev_apis/crypto/test_c043/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c043.c test_c043.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c043/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c043/test.cmake
index 9761866..42e185d 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c043/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c043.c
+	test_c043.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/crypto/test_c044/source.mk b/api-tests/dev_apis/crypto/test_c044/source.mk
deleted file mode 100644
index f205658..0000000
--- a/api-tests/dev_apis/crypto/test_c044/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_c044.c test_c044.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/crypto/test_c044/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/crypto/test_c044/test.cmake
index 9761866..0ceea82 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/crypto/test_c044/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_c044.c
+	test_c044.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/initial_attestation/suite.cmake b/api-tests/dev_apis/initial_attestation/suite.cmake
new file mode 100644
index 0000000..ddb3128
--- /dev/null
+++ b/api-tests/dev_apis/initial_attestation/suite.cmake
@@ -0,0 +1,56 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+foreach(test ${PSA_TEST_LIST})
+	include(${PSA_SUITE_DIR}/${test}/test.cmake)
+	foreach(source_file ${CC_SOURCE})
+		list(APPEND SUITE_CC_SOURCE
+			${PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE})
+		list(APPEND SUITE_AS_SOURCE
+			${PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	unset(CC_SOURCE)
+	unset(AS_SOURCE)
+endforeach()
+
+add_definitions(${CC_OPTIONS})
+add_definitions(${AS_OPTIONS})
+add_library(${PSA_TARGET_TEST_COMBINE_LIB} STATIC ${SUITE_CC_SOURCE} ${SUITE_AS_SOURCE})
+
+# Test related Include directories
+foreach(test ${PSA_TEST_LIST})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${PSA_SUITE_DIR}/${test})
+endforeach()
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+                ${psa_inc_path}
+        )
+endforeach()
+
+target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+)
diff --git a/api-tests/dev_apis/initial_attestation/test_a001/source.mk b/api-tests/dev_apis/initial_attestation/test_a001/source.mk
deleted file mode 100644
index 601bde9..0000000
--- a/api-tests/dev_apis/initial_attestation/test_a001/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_a001.c test_a001.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/initial_attestation/test_a001/test.cmake
similarity index 82%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/initial_attestation/test_a001/test.cmake
index 9761866..55df1fa 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/initial_attestation/test_a001/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_a001.c
+	test_a001.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/suite.cmake b/api-tests/dev_apis/internal_trusted_storage/suite.cmake
new file mode 100644
index 0000000..e4de40c
--- /dev/null
+++ b/api-tests/dev_apis/internal_trusted_storage/suite.cmake
@@ -0,0 +1,57 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+foreach(test ${PSA_TEST_LIST})
+	include(${PSA_SUITE_DIR}/${test}/test.cmake)
+	foreach(source_file ${CC_SOURCE})
+		list(APPEND SUITE_CC_SOURCE
+			${PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE})
+		list(APPEND SUITE_AS_SOURCE
+			${PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	unset(CC_SOURCE)
+	unset(AS_SOURCE)
+endforeach()
+
+add_definitions(${CC_OPTIONS})
+add_definitions(${AS_OPTIONS})
+add_library(${PSA_TARGET_TEST_COMBINE_LIB} STATIC ${SUITE_CC_SOURCE} ${SUITE_AS_SOURCE})
+
+# Test related Include directories
+foreach(test ${PSA_TEST_LIST})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${PSA_SUITE_DIR}/${test})
+endforeach()
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+                ${psa_inc_path}
+        )
+endforeach()
+
+target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+)
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s001/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s001/source.mk
deleted file mode 100644
index 14e152d..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s001/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s001.c test_s001.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s001/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s001/test.cmake
index 9761866..fb61ac1 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s001/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s001.c
+	test_s001.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s002/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s002/source.mk
deleted file mode 100755
index abc1a1f..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s002/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s002.c test_s002.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s002/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s002/test.cmake
index 9761866..e8cfe6a 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s002/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s002.c
+	test_s002.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s003/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s003/source.mk
deleted file mode 100755
index d24a930..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s003/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s003.c test_s003.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s003/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s003/test.cmake
index 9761866..da2f1ad 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s003/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s003.c
+	test_s003.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s004/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s004/source.mk
deleted file mode 100755
index 804d4e5..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s004/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s004.c test_s004.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s004/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s004/test.cmake
index 9761866..88caf83 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s004/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s004.c
+	test_s004.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s005/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s005/source.mk
deleted file mode 100755
index 1f9a30e..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s005/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s005.c test_s005.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s005/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s005/test.cmake
index 9761866..33559cb 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s005/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s005.c
+	test_s005.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s006/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s006/source.mk
deleted file mode 100755
index 3b64b74..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s006/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s006.c test_s006.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s006/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s006/test.cmake
index 9761866..7810ff6 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s006/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s006.c
+	test_s006.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s007/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s007/source.mk
deleted file mode 100755
index 4ba5f69..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s007/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s007.c test_s007.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s007/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s007/test.cmake
index 9761866..cee8525 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s007/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s007.c
+	test_s007.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s008/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s008/source.mk
deleted file mode 100755
index b1ec445..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s008/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s008.c test_s008.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s008/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s008/test.cmake
index 9761866..ecba9c3 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s008/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s008.c
+	test_s008.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s009/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s009/source.mk
deleted file mode 100755
index 639ba27..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s009/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s009.c test_s009.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s009/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s009/test.cmake
index 9761866..e5fe7ee 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s009/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s009.c
+	test_s009.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/internal_trusted_storage/test_s010/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s010/source.mk
deleted file mode 100644
index 9824203..0000000
--- a/api-tests/dev_apis/internal_trusted_storage/test_s010/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s010.c test_s010.c
-CC_OPTIONS = -DITS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/internal_trusted_storage/test_s010/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/internal_trusted_storage/test_s010/test.cmake
index 9761866..4c3dc6a 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/internal_trusted_storage/test_s010/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s010.c
+	test_s010.c
+)
+list(APPEND CC_OPTIONS -DITS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/suite.cmake b/api-tests/dev_apis/protected_storage/suite.cmake
new file mode 100644
index 0000000..2dc9b5b
--- /dev/null
+++ b/api-tests/dev_apis/protected_storage/suite.cmake
@@ -0,0 +1,78 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+foreach(test ${PSA_TEST_LIST})
+	string(SUBSTRING ${test} 0 6 ITS_TEST_STR)
+	if((${SUITE} STREQUAL "PROTECTED_STORAGE") AND
+	   (${ITS_TEST_STR} STREQUAL "test_s"))
+		string(REPLACE ${SUITE_LOWER} "internal_trusted_storage" ACTUAL_PSA_SUITE_DIR ${PSA_SUITE_DIR})
+	else()
+		set(ACTUAL_PSA_SUITE_DIR ${PSA_SUITE_DIR})
+	endif()
+	include(${ACTUAL_PSA_SUITE_DIR}/${test}/test.cmake)
+	foreach(source_file ${CC_SOURCE})
+		list(APPEND SUITE_CC_SOURCE
+			${ACTUAL_PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE})
+		list(APPEND SUITE_AS_SOURCE
+			${ACTUAL_PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	if((${SUITE} STREQUAL "PROTECTED_STORAGE") AND
+	   (${ITS_TEST_STR} STREQUAL "test_p"))
+		add_definitions(${CC_OPTIONS})
+		add_definitions(${AS_OPTIONS})
+	endif()
+	unset(CC_SOURCE)
+	unset(AS_SOURCE)
+	unset(ACTUAL_PSA_SUITE_DIR)
+	unset(CC_OPTIONS)
+endforeach()
+
+add_library(${PSA_TARGET_TEST_COMBINE_LIB} STATIC ${SUITE_CC_SOURCE} ${SUITE_AS_SOURCE})
+
+# Test related Include directories
+foreach(test ${PSA_TEST_LIST})
+	string(SUBSTRING ${test} 0 6 ITS_TEST_STR)
+	if((${SUITE} STREQUAL "PROTECTED_STORAGE") AND
+	   (${ITS_TEST_STR} STREQUAL "test_s"))
+		string(REPLACE ${SUITE_LOWER} "internal_trusted_storage" ACTUAL_PSA_SUITE_DIR ${PSA_SUITE_DIR})
+	else()
+		set(ACTUAL_PSA_SUITE_DIR ${PSA_SUITE_DIR})
+	endif()
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${ACTUAL_PSA_SUITE_DIR}/${test})
+	unset(ACTUAL_PSA_SUITE_DIR)
+endforeach()
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+                ${psa_inc_path}
+        )
+endforeach()
+
+target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+)
diff --git a/api-tests/dev_apis/protected_storage/test_p011/source.mk b/api-tests/dev_apis/protected_storage/test_p011/source.mk
deleted file mode 100644
index beb30be..0000000
--- a/api-tests/dev_apis/protected_storage/test_p011/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_p011.c test_p011.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_p011/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_p011/test.cmake
index 9761866..67884da 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_p011/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_p011.c
+	test_p011.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_p012/source.mk b/api-tests/dev_apis/protected_storage/test_p012/source.mk
deleted file mode 100644
index 1820ace..0000000
--- a/api-tests/dev_apis/protected_storage/test_p012/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_p012.c test_p012.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_p012/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_p012/test.cmake
index 9761866..28b4103 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_p012/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_p012.c
+	test_p012.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_p013/source.mk b/api-tests/dev_apis/protected_storage/test_p013/source.mk
deleted file mode 100644
index c966717..0000000
--- a/api-tests/dev_apis/protected_storage/test_p013/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_p013.c test_p013.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_p013/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_p013/test.cmake
index 9761866..6c1913f 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_p013/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_p013.c
+	test_p013.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_p014/source.mk b/api-tests/dev_apis/protected_storage/test_p014/source.mk
deleted file mode 100644
index 931b670..0000000
--- a/api-tests/dev_apis/protected_storage/test_p014/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_p014.c test_p014.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_p014/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_p014/test.cmake
index 9761866..a794d8c 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_p014/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_p014.c
+	test_p014.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_p015/source.mk b/api-tests/dev_apis/protected_storage/test_p015/source.mk
deleted file mode 100644
index 81b14e9..0000000
--- a/api-tests/dev_apis/protected_storage/test_p015/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_p015.c test_p015.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_p015/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_p015/test.cmake
index 9761866..b2a8b62 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_p015/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_p015.c
+	test_p015.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s001/source.mk b/api-tests/dev_apis/protected_storage/test_s001/source.mk
deleted file mode 100644
index 6a92d9f..0000000
--- a/api-tests/dev_apis/protected_storage/test_s001/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s001.c test_s001.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s001/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s001/test.cmake
index 9761866..ee15ef4 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s001/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s001.c
+	test_s001.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s002/source.mk b/api-tests/dev_apis/protected_storage/test_s002/source.mk
deleted file mode 100644
index 3d5771c..0000000
--- a/api-tests/dev_apis/protected_storage/test_s002/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s002.c test_s002.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s002/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s002/test.cmake
index 9761866..c588caa 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s002/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s002.c
+	test_s002.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s003/source.mk b/api-tests/dev_apis/protected_storage/test_s003/source.mk
deleted file mode 100644
index afdb886..0000000
--- a/api-tests/dev_apis/protected_storage/test_s003/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s003.c test_s003.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s003/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s003/test.cmake
index 9761866..6a38d56 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s003/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s003.c
+	test_s003.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s004/source.mk b/api-tests/dev_apis/protected_storage/test_s004/source.mk
deleted file mode 100644
index c73824d..0000000
--- a/api-tests/dev_apis/protected_storage/test_s004/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s004.c test_s004.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s004/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s004/test.cmake
index 9761866..1210631 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s004/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s004.c
+	test_s004.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s005/source.mk b/api-tests/dev_apis/protected_storage/test_s005/source.mk
deleted file mode 100644
index 627438f..0000000
--- a/api-tests/dev_apis/protected_storage/test_s005/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s005.c test_s005.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s005/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s005/test.cmake
index 9761866..bf3786a 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s005/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s005.c
+	test_s005.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s006/source.mk b/api-tests/dev_apis/protected_storage/test_s006/source.mk
deleted file mode 100644
index b64fb21..0000000
--- a/api-tests/dev_apis/protected_storage/test_s006/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s006.c test_s006.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s006/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s006/test.cmake
index 9761866..c661ac3 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s006/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s006.c
+	test_s006.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s007/source.mk b/api-tests/dev_apis/protected_storage/test_s007/source.mk
deleted file mode 100644
index 2e242cc..0000000
--- a/api-tests/dev_apis/protected_storage/test_s007/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s007.c test_s007.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s007/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s007/test.cmake
index 9761866..5c6606d 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s007/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s007.c
+	test_s007.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s008/source.mk b/api-tests/dev_apis/protected_storage/test_s008/source.mk
deleted file mode 100644
index 1e8bc76..0000000
--- a/api-tests/dev_apis/protected_storage/test_s008/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s008.c test_s008.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s008/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s008/test.cmake
index 9761866..b91d92d 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s008/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s008.c
+	test_s008.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s009/source.mk b/api-tests/dev_apis/protected_storage/test_s009/source.mk
deleted file mode 100644
index 5a2c3b0..0000000
--- a/api-tests/dev_apis/protected_storage/test_s009/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s009.c test_s009.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s009/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s009/test.cmake
index 9761866..9d66436 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s009/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s009.c
+	test_s009.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/dev_apis/protected_storage/test_s010/source.mk b/api-tests/dev_apis/protected_storage/test_s010/source.mk
deleted file mode 100644
index e0b22d5..0000000
--- a/api-tests/dev_apis/protected_storage/test_s010/source.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_s010.c test_s010.c
-CC_OPTIONS = -DPS_TEST
-AS_SOURCE  =
-AS_OPTIONS =
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/dev_apis/protected_storage/test_s010/test.cmake
similarity index 81%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/dev_apis/protected_storage/test_s010/test.cmake
index 9761866..b36e23f 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/dev_apis/protected_storage/test_s010/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_s010.c
+	test_s010.c
+)
+list(APPEND CC_OPTIONS -DPS_TEST)
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
diff --git a/api-tests/docs/porting_guide_dev_apis.md b/api-tests/docs/porting_guide_dev_apis.md
index 8349123..595038e 100644
--- a/api-tests/docs/porting_guide_dev_apis.md
+++ b/api-tests/docs/porting_guide_dev_apis.md
@@ -33,16 +33,15 @@
 
 ### Adding a new target
 
-  1. Create a new directory in **platform/targets/<platform_name>**. For reference, see the existing platform **tgt_dev_apis_mbedos_fvp_mps2_m4** directory.
-  2. Execute `cp -rf platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/ platform/targets/<platform_name>/`.
+  1. Create a new directory in **platform/targets/<platform_name>**. For reference, see the existing platform **tgt_dev_apis_tfm_an521** directory.
+  2. Execute `cp -rf platform/targets/tgt_dev_apis_tfm_an521/ platform/targets/<platform_name>/`.
   3. Update **platform/targets/<platform_name>/target.cfg** with your platform details. Refer to **val/common/val_target.h** for structure details.
-  4. Update **platform/targets/<platform_name>/Makefile** appropriately to select the correct instances of PAL files for compilation. To compile **dev_apis** suites, you must set **PSA_IPC_IMPLEMENTED** to 0. This selects the Non-secure PAL instances for the driver services and eliminates IPC dependency for dev_apis tests.
-  5. Refer to the **List of PAL APIs** section to view the list of PAL APIs that must be ported for your target platform. These API definitions are available in **nspe/<suite_name>/pal_\*\_intf.c**. These APIs are written for tgt_dev_apis_mbedos_fvp_mps2_m4 platform. You can reuse the code if it works for your platform. Otherwise, you must port them for your platform-specific peripherals.
+  4. Update **platform/targets/<platform_name>/target.cmake** appropriately to select the correct instances of PAL files for compilation.
+  5. Refer to the **List of PAL APIs** section to view the list of PAL APIs that must be ported for your target platform. These API definitions are available in **nspe/<suite_name>/pal_\*\_intf.c**. These APIs are written for tgt_dev_apis_tfm_an521 platform. You can reuse the code if it works for your platform. Otherwise, you must port them for your platform-specific peripherals.
   6. Update Crypto configuration file **nspe/crypto/pal_crypto_config.h** to enable or disable Crypto features selectively for the Crypto test suite.
 
 **Note**:
-- The platform makefile is invoked as part of test suite build tool (**./setup.sh**) step and it creates **<build_dir>/BUILD/platform/pal_nspe.a** archive.
-- The test suite requires access the following peripherals:
+The test suite requires access to the following peripherals:
   - One UART to print NSPE and SPE messages
   - One Watchdog timer to help recover from any fatal error conditions
   - Non-volatile memory support to preserve test status over watchdog timer reset
@@ -53,18 +52,17 @@
 
 | No | Prototype                                                                                                                   | Description                                                            | Parameters                                               |
 |----|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------|
-| 01 | int pal_spi_read(addr_t addr, uint8_t *data, uint32_t len);                                                                 | Reads peripherals using SPI commands                 | addr : Address of the peripheral<br/>data : Read buffer<br/>len  : Length of the read buffer in bytes<br/>                    |
-| 02 | int pal_uart_init_ns(uint32_t uart_base_addr);                                                                              | Initializes the UART                                     | UART base address<br/>                                      |
-| 03 | int pal_print_ns(char *str, int32_t data);                                                                                 | Parses the input string and writes bytes into UART TX FIFO| str      : Input String<br/>data     : Value for format specifier<br/>                             |
-| 04 | int pal_wd_timer_init_ns(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us);                                       | Initializes a hardware watchdog timer                                 | base_addr       : Base address of the watchdog module<br/>time_us         : Time in micro seconds<br/>timer_tick_us   : Number of ticks per micro second<br/>|
-| 05 | int pal_wd_timer_enable_ns(addr_t base_addr);                                                                               | Enables a hardware watchdog timer                                      | base_addr       : Base address of the watchdog module<br/>|
-| 06 | int pal_wd_timer_disable_ns(addr_t base_addr);                                                                              | Disables a hardware watchdog timer                                     | base_addr  : Base address of the watchdog module<br/>    |
-| 07 | int pal_nvmem_read_ns(addr_t base, uint32_t offset, void *buffer, int size);                                                | Reads from the given non-volatile address.                                 | base    : Base address of nvmem<br/>offset  : Offset<br/>buffer  : Pointer to source address<br/>size    : Number of bytes<br/>                     |
-| 08 | int pal_nvmem_write_ns(addr_t base, uint32_t offset, void *buffer, int size);                                               | Writes into given non-volatile address.                                | base    : Base address of nvmem<br/>offset  : Offset<br/>buffer  : Pointer to source address<br/>size    : Number of bytes<br/>                     |
-| 09 | int32_t pal_crypto_function(int type, va_list valist);                                                                     | Calls the requested Crypto function                       | type    : Function code<br/>valist  : variable argument list<br/>                             |
-| 10 | uint32_t pal_its_function(int type, va_list valist);                                                                     | Calls the requested Internal Trusted Storage  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
-| 11 | uint32_t pal_ps_function(int type, va_list valist);                                                                     | Calls the requested Protected Storage  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
-| 12 | int32_t pal_attestation_function(int type, va_list valist);                                                                | Calls the requested Initial Attestation  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
+| 01 | int pal_uart_init_ns(uint32_t uart_base_addr);                                                                              | Initializes the UART                                     | UART base address<br/>                                      |
+| 02 | int pal_print_ns(char *str, int32_t data);                                                                                 | Parses the input string and writes bytes into UART TX FIFO| str      : Input String<br/>data     : Value for format specifier<br/>                             |
+| 03 | int pal_wd_timer_init_ns(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us);                                       | Initializes a hardware watchdog timer                                 | base_addr       : Base address of the watchdog module<br/>time_us         : Time in micro seconds<br/>timer_tick_us   : Number of ticks per micro second<br/>|
+| 04 | int pal_wd_timer_enable_ns(addr_t base_addr);                                                                               | Enables a hardware watchdog timer                                      | base_addr       : Base address of the watchdog module<br/>|
+| 05 | int pal_wd_timer_disable_ns(addr_t base_addr);                                                                              | Disables a hardware watchdog timer                                     | base_addr  : Base address of the watchdog module<br/>    |
+| 06 | int pal_nvmem_read_ns(addr_t base, uint32_t offset, void *buffer, int size);                                                | Reads from the given non-volatile address.                                 | base    : Base address of nvmem<br/>offset  : Offset<br/>buffer  : Pointer to source address<br/>size    : Number of bytes<br/>                     |
+| 07 | int pal_nvmem_write_ns(addr_t base, uint32_t offset, void *buffer, int size);                                               | Writes into given non-volatile address.                                | base    : Base address of nvmem<br/>offset  : Offset<br/>buffer  : Pointer to source address<br/>size    : Number of bytes<br/>                     |
+| 08 | int32_t pal_crypto_function(int type, va_list valist);                                                                     | Calls the requested Crypto function                       | type    : Function code<br/>valist  : variable argument list<br/>                             |
+| 09 | uint32_t pal_its_function(int type, va_list valist);                                                                     | Calls the requested Internal Trusted Storage  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
+| 10 | uint32_t pal_ps_function(int type, va_list valist);                                                                     | Calls the requested Protected Storage  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
+| 11 | int32_t pal_attestation_function(int type, va_list valist);                                                                | Calls the requested Initial Attestation  function                       | type    : Function code<br/>valist  : Variable argument list<br/>                             |
 
 ## License
 Arm PSA test suite is distributed under Apache v2.0 License.
diff --git a/api-tests/docs/porting_guide_ff.md b/api-tests/docs/porting_guide_ff.md
index adceb37..4e5f612 100644
--- a/api-tests/docs/porting_guide_ff.md
+++ b/api-tests/docs/porting_guide_ff.md
@@ -33,30 +33,24 @@
 
 ### Adding a new target
 
-  1. Create a new directory in **platform/targets/<platform_name>**. For reference, see the existing platform tgt_ff_mbedos_fvp_mps2_m4 directory.
-  2. Execute `cp -rf platform/targets/tgt_ff_mbedos_fvp_mps2_m4/ platform/targets/<platform_name>/`.
+  1. Create a new directory in **platform/targets/<platform_name>**. For reference, see the existing platform tgt_ff_tfm_an521 directory.
+  2. Execute `cp -rf platform/targets/tgt_ff_tfm_an521/ platform/targets/<platform_name>/`.
   3. Update **platform/targets/<platform_name>/target.cfg** with your target platform details. Refer to **val/common/val_target.h** for structure details.
   4. Update the platform information available in manifest files located in  **platform/targets/<platform_name>/manifests/** directory with your platform information. The platform details must match the device details provided in the target.cfg file.
-  5. Update **platform/targets/<platform_name>/Makefile** appropriately to select the correct instances of PAL files for compilation. To compile IPC tests, you must set PSA_IPC_IMPLEMENTED to 1 and the remaining Developer APIs related variables to 0. This selects the Secure PAL instances for the driver services and eliminates dev_apis dependency for IPC tests.
-  6. Refer to the **List of PAL APIs** section to view the list of PAL APIs that must be ported for your target platform. These API definitions are available in **nspe/<suite_name>/pal_\*\_intf.c** and **spe/pal_\*\_intf.c** files. These APIs are written for **tgt_ff_mbedos_fvp_mps2_m4** platform. You can reuse the code if it works for your platform. Otherwise, you must port them for your platform-specific peripherals.
+  5. Update **platform/targets/<platform_name>/target.cmake** appropriately to select the correct instances of PAL files for compilation.
+  6. Refer to the **List of PAL APIs** section to view the list of PAL APIs that must be ported for your target platform. These API definitions are available in **nspe/<suite_name>/pal_\*\_intf.c** and **spe/pal_\*\_intf.c** files. These APIs are written for **tgt_ff_tfm_an521** platform. You can reuse the code if it works for your platform. Otherwise, you must port them for your platform-specific peripherals.
 
 **Note**:
-- The platform makefile is invoked as part of test suite build tool (**./setup.sh**) step and it creates **<build_dir>/BUILD/platform/pal_nspe.a** archive for NPSE files and respective object for SPE files at **<build_dir>/BUILD/platform/spe/\*\_driver_sp.o**. These SPE objects are used by **spbuild.mk** to create the  appropriate SPE partition archive file.
-- The test suite requires access to the peripherals mentioned below. When PSA_IPC_IMPLEMENTED is set to 1, driver functionalities are implemented as RoT-services in driver partition. Other Secure partitions and Non-secure code calls to these RoT-services to get appropriate driver services.
+- The test suite requires access to the peripherals mentioned below. For IPC suite, driver functionalities are implemented as RoT-services in driver partition. Other Secure partitions and Non-secure code calls to these RoT-services to get appropriate driver services.
   - One UART to print NSPE or SPE messages and to cover secure partition interrupt handling scenarios
   - One Watchdog timer to help recover from any fatal error conditions
   - Non-volatile memory support to preserve test status over watchdog timer reset
 
+
 ## List of PAL APIs
 
 Since the test suite is agnostic to various system targets, you must port the following PAL NSPE APIs before building the tests. Implement these functions for your target platform. <br />
 
-The following is the list of PAL APIs used in NSPE: <br />
-
-| No | Prototype                                                                                                                   | Description                                                            | Parameters                                               |
-|----|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------|
-| 01 | int pal_spi_read(addr_t addr, uint8_t *data, uint32_t len);                                                                 | Reads peripherals using SPI commands                 | addr : Address of the peripheral<br/>data : Read buffer<br/>len  : Length of the read buffer in bytes<br/>                    |
-
 The following is the list of PAL APIs used in SPE: <br />
 
 | No | Prototype                                                                         | Description                                                                       | Parameters                                               |
diff --git a/api-tests/docs/sw_requirements.md b/api-tests/docs/sw_requirements.md
index 7a74725..68fef75 100644
--- a/api-tests/docs/sw_requirements.md
+++ b/api-tests/docs/sw_requirements.md
@@ -3,9 +3,10 @@
 
 Before starting the test suite build, ensure that the following requirements are met: <br />
 
-- Host Operating System     : Ubuntu 16.04
-- Scripting tools           : Perl 5.12.3, Python 3.1.7
+- Host Operating System     : Ubuntu 16.04, Windows 10
+- Scripting tools           : Python 3.1.7
 - Compiler toolchain        : GNU Arm Embedded Toolchain 6.3.1, Arm Compiler v6.7
+- Build tools               : CMake 3.10
 
 **Note**: To compile the test suite code, at least one of the above supported compiler toolchains
         must be available in the build environment.
diff --git a/api-tests/ff/README.md b/api-tests/ff/README.md
index 8c82086..f3e46b4 100644
--- a/api-tests/ff/README.md
+++ b/api-tests/ff/README.md
@@ -49,39 +49,43 @@
 
 3. Compile the tests as shown below. <br />
 ```
-   ./tools/scripts/setup.sh --target <platform_name> --cpu_arch <cpu_architecture_version> --suite <suite_name>  --build <build_dir> --include <include_path>  --archive_tests
+    cd api-tests
+    mkdir <build_dir>
+    cd <build_dir>
+    cmake ../ -G"<generator-name> -DTARGET=<platform_name> -DCPU_ARCH=<cpu_architecture_version> -DSUITE=<suite_name> -DPSA_INCLUDE_PATHS="<include_path1>;<include_path2>;...;<include_pathn>"
+    cmake --build .
 ```
 <br />  where:
 
+-   <generator-name> "Unix Makefiles" to generate Makefiles for Linux and Cygwin <br />
+                     "MinGW Makefiles" to generate Makefiles for cmd.exe on Windows  <br />
 -   <platform_name> is the same as the name of the target specific directory created in the **platform/targets/** directory.  <br />
 -   <cpu_architecture_version> is the Arm Architecture version name for which the tests should be compiled. For example, Armv7M, Armv8M-Baseline and Armv8M-Mainline Architecture.  <br />
 -   <suite_name> is the suite name which is the same as the suite name available in **ff/** directory. <br >
--   <build_dir> is a directory to store the build output files.  <br />
--   <include_path> is an additional directory to be included into the compiler search path. <br />
-Note: To compile IPC tests, the include path must point to the path where **psa/client.h**, **psa/service.h**,  **psa/lifecycle.h** and test partition manifest output files(**psa_manifest/sid.h**, **psa_manifest/pid.h** and **psa_manifest/<manifestfilename>.h**) are located in your build system.<br />
--  Use **--archive_tests** option to create a combined test archive(test_combine.a) file by combining the available test objects files. Not using this option will create a combined test binary(test_elf_combine.bin) by combining the available test ELFs.
+-   <include_path1>;<include_path2>;...;<include_pathn> is an additional directory to be included into the compiler search path. To compile IPC tests, the include path must point to the path where **psa/client.h**, **psa/service.h**,  **psa/lifecycle.h** and test partition manifest output files(**psa_manifest/sid.h**, **psa_manifest/pid.h** and **psa_manifest/<manifestfilename>.h**) are located in your build system.<br />
 
-For more information about options, refer to **./tools/scripts/setup.sh --help**.
-
-To compile IPC tests for **tgt_ff_mbedos_fvp_mps2_m4** platform, execute the following commands:
+To compile IPC tests for **tgt_ff_tfm_an521** platform, execute the following commands:
 ```
-cd api-tests
-./tools/scripts/setup.sh --target tgt_ff_mbedos_fvp_mps2_m4 --cpu_arch armv7m --suite ipc --build BUILD_IPC --include <include_path1> --include <include_path2> --archive_tests
+    cd api-tests
+    mkdir BUILD
+    cd  BUILD
+    cmake ../ -G"Unix Makefiles" -DTARGET=tgt_ff_tfm_an521 -DCPU_ARCH=armv8m_ml -DSUITE=IPC -DPSA_INCLUDE_PATHS="<include_path1>;<include_path2>;...;<include_pathn>"
+    cmake --build .
 ```
-**Note**: The default compilation flow includes the functional API tests to build the test suite. It does not include panic tests that check for the API's PROGRAMMER ERROR conditions as defined in the PSA-FF specification. You can include the panic tests for building the test suite just by passing **--include_panic_tests** option to script.
+**Note**: The default compilation flow includes the functional API tests to build the test suite. It does not include panic tests that check for the API's PROGRAMMER ERROR conditions as defined in the PSA-FF specification. You can include the panic tests for building the test suite just by passing **-DINCLUDE_PANIC_TESTS=1** to CMake.
 
 ### Build output
 The test suite build generates the following binaries:<br />
 
 NSPE libraries:<br />
-1. **<build_dir>/BUILD/val/val_nspe.a**
-2. **<build_dir>/BUILD/platform/pal_nspe.a**
-3. **<build_dir>/BUILD/ff/<suite_name>/test_combine.a**
+1. **<build_dir>/val/val_nspe.a**
+2. **<build_dir>/platform/pal_nspe.a**
+3. **<build_dir>/ff/<suite_name>/test_combine.a**
 
 SPE libraries explicitly for IPC test suite:<br />
-1. **<build_dir>/BUILD/partition/driver_partition.a**
-2. **<build_dir>/BUILD/partition/client_partition.a**
-3. **<build_dir>/BUILD/partition/server_partition.a**
+1. **<build_dir>/partition/driver_partition.a**
+2. **<build_dir>/partition/client_partition.a**
+3. **<build_dir>/partition/server_partition.a**
 
 ### Integrating the libraries into your target platform
 
diff --git a/api-tests/ff/ipc/suite.cmake b/api-tests/ff/ipc/suite.cmake
new file mode 100644
index 0000000..aaaa0f2
--- /dev/null
+++ b/api-tests/ff/ipc/suite.cmake
@@ -0,0 +1,68 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+foreach(test ${PSA_TEST_LIST})
+	include(${PSA_SUITE_DIR}/${test}/test.cmake)
+	foreach(source_file ${CC_SOURCE})
+		list(APPEND SUITE_CC_SOURCE
+			${PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE})
+		list(APPEND SUITE_AS_SOURCE
+			${PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	foreach(source_file ${CC_SOURCE_SPE})
+		list(APPEND SUITE_CC_SOURCE_SPE
+			${PSA_SUITE_DIR}/${test}/${source_file}
+		)
+	endforeach()
+	foreach(asm_file ${AS_SOURCE_SPE})
+		list(APPEND SUITE_AS_SOURCE_SPE
+			${PSA_SUITE_DIR}/${test}/${asm_file}
+		)
+	endforeach()
+	unset(CC_SOURCE)
+	unset(AS_SOURCE)
+	unset(CC_SOURCE_SPE)
+	unset(AS_SOURCE_SPE)
+endforeach()
+
+add_library(${PSA_TARGET_TEST_COMBINE_LIB} STATIC ${SUITE_CC_SOURCE} ${SUITE_AS_SOURCE})
+target_compile_definitions(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE CC_OPTIONS)
+target_compile_definitions(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE AS_OPTIONS)
+target_compile_definitions(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE NONSECURE_TEST_BUILD)
+
+# Test related Include directories
+foreach(test ${PSA_TEST_LIST})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${PSA_SUITE_DIR}/${test})
+endforeach()
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+target_include_directories(${PSA_TARGET_TEST_COMBINE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/val/spe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	 ${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+)
diff --git a/api-tests/ff/ipc/test_i001/source.mk b/api-tests/ff/ipc/test_i001/source.mk
deleted file mode 100644
index 3231434..0000000
--- a/api-tests/ff/ipc/test_i001/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i001.c test_i001.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i001.c test_supp_i001.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i001/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i001/test.cmake
index 5bb5a69..698a8ff 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i001/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i001.c
+	test_i001.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i001.c
+	test_supp_i001.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE  )
diff --git a/api-tests/ff/ipc/test_i002/source.mk b/api-tests/ff/ipc/test_i002/source.mk
deleted file mode 100644
index 60cbe40..0000000
--- a/api-tests/ff/ipc/test_i002/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i002.c test_i002.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i002.c test_supp_i002.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i002/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i002/test.cmake
index 5bb5a69..33679bd 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i002/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i002.c
+	test_i002.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i002.c
+	test_supp_i002.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i003/source.mk b/api-tests/ff/ipc/test_i003/source.mk
deleted file mode 100644
index 37f7299..0000000
--- a/api-tests/ff/ipc/test_i003/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i003.c test_i003.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i003.c test_supp_i003.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i003/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i003/test.cmake
index 5bb5a69..aaa5d98 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i003/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i003.c
+	test_i003.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i003.c
+	test_supp_i003.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i004/source.mk b/api-tests/ff/ipc/test_i004/source.mk
deleted file mode 100644
index 2a23e73..0000000
--- a/api-tests/ff/ipc/test_i004/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i004.c test_i004.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i004.c test_supp_i004.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i004/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i004/test.cmake
index 5bb5a69..4ec996e 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i004/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i004.c
+	test_i004.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i004.c
+	test_supp_i004.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i005/source.mk b/api-tests/ff/ipc/test_i005/source.mk
deleted file mode 100644
index b139dbc..0000000
--- a/api-tests/ff/ipc/test_i005/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i005.c test_i005.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i005.c test_supp_i005.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i005/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i005/test.cmake
index 5bb5a69..68c51c5 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i005/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i005.c
+	test_i005.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i005.c
+	test_supp_i005.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i006/source.mk b/api-tests/ff/ipc/test_i006/source.mk
deleted file mode 100644
index f889299..0000000
--- a/api-tests/ff/ipc/test_i006/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i006.c test_i006.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i006.c test_supp_i006.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i006/test.cmake
similarity index 70%
rename from api-tests/ff/ipc/test_i047/source.mk
rename to api-tests/ff/ipc/test_i006/test.cmake
index 5bb5a69..96c034c 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i006/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i006.c
+	test_i006.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i006.c
+	test_supp_i006.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i007/source.mk b/api-tests/ff/ipc/test_i007/source.mk
deleted file mode 100644
index 10aebef..0000000
--- a/api-tests/ff/ipc/test_i007/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i007.c test_i007.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i007.c test_supp_i007.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i007/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i007/test.cmake
index 5bb5a69..f000d65 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i007/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i007.c
+	test_i007.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i007.c
+	test_supp_i007.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i008/source.mk b/api-tests/ff/ipc/test_i008/source.mk
deleted file mode 100644
index 383855d..0000000
--- a/api-tests/ff/ipc/test_i008/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i008.c test_i008.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i008.c test_supp_i008.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i008/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i008/test.cmake
index 5bb5a69..7ed1bf5 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i008/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i008.c
+	test_i008.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i008.c
+	test_supp_i008.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i009/source.mk b/api-tests/ff/ipc/test_i009/source.mk
deleted file mode 100644
index a4f3ef0..0000000
--- a/api-tests/ff/ipc/test_i009/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i009.c test_i009.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i009.c test_supp_i009.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i009/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i009/test.cmake
index 5bb5a69..bad159d 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i009/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i009.c
+	test_i009.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i009.c
+	test_supp_i009.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i010/source.mk b/api-tests/ff/ipc/test_i010/source.mk
deleted file mode 100644
index 02e1d3b..0000000
--- a/api-tests/ff/ipc/test_i010/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i010.c test_i010.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i010.c test_supp_i010.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i010/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i010/test.cmake
index 5bb5a69..6e57eba 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i010/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i010.c
+	test_i010.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i010.c
+	test_supp_i010.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i011/source.mk b/api-tests/ff/ipc/test_i011/source.mk
deleted file mode 100644
index 0e227a8..0000000
--- a/api-tests/ff/ipc/test_i011/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i011.c test_i011.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i011.c test_supp_i011.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i011/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i011/test.cmake
index 5bb5a69..338cce2 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i011/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i011.c
+	test_i011.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i011.c
+	test_supp_i011.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i012/source.mk b/api-tests/ff/ipc/test_i012/source.mk
deleted file mode 100644
index 49cb593..0000000
--- a/api-tests/ff/ipc/test_i012/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i012.c test_i012.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i012.c test_supp_i012.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i012/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i012/test.cmake
index 5bb5a69..299f8ee 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i012/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i012.c
+	test_i012.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i012.c
+	test_supp_i012.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i013/source.mk b/api-tests/ff/ipc/test_i013/source.mk
deleted file mode 100644
index 4a5dde5..0000000
--- a/api-tests/ff/ipc/test_i013/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i013.c test_i013.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i013.c test_supp_i013.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i013/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i013/test.cmake
index 5bb5a69..724efac 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i013/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i013.c
+	test_i013.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i013.c
+	test_supp_i013.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i014/source.mk b/api-tests/ff/ipc/test_i014/source.mk
deleted file mode 100644
index fb8fc6e..0000000
--- a/api-tests/ff/ipc/test_i014/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i014.c test_i014.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i014.c test_supp_i014.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i014/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i014/test.cmake
index 5bb5a69..aabe4e2 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i014/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i014.c
+	test_i014.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i014.c
+	test_supp_i014.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i015/source.mk b/api-tests/ff/ipc/test_i015/source.mk
deleted file mode 100644
index c55f830..0000000
--- a/api-tests/ff/ipc/test_i015/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i015.c test_i015.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i015.c test_supp_i015.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i015/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i015/test.cmake
index 5bb5a69..877f36b 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i015/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i015.c
+	test_i015.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i015.c
+	test_supp_i015.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i016/source.mk b/api-tests/ff/ipc/test_i016/source.mk
deleted file mode 100644
index d1d196f..0000000
--- a/api-tests/ff/ipc/test_i016/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i016.c test_i016.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i016.c test_supp_i016.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i016/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i016/test.cmake
index 5bb5a69..c4e90e4 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i016/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i016.c
+	test_i016.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i016.c
+	test_supp_i016.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i017/source.mk b/api-tests/ff/ipc/test_i017/source.mk
deleted file mode 100644
index 74458cc..0000000
--- a/api-tests/ff/ipc/test_i017/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i017.c test_i017.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i017.c test_supp_i017.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i017/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i017/test.cmake
index 5bb5a69..f8520cf 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i017/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i017.c
+	test_i017.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i017.c
+	test_supp_i017.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i018/source.mk b/api-tests/ff/ipc/test_i018/source.mk
deleted file mode 100644
index 51e7bec..0000000
--- a/api-tests/ff/ipc/test_i018/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i018.c test_i018.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i018.c test_supp_i018.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i018/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i018/test.cmake
index 5bb5a69..3e495dd 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i018/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i018.c
+	test_i018.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i018.c
+	test_supp_i018.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i019/source.mk b/api-tests/ff/ipc/test_i019/source.mk
deleted file mode 100644
index 483b29a..0000000
--- a/api-tests/ff/ipc/test_i019/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i019.c test_i019.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i019.c test_supp_i019.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i019/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i019/test.cmake
index 5bb5a69..3a3305f 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i019/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i019.c
+	test_i019.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i019.c
+	test_supp_i019.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i020/source.mk b/api-tests/ff/ipc/test_i020/source.mk
deleted file mode 100644
index 0d7c05e..0000000
--- a/api-tests/ff/ipc/test_i020/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i020.c test_i020.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i020.c test_supp_i020.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i020/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i020/test.cmake
index 5bb5a69..530cae1 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i020/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i020.c
+	test_i020.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i020.c
+	test_supp_i020.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i021/source.mk b/api-tests/ff/ipc/test_i021/source.mk
deleted file mode 100644
index 2cf268d..0000000
--- a/api-tests/ff/ipc/test_i021/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i021.c test_i021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i021.c test_supp_i021.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i021/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i021/test.cmake
index 5bb5a69..d9ecfed 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i021/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i021.c
+	test_i021.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i021.c
+	test_supp_i021.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i022/source.mk b/api-tests/ff/ipc/test_i022/source.mk
deleted file mode 100644
index 0afb1b9..0000000
--- a/api-tests/ff/ipc/test_i022/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i022.c test_i022.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i022.c test_supp_i022.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i022/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i022/test.cmake
index 5bb5a69..915cddd 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i022/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i022.c
+	test_i022.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i022.c
+	test_supp_i022.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i023/source.mk b/api-tests/ff/ipc/test_i023/source.mk
deleted file mode 100644
index 516deb1..0000000
--- a/api-tests/ff/ipc/test_i023/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i023.c test_i023.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i023.c test_supp_i023.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i023/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i023/test.cmake
index 5bb5a69..176cfc8 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i023/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i023.c
+	test_i023.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i023.c
+	test_supp_i023.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i024/source.mk b/api-tests/ff/ipc/test_i024/source.mk
deleted file mode 100644
index 1213b26..0000000
--- a/api-tests/ff/ipc/test_i024/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i024.c test_i024.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i024.c test_supp_i024.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i024/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i024/test.cmake
index 5bb5a69..f0e0297 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i024/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i024.c
+	test_i024.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i024.c
+	test_supp_i024.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i025/source.mk b/api-tests/ff/ipc/test_i025/source.mk
deleted file mode 100644
index e4b6673..0000000
--- a/api-tests/ff/ipc/test_i025/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i025.c test_i025.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i025.c test_supp_i025.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i025/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i025/test.cmake
index 5bb5a69..e861a9a 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i025/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i025.c
+	test_i025.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i025.c
+	test_supp_i025.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i026/source.mk b/api-tests/ff/ipc/test_i026/source.mk
deleted file mode 100644
index b325585..0000000
--- a/api-tests/ff/ipc/test_i026/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i026.c test_i026.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i026.c test_supp_i026.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i026/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i026/test.cmake
index 5bb5a69..361dfbd 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i026/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i026.c
+	test_i026.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i026.c
+	test_supp_i026.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i027/source.mk b/api-tests/ff/ipc/test_i027/source.mk
deleted file mode 100644
index 7094e76..0000000
--- a/api-tests/ff/ipc/test_i027/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i027.c test_i027.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i027.c test_supp_i027.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i027/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i027/test.cmake
index 5bb5a69..27babcf 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i027/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i027.c
+	test_i027.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i027.c
+	test_supp_i027.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i028/source.mk b/api-tests/ff/ipc/test_i028/source.mk
deleted file mode 100644
index 4cfdd10..0000000
--- a/api-tests/ff/ipc/test_i028/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i028.c test_i028.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i028.c test_supp_i028.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i028/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i028/test.cmake
index 5bb5a69..189e407 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i028/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i028.c
+	test_i028.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i028.c
+	test_supp_i028.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i029/source.mk b/api-tests/ff/ipc/test_i029/source.mk
deleted file mode 100644
index 0d91668..0000000
--- a/api-tests/ff/ipc/test_i029/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i029.c test_i029.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i029.c test_supp_i029.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i029/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i029/test.cmake
index 5bb5a69..b083caa 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i029/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i029.c
+	test_i029.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i029.c
+	test_supp_i029.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i030/source.mk b/api-tests/ff/ipc/test_i030/source.mk
deleted file mode 100644
index 23d38ed..0000000
--- a/api-tests/ff/ipc/test_i030/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i030.c test_i030.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i030.c test_supp_i030.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i030/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i030/test.cmake
index 5bb5a69..877ec83 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i030/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i030.c
+	test_i030.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i030.c
+	test_supp_i030.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i031/source.mk b/api-tests/ff/ipc/test_i031/source.mk
deleted file mode 100644
index 415a8fc..0000000
--- a/api-tests/ff/ipc/test_i031/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i031.c test_i031.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i031.c test_supp_i031.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i031/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i031/test.cmake
index 5bb5a69..a9bbd09 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i031/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i031.c
+	test_i031.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i031.c
+	test_supp_i031.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i032/source.mk b/api-tests/ff/ipc/test_i032/source.mk
deleted file mode 100644
index 0806e3a..0000000
--- a/api-tests/ff/ipc/test_i032/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i032.c test_i032.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i032.c test_supp_i032.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i032/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i032/test.cmake
index 5bb5a69..413d839 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i032/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i032.c
+	test_i032.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i032.c
+	test_supp_i032.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i033/source.mk b/api-tests/ff/ipc/test_i033/source.mk
deleted file mode 100644
index 350d245..0000000
--- a/api-tests/ff/ipc/test_i033/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i033.c test_i033.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i033.c test_supp_i033.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i033/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i033/test.cmake
index 5bb5a69..75a6dd6 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i033/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i033.c
+	test_i033.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i033.c
+	test_supp_i033.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i034/source.mk b/api-tests/ff/ipc/test_i034/source.mk
deleted file mode 100644
index 108a4dc..0000000
--- a/api-tests/ff/ipc/test_i034/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i034.c test_i034.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i034.c test_supp_i034.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i034/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i034/test.cmake
index 5bb5a69..87f1491 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i034/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i034.c
+	test_i034.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i034.c
+	test_supp_i034.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i035/source.mk b/api-tests/ff/ipc/test_i035/source.mk
deleted file mode 100644
index 68ca342..0000000
--- a/api-tests/ff/ipc/test_i035/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i035.c test_i035.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i035.c test_supp_i035.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i035/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i035/test.cmake
index 5bb5a69..571d48a 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i035/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i035.c
+	test_i035.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i035.c
+	test_supp_i035.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i036/source.mk b/api-tests/ff/ipc/test_i036/source.mk
deleted file mode 100644
index ed3dc57..0000000
--- a/api-tests/ff/ipc/test_i036/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i036.c test_i036.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i036.c test_supp_i036.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i036/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i036/test.cmake
index 5bb5a69..4d89727 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i036/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i036.c
+	test_i036.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i036.c
+	test_supp_i036.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i037/source.mk b/api-tests/ff/ipc/test_i037/source.mk
deleted file mode 100644
index cfcf6e4..0000000
--- a/api-tests/ff/ipc/test_i037/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i037.c test_i037.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i037.c test_supp_i037.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i037/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i037/test.cmake
index 5bb5a69..2e64af5 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i037/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i037.c
+	test_i037.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i037.c
+	test_supp_i037.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i038/source.mk b/api-tests/ff/ipc/test_i038/source.mk
deleted file mode 100644
index 0553d67..0000000
--- a/api-tests/ff/ipc/test_i038/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i038.c test_i038.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i038.c test_supp_i038.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i038/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i038/test.cmake
index 5bb5a69..b0d7a96 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i038/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i038.c
+	test_i038.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i038.c
+	test_supp_i038.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i039/source.mk b/api-tests/ff/ipc/test_i039/source.mk
deleted file mode 100644
index 0c2d68e..0000000
--- a/api-tests/ff/ipc/test_i039/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i039.c test_i039.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i039.c test_supp_i039.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i039/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i039/test.cmake
index 5bb5a69..616c732 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i039/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i039.c
+	test_i039.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i039.c
+	test_supp_i039.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i040/source.mk b/api-tests/ff/ipc/test_i040/source.mk
deleted file mode 100644
index ba62c46..0000000
--- a/api-tests/ff/ipc/test_i040/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i040.c test_i040.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i040.c test_supp_i040.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i040/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i040/test.cmake
index 5bb5a69..336af6f 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i040/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i040.c
+	test_i040.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i040.c
+	test_supp_i040.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i041/source.mk b/api-tests/ff/ipc/test_i041/source.mk
deleted file mode 100644
index 40028a7..0000000
--- a/api-tests/ff/ipc/test_i041/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i041.c test_i041.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i041.c test_supp_i041.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i041/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i041/test.cmake
index 5bb5a69..e501752 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i041/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i041.c
+	test_i041.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i041.c
+	test_supp_i041.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i042/source.mk b/api-tests/ff/ipc/test_i042/source.mk
deleted file mode 100644
index a5f0f2e..0000000
--- a/api-tests/ff/ipc/test_i042/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i042.c test_i042.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i042.c test_supp_i042.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i042/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i042/test.cmake
index 5bb5a69..5f01de2 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i042/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i042.c
+	test_i042.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i042.c
+	test_supp_i042.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i043/source.mk b/api-tests/ff/ipc/test_i043/source.mk
deleted file mode 100644
index c7f19e5..0000000
--- a/api-tests/ff/ipc/test_i043/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i043.c test_i043.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i043.c test_supp_i043.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i043/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i043/test.cmake
index 5bb5a69..5dfeb41 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i043/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i043.c
+	test_i043.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i043.c
+	test_supp_i043.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i044/source.mk b/api-tests/ff/ipc/test_i044/source.mk
deleted file mode 100644
index 73fb620..0000000
--- a/api-tests/ff/ipc/test_i044/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i044.c test_i044.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i044.c test_supp_i044.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i044/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i044/test.cmake
index 5bb5a69..f7486d7 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i044/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i044.c
+	test_i044.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i044.c
+	test_supp_i044.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i045/source.mk b/api-tests/ff/ipc/test_i045/source.mk
deleted file mode 100644
index 602e53e..0000000
--- a/api-tests/ff/ipc/test_i045/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i045.c test_i045.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i045.c test_supp_i045.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i045/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i045/test.cmake
index 5bb5a69..c7fd5ba 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i045/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i045.c
+	test_i045.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i045.c
+	test_supp_i045.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i046/source.mk b/api-tests/ff/ipc/test_i046/source.mk
deleted file mode 100644
index 257c177..0000000
--- a/api-tests/ff/ipc/test_i046/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2018, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i046.c test_i046.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i046.c test_supp_i046.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i046/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i046/test.cmake
index 5bb5a69..c91735f 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i046/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i046.c
+	test_i046.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i046.c
+	test_supp_i046.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i047/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i047/test.cmake
index 5bb5a69..72be9a4 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i047/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i047.c
+	test_i047.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i047.c
+	test_supp_i047.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i048/source.mk b/api-tests/ff/ipc/test_i048/source.mk
deleted file mode 100644
index 0c8e3a5..0000000
--- a/api-tests/ff/ipc/test_i048/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i048.c test_i048.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i048.c test_supp_i048.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i048/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i048/test.cmake
index 5bb5a69..a7f11bd 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i048/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i048.c
+	test_i048.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i048.c
+	test_supp_i048.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i049/source.mk b/api-tests/ff/ipc/test_i049/source.mk
deleted file mode 100644
index 9e3d969..0000000
--- a/api-tests/ff/ipc/test_i049/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i049.c test_i049.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i049.c test_supp_i049.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i049/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i049/test.cmake
index 5bb5a69..de1b322 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i049/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i049.c
+	test_i049.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i049.c
+	test_supp_i049.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i050/source.mk b/api-tests/ff/ipc/test_i050/source.mk
deleted file mode 100644
index de52ee3..0000000
--- a/api-tests/ff/ipc/test_i050/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i050.c test_i050.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i050.c test_supp_i050.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i050/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i050/test.cmake
index 5bb5a69..b70d3ea 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i050/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i050.c
+	test_i050.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i050.c
+	test_supp_i050.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i051/source.mk b/api-tests/ff/ipc/test_i051/source.mk
deleted file mode 100644
index 5ea476c..0000000
--- a/api-tests/ff/ipc/test_i051/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i051.c test_i051.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i051.c test_supp_i051.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i051/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i051/test.cmake
index 5bb5a69..ac938a9 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i051/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i051.c
+	test_i051.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i051.c
+	test_supp_i051.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i052/source.mk b/api-tests/ff/ipc/test_i052/source.mk
deleted file mode 100644
index e1aaf82..0000000
--- a/api-tests/ff/ipc/test_i052/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i052.c test_i052.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i052.c test_supp_i052.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i052/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i052/test.cmake
index 5bb5a69..c5524a2 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i052/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i052.c
+	test_i052.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i052.c
+	test_supp_i052.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i053/source.mk b/api-tests/ff/ipc/test_i053/source.mk
deleted file mode 100644
index 07e6f54..0000000
--- a/api-tests/ff/ipc/test_i053/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i053.c test_i053.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i053.c test_supp_i053.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i053/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i053/test.cmake
index 5bb5a69..a9be727 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i053/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i053.c
+	test_i053.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i053.c
+	test_supp_i053.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i054/source.mk b/api-tests/ff/ipc/test_i054/source.mk
deleted file mode 100644
index 8aae70f..0000000
--- a/api-tests/ff/ipc/test_i054/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i054.c test_i054.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i054.c test_supp_i054.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i054/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i054/test.cmake
index 5bb5a69..49495a6 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i054/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i054.c
+	test_i054.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i054.c
+	test_supp_i054.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i055/source.mk b/api-tests/ff/ipc/test_i055/source.mk
deleted file mode 100644
index 80a0263..0000000
--- a/api-tests/ff/ipc/test_i055/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i055.c test_i055.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i055.c test_supp_i055.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i055/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i055/test.cmake
index 5bb5a69..dfe9de8 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i055/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i055.c
+	test_i055.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i055.c
+	test_supp_i055.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i056/source.mk b/api-tests/ff/ipc/test_i056/source.mk
deleted file mode 100644
index 108c471..0000000
--- a/api-tests/ff/ipc/test_i056/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i056.c test_i056.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i056.c test_supp_i056.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i056/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i056/test.cmake
index 5bb5a69..553070a 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i056/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i056.c
+	test_i056.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i056.c
+	test_supp_i056.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i057/source.mk b/api-tests/ff/ipc/test_i057/source.mk
deleted file mode 100644
index 25fbaa9..0000000
--- a/api-tests/ff/ipc/test_i057/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i057.c test_i057.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i057.c test_supp_i057.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i057/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i057/test.cmake
index 5bb5a69..97e5bef 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i057/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i057.c
+	test_i057.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i057.c
+	test_supp_i057.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i058/source.mk b/api-tests/ff/ipc/test_i058/source.mk
deleted file mode 100644
index e4adfa9..0000000
--- a/api-tests/ff/ipc/test_i058/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i058.c test_i058.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i058.c test_supp_i058.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i058/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i058/test.cmake
index 5bb5a69..19a8f18 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i058/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i058.c
+	test_i058.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i058.c
+	test_supp_i058.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i059/source.mk b/api-tests/ff/ipc/test_i059/source.mk
deleted file mode 100644
index b72db0b..0000000
--- a/api-tests/ff/ipc/test_i059/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i059.c test_i059.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i059.c test_supp_i059.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i059/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i059/test.cmake
index 5bb5a69..92c44e5 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i059/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i059.c
+	test_i059.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i059.c
+	test_supp_i059.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i060/source.mk b/api-tests/ff/ipc/test_i060/source.mk
deleted file mode 100644
index 5f4d02d..0000000
--- a/api-tests/ff/ipc/test_i060/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i060.c test_i060.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i060.c test_supp_i060.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i060/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i060/test.cmake
index 5bb5a69..aa6cdd5 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i060/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i060.c
+	test_i060.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i060.c
+	test_supp_i060.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i061/source.mk b/api-tests/ff/ipc/test_i061/source.mk
deleted file mode 100644
index dc4d913..0000000
--- a/api-tests/ff/ipc/test_i061/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i061.c test_i061.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i061.c test_supp_i061.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i061/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i061/test.cmake
index 5bb5a69..23f79e3 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i061/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i061.c
+	test_i061.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i061.c
+	test_supp_i061.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i062/source.mk b/api-tests/ff/ipc/test_i062/source.mk
deleted file mode 100644
index b14d3c3..0000000
--- a/api-tests/ff/ipc/test_i062/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i062.c test_i062.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i062.c test_supp_i062.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i062/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i062/test.cmake
index 5bb5a69..b0ae70a 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i062/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i062.c
+	test_i062.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i062.c
+	test_supp_i062.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i063/source.mk b/api-tests/ff/ipc/test_i063/source.mk
deleted file mode 100644
index b23ec71..0000000
--- a/api-tests/ff/ipc/test_i063/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i063.c test_i063.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i063.c test_supp_i063.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i063/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i063/test.cmake
index 5bb5a69..bdbf6e8 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i063/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i063.c
+	test_i063.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i063.c
+	test_supp_i063.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i064/source.mk b/api-tests/ff/ipc/test_i064/source.mk
deleted file mode 100644
index 1796e27..0000000
--- a/api-tests/ff/ipc/test_i064/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i064.c test_i064.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i064.c test_supp_i064.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i064/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i064/test.cmake
index 5bb5a69..4e2a227 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i064/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i064.c
+	test_i064.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i064.c
+	test_supp_i064.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i065/source.mk b/api-tests/ff/ipc/test_i065/source.mk
deleted file mode 100644
index 9f62283..0000000
--- a/api-tests/ff/ipc/test_i065/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i065.c test_i065.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i065.c test_supp_i065.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i065/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i065/test.cmake
index 5bb5a69..567b71f 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i065/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i065.c
+	test_i065.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i065.c
+	test_supp_i065.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i066/source.mk b/api-tests/ff/ipc/test_i066/source.mk
deleted file mode 100644
index 604c13c..0000000
--- a/api-tests/ff/ipc/test_i066/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i066.c test_i066.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i066.c test_supp_i066.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i066/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i066/test.cmake
index 5bb5a69..5de4965 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i066/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i066.c
+	test_i066.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i066.c
+	test_supp_i066.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i067/source.mk b/api-tests/ff/ipc/test_i067/source.mk
deleted file mode 100644
index cce0b53..0000000
--- a/api-tests/ff/ipc/test_i067/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i067.c test_i067.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i067.c test_supp_i067.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i067/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i067/test.cmake
index 5bb5a69..66fabc8 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i067/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i067.c
+	test_i067.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i067.c
+	test_supp_i067.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i067/test_i067.c b/api-tests/ff/ipc/test_i067/test_i067.c
index 6e6f27f..f1f2228 100644
--- a/api-tests/ff/ipc/test_i067/test_i067.c
+++ b/api-tests/ff/ipc/test_i067/test_i067.c
@@ -19,13 +19,13 @@
 #include "val_interfaces.h"
 #include "val_target.h"
 #else
-#include "val/common/val_client_defs.h"
-#include "val/spe/val_partition_common.h"
+#include "val_client_defs.h"
+#include "val_service_defs.h"
 #endif
 
 #include "test_i067.h"
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 void *malloc(size_t size);
 void free(void *ptr);
 #endif
@@ -39,7 +39,7 @@
 int32_t client_test_dynamic_mem_alloc_fn(security_t caller)
 {
   /* Check heap memory support available to secure partition */
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
   uint8_t              *buffer;
 
   val->print(PRINT_TEST, "[Check 1] Test dynamic memory allocation\n", 0);
diff --git a/api-tests/ff/ipc/test_i067/test_supp_i067.c b/api-tests/ff/ipc/test_i067/test_supp_i067.c
index b6d0779..aa5a8bf 100644
--- a/api-tests/ff/ipc/test_i067/test_supp_i067.c
+++ b/api-tests/ff/ipc/test_i067/test_supp_i067.c
@@ -25,7 +25,7 @@
 
 #define SERVER_HEAP_SIZE 0x100 /* The size is same as heap_size field in manifest */
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 void *malloc(size_t size);
 void free(void *ptr);
 void *realloc(void *ptr, size_t size);
@@ -42,7 +42,7 @@
 int32_t server_test_dynamic_mem_alloc_fn(void)
 {
    /* Perform checks only if heap memory support available to secure partition */
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
    uint8_t              *buffer, *buffer1;
    uint8_t              cmpbuff[SERVER_HEAP_SIZE] = {0};
 
diff --git a/api-tests/ff/ipc/test_i068/source.mk b/api-tests/ff/ipc/test_i068/source.mk
deleted file mode 100644
index e85e11e..0000000
--- a/api-tests/ff/ipc/test_i068/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i068.c test_i068.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i068.c test_supp_i068.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i068/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i068/test.cmake
index 5bb5a69..cefebf1 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i068/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i068.c
+	test_i068.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i068.c
+	test_supp_i068.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i068/test_i068.c b/api-tests/ff/ipc/test_i068/test_i068.c
index 0ab92dc..18b3c87 100644
--- a/api-tests/ff/ipc/test_i068/test_i068.c
+++ b/api-tests/ff/ipc/test_i068/test_i068.c
@@ -19,8 +19,8 @@
 #include "val_interfaces.h"
 #include "val_target.h"
 #else
-#include "val/common/val_client_defs.h"
-#include "val/spe/val_partition_common.h"
+#include "val_client_defs.h"
+#include "val_service_defs.h"
 #endif
 
 #include "test_i068.h"
diff --git a/api-tests/ff/ipc/test_i069/source.mk b/api-tests/ff/ipc/test_i069/source.mk
deleted file mode 100644
index 9bedeb2..0000000
--- a/api-tests/ff/ipc/test_i069/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i069.c test_i069.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i069.c test_supp_i069.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i069/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i069/test.cmake
index 5bb5a69..99eb821 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i069/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i069.c
+	test_i069.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i069.c
+	test_supp_i069.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i069/test_i069.c b/api-tests/ff/ipc/test_i069/test_i069.c
index 53afce3..1955b9d 100644
--- a/api-tests/ff/ipc/test_i069/test_i069.c
+++ b/api-tests/ff/ipc/test_i069/test_i069.c
@@ -19,8 +19,8 @@
 #include "val_interfaces.h"
 #include "val_target.h"
 #else
-#include "val/common/val_client_defs.h"
-#include "val/spe/val_partition_common.h"
+#include "val_client_defs.h"
+#include "val_service_defs.h"
 #endif
 
 #include "test_i069.h"
diff --git a/api-tests/ff/ipc/test_i070/source.mk b/api-tests/ff/ipc/test_i070/source.mk
deleted file mode 100644
index 9197155..0000000
--- a/api-tests/ff/ipc/test_i070/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i070.c test_i070.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i070.c test_supp_i070.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i070/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i070/test.cmake
index 5bb5a69..82d9a91 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i070/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i070.c
+	test_i070.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i070.c
+	test_supp_i070.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i070/test_i070.c b/api-tests/ff/ipc/test_i070/test_i070.c
index 45c5dc9..c9d5ac1 100644
--- a/api-tests/ff/ipc/test_i070/test_i070.c
+++ b/api-tests/ff/ipc/test_i070/test_i070.c
@@ -19,8 +19,8 @@
 #include "val_interfaces.h"
 #include "val_target.h"
 #else
-#include "val/common/val_client_defs.h"
-#include "val/spe/val_partition_common.h"
+#include "val_client_defs.h"
+#include "val_service_defs.h"
 #endif
 
 #include "test_i070.h"
diff --git a/api-tests/ff/ipc/test_i071/source.mk b/api-tests/ff/ipc/test_i071/source.mk
deleted file mode 100644
index 2eac129..0000000
--- a/api-tests/ff/ipc/test_i071/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i071.c test_i071.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i071.c test_supp_i071.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i071/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i071/test.cmake
index 5bb5a69..a39ec15 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i071/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i071.c
+	test_i071.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i071.c
+	test_supp_i071.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i071/test_i071.c b/api-tests/ff/ipc/test_i071/test_i071.c
index 1c56a02..3e7774d 100644
--- a/api-tests/ff/ipc/test_i071/test_i071.c
+++ b/api-tests/ff/ipc/test_i071/test_i071.c
@@ -19,8 +19,8 @@
 #include "val_interfaces.h"
 #include "val_target.h"
 #else
-#include "val/common/val_client_defs.h"
-#include "val/spe/val_partition_common.h"
+#include "val_client_defs.h"
+#include "val_service_defs.h"
 #endif
 
 #include "test_i071.h"
diff --git a/api-tests/ff/ipc/test_i072/source.mk b/api-tests/ff/ipc/test_i072/source.mk
deleted file mode 100644
index cdccca5..0000000
--- a/api-tests/ff/ipc/test_i072/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i072.c test_i072.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i072.c test_supp_i072.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i072/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i072/test.cmake
index 5bb5a69..c5fb69e 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i072/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i072.c
+	test_i072.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i072.c
+	test_supp_i072.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i073/source.mk b/api-tests/ff/ipc/test_i073/source.mk
deleted file mode 100644
index d52216e..0000000
--- a/api-tests/ff/ipc/test_i073/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i073.c test_i073.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i073.c test_supp_i073.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i073/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i073/test.cmake
index 5bb5a69..8f3321c 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i073/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i073.c
+	test_i073.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i073.c
+	test_supp_i073.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i074/source.mk b/api-tests/ff/ipc/test_i074/source.mk
deleted file mode 100644
index df3f9bd..0000000
--- a/api-tests/ff/ipc/test_i074/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i074.c test_i074.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i074.c test_supp_i074.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i074/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i074/test.cmake
index 5bb5a69..ce162f8 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i074/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i074.c
+	test_i074.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i074.c
+	test_supp_i074.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i074/test_i074.c b/api-tests/ff/ipc/test_i074/test_i074.c
index 8c58ca9..bc89152 100644
--- a/api-tests/ff/ipc/test_i074/test_i074.c
+++ b/api-tests/ff/ipc/test_i074/test_i074.c
@@ -36,7 +36,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t get_secure_partition_address(addr_t *addr)
 {
    psa_handle_t            handle = 0;
diff --git a/api-tests/ff/ipc/test_i074/test_supp_i074.c b/api-tests/ff/ipc/test_i074/test_supp_i074.c
index cbc790e..ff79d34 100644
--- a/api-tests/ff/ipc/test_i074/test_supp_i074.c
+++ b/api-tests/ff/ipc/test_i074/test_supp_i074.c
@@ -26,7 +26,7 @@
 int32_t server_test_nspe_read_app_rot_heap(void);
 int32_t server_test_nspe_write_app_rot_heap(void);
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 void *malloc(size_t size);
 void free(void *ptr);
 #endif
@@ -41,7 +41,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t send_secure_partition_address(uint8_t *heap)
 {
     int32_t         status = VAL_STATUS_SUCCESS;
diff --git a/api-tests/ff/ipc/test_i075/source.mk b/api-tests/ff/ipc/test_i075/source.mk
deleted file mode 100644
index 55b3a76..0000000
--- a/api-tests/ff/ipc/test_i075/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i075.c test_i075.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i075.c test_supp_i075.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i075/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i075/test.cmake
index 5bb5a69..a7583cf 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i075/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i075.c
+	test_i075.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i075.c
+	test_supp_i075.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i076/source.mk b/api-tests/ff/ipc/test_i076/source.mk
deleted file mode 100644
index 31064b8..0000000
--- a/api-tests/ff/ipc/test_i076/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i076.c test_i076.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i076.c test_supp_i076.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i076/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i076/test.cmake
index 5bb5a69..6e1dd1b 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i076/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i076.c
+	test_i076.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i076.c
+	test_supp_i076.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i077/source.mk b/api-tests/ff/ipc/test_i077/source.mk
deleted file mode 100644
index b5026c3..0000000
--- a/api-tests/ff/ipc/test_i077/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i077.c test_i077.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i077.c test_supp_i077.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i077/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i077/test.cmake
index 5bb5a69..0a060bf 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i077/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i077.c
+	test_i077.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i077.c
+	test_supp_i077.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i078/source.mk b/api-tests/ff/ipc/test_i078/source.mk
deleted file mode 100644
index 7f8dbe7..0000000
--- a/api-tests/ff/ipc/test_i078/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i078.c test_i078.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i078.c test_supp_i078.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i078/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i078/test.cmake
index 5bb5a69..c7273d9 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i078/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i078.c
+	test_i078.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i078.c
+	test_supp_i078.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i078/test_i078.c b/api-tests/ff/ipc/test_i078/test_i078.c
index 338b781..d46365c 100644
--- a/api-tests/ff/ipc/test_i078/test_i078.c
+++ b/api-tests/ff/ipc/test_i078/test_i078.c
@@ -36,7 +36,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t get_secure_partition_address(psa_handle_t *handle,
                                             addr_t *addr,
                                             driver_test_fn_id_t test_fn_id)
diff --git a/api-tests/ff/ipc/test_i079/source.mk b/api-tests/ff/ipc/test_i079/source.mk
deleted file mode 100644
index e1357c4..0000000
--- a/api-tests/ff/ipc/test_i079/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i079.c test_i079.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i079.c test_supp_i079.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i079/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i079/test.cmake
index 5bb5a69..2cab6b3 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i079/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i079.c
+	test_i079.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i079.c
+	test_supp_i079.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i080/source.mk b/api-tests/ff/ipc/test_i080/source.mk
deleted file mode 100644
index 8f88250..0000000
--- a/api-tests/ff/ipc/test_i080/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i080.c test_i080.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i080.c test_supp_i080.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i080/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i080/test.cmake
index 5bb5a69..6495d40 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i080/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i080.c
+	test_i080.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i080.c
+	test_supp_i080.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i081/source.mk b/api-tests/ff/ipc/test_i081/source.mk
deleted file mode 100644
index 3344b9e..0000000
--- a/api-tests/ff/ipc/test_i081/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i081.c test_i081.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i081.c test_supp_i081.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i081/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i081/test.cmake
index 5bb5a69..da099b7 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i081/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i081.c
+	test_i081.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i081.c
+	test_supp_i081.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i082/source.mk b/api-tests/ff/ipc/test_i082/source.mk
deleted file mode 100644
index 7b568ce..0000000
--- a/api-tests/ff/ipc/test_i082/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i082.c test_i082.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i082.c test_supp_i082.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i082/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i082/test.cmake
index 5bb5a69..e0c7581 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i082/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i082.c
+	test_i082.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i082.c
+	test_supp_i082.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i082/test_i082.c b/api-tests/ff/ipc/test_i082/test_i082.c
index 6ddd6a7..05e3f84 100644
--- a/api-tests/ff/ipc/test_i082/test_i082.c
+++ b/api-tests/ff/ipc/test_i082/test_i082.c
@@ -36,7 +36,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t get_secure_partition_address(psa_handle_t *handle,
                                             addr_t *addr,
                                             driver_test_fn_id_t test_fn_id)
diff --git a/api-tests/ff/ipc/test_i083/source.mk b/api-tests/ff/ipc/test_i083/source.mk
deleted file mode 100644
index a13ab84..0000000
--- a/api-tests/ff/ipc/test_i083/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i083.c test_i083.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i083.c test_supp_i083.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i083/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i083/test.cmake
index 5bb5a69..74e5fbe 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i083/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i083.c
+	test_i083.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i083.c
+	test_supp_i083.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i084/source.mk b/api-tests/ff/ipc/test_i084/source.mk
deleted file mode 100644
index 428c065..0000000
--- a/api-tests/ff/ipc/test_i084/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i084.c test_i084.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i084.c test_supp_i084.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i084/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i084/test.cmake
index 5bb5a69..f6e9040 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i084/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i084.c
+	test_i084.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i084.c
+	test_supp_i084.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i085/source.mk b/api-tests/ff/ipc/test_i085/source.mk
deleted file mode 100644
index 2a8e13b..0000000
--- a/api-tests/ff/ipc/test_i085/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i085.c test_i085.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i085.c test_supp_i085.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i085/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i085/test.cmake
index 5bb5a69..cb4948f 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i085/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i085.c
+	test_i085.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i085.c
+	test_supp_i085.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i086/source.mk b/api-tests/ff/ipc/test_i086/source.mk
deleted file mode 100644
index d07ace1..0000000
--- a/api-tests/ff/ipc/test_i086/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i086.c test_i086.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i086.c test_supp_i086.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i086/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i086/test.cmake
index 5bb5a69..d8d5f40 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i086/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i086.c
+	test_i086.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i086.c
+	test_supp_i086.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_i086/test_i086.c b/api-tests/ff/ipc/test_i086/test_i086.c
index 7f56cbe..370e935 100644
--- a/api-tests/ff/ipc/test_i086/test_i086.c
+++ b/api-tests/ff/ipc/test_i086/test_i086.c
@@ -36,7 +36,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t get_secure_partition_address(addr_t *addr)
 {
    psa_handle_t            handle = 0;
diff --git a/api-tests/ff/ipc/test_i086/test_supp_i086.c b/api-tests/ff/ipc/test_i086/test_supp_i086.c
index 52fef11..946273e 100644
--- a/api-tests/ff/ipc/test_i086/test_supp_i086.c
+++ b/api-tests/ff/ipc/test_i086/test_supp_i086.c
@@ -26,7 +26,7 @@
 int32_t server_test_sp_read_other_sp_heap(void);
 int32_t server_test_sp_write_other_sp_heap(void);
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 void *malloc(size_t size);
 void free(void *ptr);
 #endif
@@ -41,7 +41,7 @@
     NULL,
 };
 
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
 static int32_t send_secure_partition_address(uint8_t *heap)
 {
     int32_t         status = VAL_STATUS_SUCCESS;
diff --git a/api-tests/ff/ipc/test_i087/source.mk b/api-tests/ff/ipc/test_i087/source.mk
deleted file mode 100644
index d0cfd53..0000000
--- a/api-tests/ff/ipc/test_i087/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_i087.c test_i087.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_i087.c test_supp_i087.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_i087/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_i087/test.cmake
index 5bb5a69..4746ba6 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_i087/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_i087.c
+	test_i087.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_i087.c
+	test_supp_i087.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/ipc/test_l088/source.mk b/api-tests/ff/ipc/test_l088/source.mk
deleted file mode 100644
index 69cfbcf..0000000
--- a/api-tests/ff/ipc/test_l088/source.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-CC_SOURCE  = test_entry_l088.c test_l088.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
-
-CC_SOURCE_SPE  = test_l088.c test_supp_l088.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
diff --git a/api-tests/ff/ipc/test_i047/source.mk b/api-tests/ff/ipc/test_l088/test.cmake
similarity index 70%
copy from api-tests/ff/ipc/test_i047/source.mk
copy to api-tests/ff/ipc/test_l088/test.cmake
index 5bb5a69..16026f9 100644
--- a/api-tests/ff/ipc/test_i047/source.mk
+++ b/api-tests/ff/ipc/test_l088/test.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,12 +15,18 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_i047.c test_i047.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+list(APPEND CC_SOURCE
+	test_entry_l088.c
+	test_l088.c
+)
+list(APPEND CC_OPTIONS )
+list(APPEND AS_SOURCE  )
+list(APPEND AS_OPTIONS )
 
-CC_SOURCE_SPE  = test_i047.c test_supp_i047.c
-CC_OPTIONS_SPE =
-AS_SOURCE_SPE  =
-AS_OPTIONS_SPE =
\ No newline at end of file
+list(APPEND CC_SOURCE_SPE
+	test_l088.c
+	test_supp_l088.c
+)
+list(APPEND CC_OPTIONS_SPE )
+list(APPEND AS_SOURCE_SPE  )
+list(APPEND AS_OPTIONS_SPE )
diff --git a/api-tests/ff/partition/common/driver_partition.c b/api-tests/ff/partition/common/driver_partition.c
index 53a6004..1dff45b 100644
--- a/api-tests/ff/partition/common/driver_partition.c
+++ b/api-tests/ff/partition/common/driver_partition.c
@@ -15,7 +15,7 @@
  * limitations under the License.
 **/
 
-#include "val/spe/val_driver_service_apis.h"
+#include "val_driver_service_apis.h"
 
 #define DATA_VALUE  0x1111
 #define BUFFER_SIZE 4
@@ -574,7 +574,7 @@
 
 void driver_test_isolation_psa_rot_heap_rd(psa_msg_t *msg)
 {
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
     uint8_t         *buffer;
 
     buffer = (uint8_t *)malloc(sizeof(uint8_t) * BUFFER_SIZE);
@@ -589,7 +589,7 @@
 
 void driver_test_isolation_psa_rot_heap_wr(psa_msg_t *msg)
 {
-#if (SP_HEAP_MEM_SUPP == 1)
+#ifdef SP_HEAP_MEM_SUPP
     uint8_t         *buffer;
 
     buffer = (uint8_t *)malloc(sizeof(uint8_t) * BUFFER_SIZE);
diff --git a/api-tests/platform/drivers/uart/cmsdk/pal_uart.c b/api-tests/platform/drivers/uart/cmsdk/pal_uart.c
index e55a411..3964371 100644
--- a/api-tests/platform/drivers/uart/cmsdk/pal_uart.c
+++ b/api-tests/platform/drivers/uart/cmsdk/pal_uart.c
@@ -68,7 +68,7 @@
 void pal_cmsdk_print(char *str, int32_t data)
 {
     int8_t  j, buffer[16];
-    int8_t  i = 0, is_neg = 0;
+    int8_t  i = 0, is_neg = 0, k = sizeof(data);
 
     for (; *str != '\0'; ++str)
     {
@@ -96,7 +96,7 @@
             }
             else if (*str == 'x' || *str == 'X')
             {
-                while (data != 0)
+                while (k--)
                 {
                     j         = data & 0xf;
                     data    >>= 4;
diff --git a/api-tests/platform/drivers/uart/pl011/pal_uart.c b/api-tests/platform/drivers/uart/pl011/pal_uart.c
index 9a1095b..20ac237 100644
--- a/api-tests/platform/drivers/uart/pl011/pal_uart.c
+++ b/api-tests/platform/drivers/uart/pl011/pal_uart.c
@@ -69,7 +69,7 @@
 void pal_uart_pl011_print(char *str, int32_t data)
 {
     uint8_t j, buffer[16];
-    int8_t  i = 0, is_neg = 0;
+    int8_t  i = 0, is_neg = 0, k = sizeof(data);
 
     for (; *str != '\0'; ++str)
     {
@@ -97,7 +97,7 @@
             }
             else if (*str == 'x' || *str == 'X')
             {
-                while (data != 0)
+                while (k--)
                 {
                     j         = data & 0xf;
                     data    >>= 4;
diff --git a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/Makefile b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/Makefile
deleted file mode 100644
index f757e4b..0000000
--- a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/Makefile
+++ /dev/null
@@ -1,160 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-# Make variables to select correct instances of PAL files
-
-## PSA_IPC_IMPLEMENTED must be true for IPC SUITE
-PSA_IPC_IMPLEMENTED:=0
-
-## PSA_CRYPTO_IMPLEMENTED must be true for CRYPTO SUITE
-PSA_CRYPTO_IMPLEMENTED:=1
-
-## PSA_PROTECTED_STORAGE_IMPLEMENTED must be true for PROTECTED_STORAGE SUITE
-PSA_PROTECTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be true for INTERNAL_TRUSTED_STORAGE SUITE
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED:=1
-
-## PSA_INITIAL_ATTESTATION_IMPLEMENTED must be true for INITIAL_ATTESTATION SUITE
-PSA_INITIAL_ATTESTATION_IMPLEMENTED:=0
-
-# Make variables holding NSPE/SPE source files
-
-## PAL C source files part of NSPE library
-SRC_C_NSPE=
-
-## PAL ASM source files part of NSPE library
-SRC_ASM_NSPE=
-
-## PAL C source files part of SPE library - driver partition
-SRC_C_DRIVER_SP=
-
-## PAL ASM source files part of SPE library - driver partition
-SRC_ASM_DRIVER_SP=
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-# When PSA_IPC_IMPLEMENTED=1, driver functionalities are implemented as RoT-services
-# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
-SRC_C_NSPE += pal_client_api_intf.c
-SRC_C_NSPE += pal_driver_ipc_intf.c
-
-# Driver files will be compiled as part of driver partition
-SRC_C_DRIVER_SP += pal_driver_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-else
-
-# When PSA_IPC_IMPLEMENTED=0, driver files will be compiled as part of NSPE
-SRC_C_NSPE += pal_client_api_empty_intf.c
-SRC_C_NSPE += pal_driver_ns_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED},1)
-SRC_C_NSPE += pal_crypto_intf.c
-else
-SRC_C_NSPE += pal_crypto_empty_intf.c
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_protected_storage_intf.c
-else
-SRC_C_NSPE += pal_protected_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_internal_trusted_storage_intf.c
-else
-SRC_C_NSPE += pal_internal_trusted_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED},1)
-SRC_C_NSPE += pal_attestation_intf.c
-SRC_C_NSPE += pal_attestation_eat.c
-SRC_C_NSPE += pal_attestation_crypto.c
-else
-SRC_C_NSPE += pal_attestation_empty_intf.c
-endif
-
-INCLUDE= -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/drivers/uart/cmsdk \
-         -I$(SOURCE)/platform/drivers/nvmem/ \
-         -I$(SOURCE)/platform/drivers/watchdog/cmsdk \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/inc \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage \
-
-VPATH=$(SOURCE)/platform/targets/$(TARGET)/: \
-      $(SOURCE)/platform/targets/$(TARGET)/spe: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe: \
-      $(SOURCE)/platform/drivers/uart/cmsdk: \
-      $(SOURCE)/platform/drivers/nvmem: \
-      $(SOURCE)/platform/drivers/watchdog/cmsdk: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/common: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/crypto: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/src: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage: \
-
-all: build
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-build: mkdir build_nspe_pal build_spe_pal
-else
-build: mkdir build_nspe_pal
-endif
-
-mkdir:
-	@mkdir -p $(BUILD)/platform/nspe/
-	@mkdir -p $(BUILD)/platform/spe/
-
-# BUILD NSPE PAL
-build_nspe_pal: build_c_nspe build_asm_nspe pal_nspe.a
-
-build_c_nspe: $(SRC_C_NSPE:%.c=$(BUILD)/platform/nspe/%.o)
-build_asm_nspe: $(SRC_ASM_NSPE:%.s=$(BUILD)/platform/nspe/%.o)
-
-$(BUILD)/platform/nspe/%.o : %.c
-	$(CC) $(PAL_CDEFS) $(INCLUDE) -o $@ -c $<
-
-$(BUILD)/platform/nspe/%.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-pal_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/platform/pal_nspe.a $(BUILD)/platform/nspe/*.o
-
-# BUILD SPE PAL
-build_spe_pal: build_driver_sp
-
-build_driver_sp: build_c_driver_sp build_asm_driver_sp
-
-build_c_driver_sp: $(SRC_C_DRIVER_SP:%.c=$(BUILD)/platform/spe/%_driver_sp.o)
-build_asm_driver_sp: $(SRC_ASM_DRIVER_SP:%.s=$(BUILD)/platform/spe/%_driver_sp.o)
-
-# Generated %_driver_sp.o(s) are used in spbuild.mk to create final driver_partition.a
-$(BUILD)/platform/spe/%_driver_sp.o : %.c
-	$(CC) $(INCLUDE) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/platform/spe/%_driver_sp.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-clean:
-	@rm -rf $(BUILD)/platform/nspe/* $(BUILD)/platform/spe/*.a
diff --git a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
index 3ebe1e1..0a63b02 100644
--- a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
+++ b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
@@ -24,10 +24,8 @@
 #include <limits.h>
 #include <stdarg.h>
 
-#ifndef TARGET_CFG_BUILD
 #include "pal_config.h"
 #include "pal_crypto_config.h"
-#endif
 
 /* typedef's */
 typedef uint8_t             bool_t;
@@ -87,7 +85,7 @@
  * Redefining some of the client.h elements for compilation to go through
  * when PSA IPC APIs are not implemented.
  */
-#if (PSA_IPC_IMPLEMENTED == 0)
+#ifndef IPC
 
 #ifndef PSA_VERSION_NONE
 #define PSA_VERSION_NONE            (0)
@@ -113,6 +111,6 @@
     size_t len;
 } psa_outvec;
 
-#endif /* PSA_IPC_IMPLEMENTED */
+#endif /* IPC */
 
 #endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
index e3f70ad..289dc5d 100644
--- a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
@@ -18,66 +18,32 @@
 #ifndef _PAL_CONFIG_H_
 #define _PAL_CONFIG_H_
 
-/*
- * List of macros used by test suite
- */
-#if !defined(PSA_IPC_IMPLEMENTED)
-#define PSA_IPC_IMPLEMENTED 0
-#endif
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
 
-#if !defined(PSA_CRYPTO_IMPLEMENTED)
-#define PSA_CRYPTO_IMPLEMENTED 0
-#endif
+/* Print verbosity = TEST */
+#define VERBOSE 3
 
-#if !defined(PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED)
-#define PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
 
-#if !defined(PSA_PROTECTED_STORAGE_IMPLEMENTED)
-#define PSA_PROTECTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
 
-#if !defined(PSA_INITIAL_ATTESTATION_IMPLEMENTED)
-#define PSA_INITIAL_ATTESTATION_IMPLEMENTED 0
-#endif
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
 
-#if (PSA_IPC_IMPLEMENTED == 0) && \
-    (PSA_CRYPTO_IMPLEMENTED == 0) && \
-    (PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_PROTECTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_INITIAL_ATTESTATION_IMPLEMENTED == 0)
-#error "You must define at least one of these macros to run test suite"
-#endif
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
 
-#if !defined(VERBOSE)
-#define VERBOSE 3 /* Print verbosity = TEST */
-#endif
-
-#if (!defined(VAL_NSPE_BUILD) && !defined(SPE_BUILD))
-#define VAL_NSPE_BUILD 1
-#endif
-
-#if (!defined(NONSECURE_TEST_BUILD) && !defined(SPE_BUILD))
-#define NONSECURE_TEST_BUILD 1
-#endif
-
-#if !defined(TEST_COMBINE_ARCHIVE)
-#define TEST_COMBINE_ARCHIVE 0 /* Combine test archive or binary? */
-#endif
-
-#if !defined(WATCHDOG_AVAILABLE)
-#define WATCHDOG_AVAILABLE 0 /* If zero, skip watchdog programming */
-#endif
-
-#if !defined(SP_HEAP_MEM_SUPP)
-#define SP_HEAP_MEM_SUPP 0 /* Are Dynamic funcs available to secure partition? */
-#endif
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
 
 /*
  * Include of PSA defined Header files
  */
-
-#if PSA_IPC_IMPLEMENTED
+#ifdef IPC
 /* psa/client.h: Contains the PSA Client API elements */
 #include "psa/client.h"
 
@@ -96,22 +62,22 @@
 #include "psa_manifest/pid.h"
 #endif
 
-#if PSA_CRYPTO_IMPLEMENTED
+#ifdef CRYPTO
 /* psa/crypto.h: Contains the PSA Crypto API elements */
 #include "psa/crypto.h"
 #endif
 
-#if PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED
+#ifdef INTERNAL_TRUSTED_STORAGE
 /* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
 #include "psa/internal_trusted_storage.h"
 #endif
 
-#if PSA_PROTECTED_STORAGE_IMPLEMENTED
+#ifdef PROTECTED_STORAGE
 /* psa/protected_storage.h: Contains the PSA PS API elements */
 #include "psa/protected_storage.h"
 #endif
 
-#if PSA_INITIAL_ATTESTATION_IMPLEMENTED
+#ifdef INITIAL_ATTESTATION
 /* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
 #include "psa/initial_attestation.h"
 #endif
diff --git a/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/target.cmake b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/target.cmake
new file mode 100644
index 0000000..5c5c942
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_mbedos_fvp_mps2_m4/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/Makefile b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/Makefile
deleted file mode 100644
index 473879d..0000000
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/Makefile
+++ /dev/null
@@ -1,160 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-# Make variables to select correct instances of PAL files
-
-## PSA_IPC_IMPLEMENTED must be true for IPC SUITE
-PSA_IPC_IMPLEMENTED:=0
-
-## PSA_CRYPTO_IMPLEMENTED must be true for CRYPTO SUITE
-PSA_CRYPTO_IMPLEMENTED:=1
-
-## PSA_PROTECTED_STORAGE_IMPLEMENTED must be true for PROTECTED_STORAGE SUITE
-PSA_PROTECTED_STORAGE_IMPLEMENTED:=1
-
-## PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be true for INTERNAL_TRUSTED_STORAGE SUITE
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INITIAL_ATTESTATION_IMPLEMENTED must be true for INITIAL_ATTESTATION SUITE
-PSA_INITIAL_ATTESTATION_IMPLEMENTED:=1
-
-# Make variables holding NSPE/SPE source files
-
-## PAL C source files part of NSPE library
-SRC_C_NSPE=
-
-## PAL ASM source files part of NSPE library
-SRC_ASM_NSPE=
-
-## PAL C source files part of SPE library - driver partition
-SRC_C_DRIVER_SP=
-
-## PAL ASM source files part of SPE library - driver partition
-SRC_ASM_DRIVER_SP=
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-# When PSA_IPC_IMPLEMENTED=1, driver functionalities are implemented as RoT-services
-# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
-SRC_C_NSPE += pal_client_api_intf.c
-SRC_C_NSPE += pal_driver_ipc_intf.c
-
-# Driver files will be compiled as part of driver partition
-SRC_C_DRIVER_SP += pal_driver_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-else
-
-# When PSA_IPC_IMPLEMENTED=0, driver files will be compiled as part of NSPE
-SRC_C_NSPE += pal_client_api_empty_intf.c
-SRC_C_NSPE += pal_driver_ns_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED},1)
-SRC_C_NSPE += pal_crypto_intf.c
-else
-SRC_C_NSPE += pal_crypto_empty_intf.c
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_protected_storage_intf.c
-else
-SRC_C_NSPE += pal_protected_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_internal_trusted_storage_intf.c
-else
-SRC_C_NSPE += pal_internal_trusted_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED},1)
-SRC_C_NSPE += pal_attestation_intf.c
-SRC_C_NSPE += pal_attestation_eat.c
-SRC_C_NSPE += pal_attestation_crypto.c
-else
-SRC_C_NSPE += pal_attestation_empty_intf.c
-endif
-
-INCLUDE= -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/drivers/uart/cmsdk \
-         -I$(SOURCE)/platform/drivers/nvmem/ \
-         -I$(SOURCE)/platform/drivers/watchdog/cmsdk \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/inc \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage \
-
-VPATH=$(SOURCE)/platform/targets/$(TARGET)/: \
-      $(SOURCE)/platform/targets/$(TARGET)/spe: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe: \
-      $(SOURCE)/platform/drivers/uart/cmsdk: \
-      $(SOURCE)/platform/drivers/nvmem: \
-      $(SOURCE)/platform/drivers/watchdog/cmsdk: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/common: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/crypto: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/src: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage: \
-
-all: build
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-build: mkdir build_nspe_pal build_spe_pal
-else
-build: mkdir build_nspe_pal
-endif
-
-mkdir:
-	@mkdir -p $(BUILD)/platform/nspe/
-	@mkdir -p $(BUILD)/platform/spe/
-
-# BUILD NSPE PAL
-build_nspe_pal: build_c_nspe build_asm_nspe pal_nspe.a
-
-build_c_nspe: $(SRC_C_NSPE:%.c=$(BUILD)/platform/nspe/%.o)
-build_asm_nspe: $(SRC_ASM_NSPE:%.s=$(BUILD)/platform/nspe/%.o)
-
-$(BUILD)/platform/nspe/%.o : %.c
-	$(CC) $(PAL_CDEFS) $(INCLUDE) -o $@ -c $<
-
-$(BUILD)/platform/nspe/%.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-pal_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/platform/pal_nspe.a $(BUILD)/platform/nspe/*.o
-
-# BUILD SPE PAL
-build_spe_pal: build_driver_sp
-
-build_driver_sp: build_c_driver_sp build_asm_driver_sp
-
-build_c_driver_sp: $(SRC_C_DRIVER_SP:%.c=$(BUILD)/platform/spe/%_driver_sp.o)
-build_asm_driver_sp: $(SRC_ASM_DRIVER_SP:%.s=$(BUILD)/platform/spe/%_driver_sp.o)
-
-# Generated %_driver_sp.o(s) are used in spbuild.mk to create final driver_partition.a
-$(BUILD)/platform/spe/%_driver_sp.o : %.c
-	$(CC) $(INCLUDE) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/platform/spe/%_driver_sp.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-clean:
-	@rm -rf $(BUILD)/platform/nspe/* $(BUILD)/platform/spe/*.a
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_common.h
index 3ebe1e1..0a63b02 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_common.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_common.h
@@ -24,10 +24,8 @@
 #include <limits.h>
 #include <stdarg.h>
 
-#ifndef TARGET_CFG_BUILD
 #include "pal_config.h"
 #include "pal_crypto_config.h"
-#endif
 
 /* typedef's */
 typedef uint8_t             bool_t;
@@ -87,7 +85,7 @@
  * Redefining some of the client.h elements for compilation to go through
  * when PSA IPC APIs are not implemented.
  */
-#if (PSA_IPC_IMPLEMENTED == 0)
+#ifndef IPC
 
 #ifndef PSA_VERSION_NONE
 #define PSA_VERSION_NONE            (0)
@@ -113,6 +111,6 @@
     size_t len;
 } psa_outvec;
 
-#endif /* PSA_IPC_IMPLEMENTED */
+#endif /* IPC */
 
 #endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_config.h
index e3f70ad..289dc5d 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/common/pal_config.h
@@ -18,66 +18,32 @@
 #ifndef _PAL_CONFIG_H_
 #define _PAL_CONFIG_H_
 
-/*
- * List of macros used by test suite
- */
-#if !defined(PSA_IPC_IMPLEMENTED)
-#define PSA_IPC_IMPLEMENTED 0
-#endif
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
 
-#if !defined(PSA_CRYPTO_IMPLEMENTED)
-#define PSA_CRYPTO_IMPLEMENTED 0
-#endif
+/* Print verbosity = TEST */
+#define VERBOSE 3
 
-#if !defined(PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED)
-#define PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
 
-#if !defined(PSA_PROTECTED_STORAGE_IMPLEMENTED)
-#define PSA_PROTECTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
 
-#if !defined(PSA_INITIAL_ATTESTATION_IMPLEMENTED)
-#define PSA_INITIAL_ATTESTATION_IMPLEMENTED 0
-#endif
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
 
-#if (PSA_IPC_IMPLEMENTED == 0) && \
-    (PSA_CRYPTO_IMPLEMENTED == 0) && \
-    (PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_PROTECTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_INITIAL_ATTESTATION_IMPLEMENTED == 0)
-#error "You must define at least one of these macros to run test suite"
-#endif
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
 
-#if !defined(VERBOSE)
-#define VERBOSE 3 /* Print verbosity = TEST */
-#endif
-
-#if (!defined(VAL_NSPE_BUILD) && !defined(SPE_BUILD))
-#define VAL_NSPE_BUILD 1
-#endif
-
-#if (!defined(NONSECURE_TEST_BUILD) && !defined(SPE_BUILD))
-#define NONSECURE_TEST_BUILD 1
-#endif
-
-#if !defined(TEST_COMBINE_ARCHIVE)
-#define TEST_COMBINE_ARCHIVE 0 /* Combine test archive or binary? */
-#endif
-
-#if !defined(WATCHDOG_AVAILABLE)
-#define WATCHDOG_AVAILABLE 0 /* If zero, skip watchdog programming */
-#endif
-
-#if !defined(SP_HEAP_MEM_SUPP)
-#define SP_HEAP_MEM_SUPP 0 /* Are Dynamic funcs available to secure partition? */
-#endif
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
 
 /*
  * Include of PSA defined Header files
  */
-
-#if PSA_IPC_IMPLEMENTED
+#ifdef IPC
 /* psa/client.h: Contains the PSA Client API elements */
 #include "psa/client.h"
 
@@ -96,22 +62,22 @@
 #include "psa_manifest/pid.h"
 #endif
 
-#if PSA_CRYPTO_IMPLEMENTED
+#ifdef CRYPTO
 /* psa/crypto.h: Contains the PSA Crypto API elements */
 #include "psa/crypto.h"
 #endif
 
-#if PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED
+#ifdef INTERNAL_TRUSTED_STORAGE
 /* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
 #include "psa/internal_trusted_storage.h"
 #endif
 
-#if PSA_PROTECTED_STORAGE_IMPLEMENTED
+#ifdef PROTECTED_STORAGE
 /* psa/protected_storage.h: Contains the PSA PS API elements */
 #include "psa/protected_storage.h"
 #endif
 
-#if PSA_INITIAL_ATTESTATION_IMPLEMENTED
+#ifdef INITIAL_ATTESTATION
 /* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
 #include "psa/initial_attestation.h"
 #endif
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/target.cmake b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/target.cmake
new file mode 100644
index 0000000..5c5c942
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/common/driver_partition_psa.json b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/common/driver_partition_psa.json
new file mode 100644
index 0000000..e3cec92
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/common/driver_partition_psa.json
@@ -0,0 +1,75 @@
+{
+  "psa_framework_version": 1.0,
+  "name": "DRIVER_PARTITION",
+  "type": "PSA-ROT",
+  "priority": "NORMAL",
+  "description": "Implements device services such print, flash read/write,. etc.",
+  "entry_point": "driver_main",
+  "stack_size": "0x400",
+  "services": [{
+      "name": "DRIVER_UART_SID",
+      "sid": "0x0000FC01",
+      "signal": "DRIVER_UART_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "DRIVER_WATCHDOG_SID",
+      "sid": "0x0000FC02",
+      "signal": "DRIVER_WATCHDOG_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "DRIVER_NVMEM_SID",
+      "sid": "0x0000FC03",
+      "signal": "DRIVER_NVMEM_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "DRIVER_TEST_SID",
+      "sid": "0x0000FC04",
+      "signal": "DRIVER_TEST_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    }
+  ],
+  "mmio_regions" : [
+    {
+      "name": "UART_REGION",
+      "base": "0x40004000",
+      "size": "0x1000",
+      "permission": "READ-WRITE"
+    },
+    {
+      "name": "WATCHDOG_REGION",
+      "base": "0x40008000",
+      "size": "0x1000",
+      "permission": "READ-WRITE"
+    },
+    {
+      "name": "NVMEM_REGION",
+      "base": "0x2002F000",
+      "size": "0x400",
+      "permission": "READ-WRITE"
+    },
+    {
+      "name": "DRIVER_PARTITION_MMIO",
+      "base": "0x200AF040",
+      "size": "0x20",
+      "permission": "READ-WRITE"
+    }
+  ],
+  "irqs": [
+    {
+       "description": "Using UART TX interrupt to test psa_wait and psa_eoi for irq_signal",
+       "signal": "DRIVER_UART_INTR_SIG",
+       "line_num": 37
+    }
+  ]
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/client_partition_psa.json b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/client_partition_psa.json
new file mode 100644
index 0000000..b93377b
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/client_partition_psa.json
@@ -0,0 +1,37 @@
+{
+  "psa_framework_version": 1.0,
+  "name": "CLIENT_PARTITION",
+  "type": "APPLICATION-ROT",
+  "priority": "NORMAL",
+  "description": "Client partition executing client test func from SPE",
+  "entry_point": "client_main",
+  "stack_size": "0x400",
+  "services": [{
+      "name": "CLIENT_TEST_DISPATCHER_SID",
+      "sid": "0x0000FA01",
+      "signal": "CLIENT_TEST_DISPATCHER_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    }
+  ],
+  "dependencies": [
+    "DRIVER_UART_SID",
+    "DRIVER_NVMEM_SID",
+    "DRIVER_TEST_SID",
+    "SERVER_TEST_DISPATCHER_SID",
+    "SERVER_UNSPECIFED_MINOR_V_SID",
+    "SERVER_STRICT_MINOR_VERSION_SID",
+    "SERVER_RELAX_MINOR_VERSION_SID",
+    "SERVER_SECURE_CONNECT_ONLY_SID",
+    "SERVER_CONNECTION_DROP_SID"
+  ],
+  "mmio_regions" : [
+    {
+      "name": "CLIENT_PARTITION_MMIO",
+      "base": "0x200AF000",
+      "size": "0x20",
+      "permission": "READ-WRITE"
+    }
+   ]
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/server_partition_psa.json b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/server_partition_psa.json
new file mode 100644
index 0000000..146b8fb
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/manifests/ipc/server_partition_psa.json
@@ -0,0 +1,69 @@
+{
+  "psa_framework_version": 1.0,
+  "name": "SERVER_PARTITION",
+  "type": "APPLICATION-ROT",
+  "priority": "NORMAL",
+  "description": "Server partition executing server test func",
+  "entry_point": "server_main",
+  "stack_size": "0x400",
+  "heap_size": "0x100",
+  "services": [{
+      "name": "SERVER_TEST_DISPATCHER_SID",
+      "sid": "0x0000FB01",
+      "signal": "SERVER_TEST_DISPATCHER_SIG",
+      "non_secure_clients": true,
+      "minor_version": 1,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "SERVER_SECURE_CONNECT_ONLY_SID",
+      "sid": "0x0000FB02",
+      "signal": "SERVER_SECURE_CONNECT_ONLY_SIG",
+      "non_secure_clients": false,
+      "minor_version": 2,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "SERVER_STRICT_MINOR_VERSION_SID",
+      "sid": "0x0000FB03",
+      "signal": "SERVER_STRICT_MINOR_VERSION_SIG",
+      "non_secure_clients": true,
+      "minor_version": 2,
+      "minor_policy": "STRICT"
+    },
+    {
+      "name": "SERVER_UNSPECIFED_MINOR_V_SID",
+      "sid": "0x0000FB04",
+      "signal": "SERVER_UNSPECIFED_MINOR_V_SIG",
+      "non_secure_clients": true
+    },
+    {
+      "name": "SERVER_RELAX_MINOR_VERSION_SID",
+      "sid": "0x0000FB05",
+      "signal": "SERVER_RELAX_MINOR_VERSION_SIG",
+      "non_secure_clients": true,
+      "minor_version": 2,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "SERVER_UNEXTERN_SID",
+      "sid": "0x0000FB06",
+      "signal": "SERVER_UNEXTERN_SIG",
+      "non_secure_clients": true,
+      "minor_version": 2,
+      "minor_policy": "RELAXED"
+    },
+    {
+      "name": "SERVER_CONNECTION_DROP_SID",
+      "sid": "0x0000FB07",
+      "signal": "SERVER_CONNECTION_DROP_SIG",
+      "non_secure_clients": true,
+      "minor_version": 2,
+      "minor_policy": "RELAXED"
+    }
+  ],
+  "dependencies": [
+    "DRIVER_UART_SID",
+    "DRIVER_NVMEM_SID"
+  ]
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_empty_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_empty_intf.c
new file mode 100644
index 0000000..578b4ce
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_empty_intf.c
@@ -0,0 +1,93 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_common.h"
+#include "pal_client_api_intf.h"
+
+/**
+ * @brief - Retrieve the version of the PSA Framework API that is implemented.
+ * This is a wrapper API for psa_framework_version API.
+ * @param    - void
+ * @return   - The PSA Framework API version.
+ */
+
+uint32_t pal_ipc_framework_version(void)
+{
+    return 0;
+}
+
+/**
+ * @brief - Retrieve the minor version of a Root of Trust Service by its SID.
+ * This is a wrapper API for the psa_version API.
+ * @param - sid The Root of Trust Service ID
+ * @return - Minor version of Root of Trust Service or PSA_VERSION_NONE if Root of Trust
+ *           Service not present on the system.
+ */
+
+uint32_t pal_ipc_version(uint32_t sid)
+{
+    return PSA_VERSION_NONE;
+}
+
+/**
+ * @brief   - Connect to given sid.
+ *            This is a wrapper API for the psa_connect API.
+ * @param   - sid : RoT service id
+ * @param   - minor_version : minor_version of RoT service
+ * @return  - psa_handle_t : return connection handle
+ */
+
+psa_handle_t pal_ipc_connect(uint32_t sid, uint32_t minor_version)
+{
+    return PSA_NULL_HANDLE;
+}
+
+/**
+ * @brief Call a connected Root of Trust Service.
+ * This is a wrapper API for the psa_call API.
+ * The caller must provide an array of ::psa_invec_t structures as the input payload.
+ *
+ * @param  -handle   Handle for the connection.
+ * @param  -in_vec   Array of psa_invec structures.
+ * @param  -in_len   Number of psa_invec structures in in_vec.
+ * @param  -out_vec  Array of psa_outvec structures for optional Root of Trust Service response.
+ * @param  -out_len  Number of psa_outvec structures in out_vec.
+ * @return -psa_status_t
+ */
+
+psa_status_t pal_ipc_call(psa_handle_t handle,
+                         const psa_invec *in_vec,
+                         size_t in_len,
+                         psa_outvec *out_vec,
+                         size_t out_len)
+{
+    return (PSA_SUCCESS - 1);
+}
+
+/**
+ * @brief Close a connection to a Root of Trust Service.
+ * This is a wrapper API for the psa_close API.
+ * Sends the PSA_IPC_DISCONNECT message to the Root of Trust Service so it can clean up resources.
+ *
+ * @param handle Handle for the connection.
+ * @return void
+ */
+
+void pal_ipc_close(psa_handle_t handle)
+{
+    return;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.c
new file mode 100644
index 0000000..20ddd11
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.c
@@ -0,0 +1,97 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_common.h"
+#include "pal_client_api_intf.h"
+
+/**
+ * @brief   - Retrieve the version of the PSA Framework API that is implemented.
+ * This is a wrapper API for psa_framework_version API.
+ * @param    - void
+ * @return   - The PSA Framework API version.
+ *             Note - Return PAL_STATUS_ERROR if PSA IPC is not implemented.
+ */
+
+uint32_t pal_ipc_framework_version(void)
+{
+    return (psa_framework_version());
+}
+
+/**
+ * @brief   - Retrieve the minor version of a Root of Trust Service by its SID.
+ * This is a wrapper API for the psa_version API.
+ * @param - sid The Root of Trust Service ID
+ * @return - Minor version of Root of Trust Service or PSA_VERSION_NONE if Root of Trust
+ *           Service not present on the system.
+ *           Note - Return PAL_STATUS_ERROR if PSA IPC is not implemented.
+ */
+
+uint32_t pal_ipc_version(uint32_t sid)
+{
+    return (psa_version(sid));
+}
+
+/**
+ * @brief   - Connect to given sid.
+ *            This is a wrapper API for the psa_connect API.
+ * @param   - sid : RoT service id
+ * @param   - minor_version : minor_version of RoT service
+ * @return  - psa_handle_t : return connection handle
+ *            Note - Return PSA_NULL_HANDLE if PSA IPC is not implemented.
+ */
+
+psa_handle_t pal_ipc_connect(uint32_t sid, uint32_t minor_version)
+{
+    return (psa_connect(sid, minor_version));
+}
+
+/**
+ * @brief Call a connected Root of Trust Service.
+ * This is a wrapper API for the psa_call API.
+ * The caller must provide an array of ::psa_invec_t structures as the input payload.
+ *
+ * @param  -handle   Handle for the connection.
+ * @param  -in_vec   Array of psa_invec structures.
+ * @param  -in_len   Number of psa_invec structures in in_vec.
+ * @param  -out_vec  Array of psa_outvec structures for optional Root of Trust Service response.
+ * @param  -out_len  Number of psa_outvec structures in out_vec.
+ * @return -psa_status_t
+ *          Note - Return -1 if PSA IPC is not implemented.
+ */
+
+psa_status_t pal_ipc_call(psa_handle_t handle,
+                         const psa_invec *in_vec,
+                         size_t in_len,
+                         psa_outvec *out_vec,
+                         size_t out_len)
+{
+    return (psa_call(handle, in_vec, in_len, out_vec, out_len));
+}
+
+/**
+ * @brief Close a connection to a Root of Trust Service.
+ * This is a wrapper API for the psa_close API.
+ * Sends the PSA_IPC_DISCONNECT message to the Root of Trust Service so it can clean up resources.
+ *
+ * @param  - handle Handle for the connection.
+ * @return - void
+ */
+
+void pal_ipc_close(psa_handle_t handle)
+{
+    psa_close(handle);
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.h
new file mode 100644
index 0000000..3f5741e
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_client_api_intf.h
@@ -0,0 +1,32 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_CLIENT_API_H_
+#define _PAL_CLIENT_API_H_
+
+#include "pal_common.h"
+
+uint32_t pal_ipc_framework_version(void);
+uint32_t pal_ipc_version(uint32_t sid);
+psa_handle_t pal_ipc_connect(uint32_t sid, uint32_t minor_version);
+psa_status_t pal_ipc_call(psa_handle_t handle,
+                      const psa_invec *in_vec,
+                      size_t in_len,
+                      psa_outvec *out_vec,
+                      size_t out_len);
+void pal_ipc_close(psa_handle_t handle);
+#endif /* _PAL_CLIENT_API_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_common.h
new file mode 100644
index 0000000..0a63b02
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_common.h
@@ -0,0 +1,116 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_COMMON_H_
+#define _PAL_COMMON_H_
+
+#include <string.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <stdarg.h>
+
+#include "pal_config.h"
+#include "pal_crypto_config.h"
+
+/* typedef's */
+typedef uint8_t             bool_t;
+typedef uint32_t            addr_t;
+typedef uint32_t            test_id_t;
+typedef uint32_t            block_id_t;
+typedef char                char8_t;
+typedef uint32_t            cfg_id_t;
+
+#define PAL_STATUS_UNSUPPORTED_FUNC      0xFF
+
+typedef enum
+{
+    PAL_STATUS_SUCCESS = 0x0,
+    PAL_STATUS_ERROR   = 0x80
+} pal_status_t;
+
+typedef enum {
+    NVMEM_READ             = 0x1,
+    NVMEM_WRITE            = 0x2,
+} nvmem_fn_type_t;
+
+typedef struct {
+    nvmem_fn_type_t nvmem_fn_type;
+    addr_t base;
+    uint32_t offset;
+    int size;
+} nvmem_param_t;
+
+typedef enum {
+    WD_INIT_SEQ         = 0x1,
+    WD_ENABLE_SEQ       = 0x2,
+    WD_DISABLE_SEQ      = 0x3,
+    WD_STATUS_SEQ       = 0x4,
+} wd_fn_type_t;
+
+typedef enum {
+    WD_LOW_TIMEOUT      = 0x1,
+    WD_MEDIUM_TIMEOUT   = 0x2,
+    WD_HIGH_TIMEOUT     = 0x3,
+    WD_CRYPTO_TIMEOUT   = 0x4,
+} wd_timeout_type_t;
+
+typedef struct {
+    wd_fn_type_t wd_fn_type;
+    addr_t       wd_base_addr;
+    uint32_t     wd_time_us;
+    uint32_t     wd_timer_tick_us;
+} wd_param_t;
+
+typedef enum {
+    UART_INIT             = 0x1,
+    UART_PRINT            = 0x2,
+} uart_fn_type_t;
+
+/*
+ * Redefining some of the client.h elements for compilation to go through
+ * when PSA IPC APIs are not implemented.
+ */
+#ifndef IPC
+
+#ifndef PSA_VERSION_NONE
+#define PSA_VERSION_NONE            (0)
+#endif
+
+#ifndef PSA_SUCCESS
+#define PSA_SUCCESS                 (0)
+typedef int32_t psa_status_t;
+#endif
+typedef int32_t psa_handle_t;
+
+#ifndef PSA_NULL_HANDLE
+#define PSA_NULL_HANDLE             ((psa_handle_t)0)
+#endif
+
+typedef struct psa_invec {
+    const void *base;
+    size_t len;
+} psa_invec;
+
+typedef struct psa_outvec {
+    void *base;
+    size_t len;
+} psa_outvec;
+
+#endif /* IPC */
+
+#endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_config.h
new file mode 100644
index 0000000..289dc5d
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_config.h
@@ -0,0 +1,85 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_CONFIG_H_
+#define _PAL_CONFIG_H_
+
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
+
+/* Print verbosity = TEST */
+#define VERBOSE 3
+
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
+
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
+
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
+
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
+
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
+
+/*
+ * Include of PSA defined Header files
+ */
+#ifdef IPC
+/* psa/client.h: Contains the PSA Client API elements */
+#include "psa/client.h"
+
+/*
+ * psa_manifest/sid.h:  Macro definitions derived from manifest files that map from RoT Service
+ * names to Service IDs (SIDs). Partition manifest parse build tool must provide the implementation
+ * of this file.
+*/
+#include "psa_manifest/sid.h"
+
+/*
+ * psa_manifest/pid.h: Secure Partition IDs
+ * Macro definitions that map from Secure Partition names to Secure Partition IDs.
+ * Partition manifest parse build tool must provide the implementation of this file.
+*/
+#include "psa_manifest/pid.h"
+#endif
+
+#ifdef CRYPTO
+/* psa/crypto.h: Contains the PSA Crypto API elements */
+#include "psa/crypto.h"
+#endif
+
+#ifdef INTERNAL_TRUSTED_STORAGE
+/* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
+#include "psa/internal_trusted_storage.h"
+#endif
+
+#ifdef PROTECTED_STORAGE
+/* psa/protected_storage.h: Contains the PSA PS API elements */
+#include "psa/protected_storage.h"
+#endif
+
+#ifdef INITIAL_ATTESTATION
+/* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
+#include "psa/initial_attestation.h"
+#endif
+
+#endif /* _PAL_CONFIG_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ipc_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ipc_intf.c
new file mode 100644
index 0000000..f8f773f
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ipc_intf.c
@@ -0,0 +1,305 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_common.h"
+#include "pal_client_api_intf.h"
+
+/**
+    @brief    - This function initializes the UART
+    @param    - uart base addr
+    @return   - SUCCESS/FAILURE
+**/
+int pal_uart_init_ns(uint32_t uart_base_addr)
+{
+    psa_handle_t            print_handle = 0;
+    psa_status_t            status_of_call = PSA_SUCCESS;
+    uart_fn_type_t          uart_fn = UART_INIT;
+
+    psa_invec data[3] = {{&uart_fn, sizeof(uart_fn)},
+                         {&uart_base_addr, sizeof(uart_base_addr)},
+                         {NULL, 0}};
+
+    print_handle = pal_ipc_connect(DRIVER_UART_SID, 0);
+    if (print_handle < 0)
+    {
+        return(PAL_STATUS_ERROR);
+    }
+
+    status_of_call = pal_ipc_call(print_handle, data, 3, NULL, 0);
+    if (status_of_call != PSA_SUCCESS)
+    {
+        return(PAL_STATUS_ERROR);
+    }
+
+    pal_ipc_close(print_handle);
+    return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief    - This function parses the input string and writes bytes into UART TX FIFO
+    @param    - str      : Input String
+              - data     : Value for format specifier
+    @return   - SUCCESS/FAILURE
+**/
+
+int pal_print_ns(char *str, int32_t data)
+{
+    int             string_len = 0;
+    char            *p = str;
+    psa_handle_t    print_handle = 0;
+    psa_status_t    status_of_call = PSA_SUCCESS;
+    pal_status_t    status = PAL_STATUS_SUCCESS;
+    uart_fn_type_t  uart_fn = UART_PRINT;
+
+    while (*p != '\0')
+    {
+        string_len++;
+        p++;
+    }
+
+    psa_invec data1[3] = {{&uart_fn, sizeof(uart_fn)},
+                          {str, string_len+1},
+                          {&data, sizeof(data)}};
+    print_handle = pal_ipc_connect(DRIVER_UART_SID, 0);
+
+    if (print_handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(print_handle, data1, 3, NULL, 0);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            status = PAL_STATUS_ERROR;
+        }
+    }
+    pal_ipc_close(print_handle);
+    return status;
+}
+
+/**
+    @brief           - Initializes an hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+                     - time_us         : Time in micro seconds
+                     - timer_tick_us   : Number of ticks per micro second
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_init_ns(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us)
+{
+    wd_param_t              wd_param;
+    psa_handle_t            handle = 0;
+    psa_status_t            status_of_call = PSA_SUCCESS;
+
+    wd_param.wd_fn_type = WD_INIT_SEQ;
+    wd_param.wd_base_addr = base_addr;
+    wd_param.wd_time_us = time_us;
+    wd_param.wd_timer_tick_us = timer_tick_us;
+    psa_invec invec[1] = {{&wd_param, sizeof(wd_param)}};
+
+    handle = pal_ipc_connect(DRIVER_WATCHDOG_SID, 0);
+    if (handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(handle, invec, 1, NULL, 0);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            pal_ipc_close(handle);
+            return PAL_STATUS_ERROR;
+        }
+    }
+   pal_ipc_close(handle);
+   return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief           - Enables a hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_enable_ns(addr_t base_addr)
+{
+    wd_param_t              wd_param;
+    psa_handle_t            handle = 0;
+    psa_status_t            status_of_call = PSA_SUCCESS;
+
+    wd_param.wd_fn_type = WD_ENABLE_SEQ;
+    wd_param.wd_base_addr = base_addr;
+    wd_param.wd_time_us = 0;
+    wd_param.wd_timer_tick_us = 0;
+    psa_invec invec[1] = {{&wd_param, sizeof(wd_param)}};
+
+    handle = pal_ipc_connect(DRIVER_WATCHDOG_SID, 0);
+    if (handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(handle, invec, 1, NULL, 0);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            pal_ipc_close(handle);
+            return PAL_STATUS_ERROR;
+        }
+    }
+   pal_ipc_close(handle);
+   return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief           - Disables a hardware watchdog timer
+    @param           - base_addr  : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_disable_ns(addr_t base_addr)
+{
+    wd_param_t              wd_param;
+    psa_handle_t            handle = 0;
+    psa_status_t            status_of_call = PSA_SUCCESS;
+
+    wd_param.wd_fn_type = WD_DISABLE_SEQ;
+    wd_param.wd_base_addr = base_addr;
+    wd_param.wd_time_us = 0;
+    wd_param.wd_timer_tick_us = 0;
+    psa_invec invec[1] = {{&wd_param, sizeof(wd_param)}};
+
+    handle = pal_ipc_connect(DRIVER_WATCHDOG_SID, 0);
+    if (handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(handle, invec, 1, NULL, 0);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            pal_ipc_close(handle);
+            return PAL_STATUS_ERROR;
+        }
+    }
+   pal_ipc_close(handle);
+   return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief    - Reads from given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - SUCCESS/FAILURE
+**/
+int pal_nvmem_read_ns(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    nvmem_param_t   nvmem_param;
+    psa_handle_t    handle = 0;
+    psa_status_t    status_of_call = PSA_SUCCESS;
+
+    nvmem_param.nvmem_fn_type = NVMEM_READ;
+    nvmem_param.base = base;
+    nvmem_param.offset = offset;
+    nvmem_param.size = size;
+    psa_invec invec[1] = {{&nvmem_param, sizeof(nvmem_param)}};
+    psa_outvec outvec[1] = {{buffer, size}};
+
+    handle = pal_ipc_connect(DRIVER_NVMEM_SID, 0);
+    if (handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(handle, invec, 1, outvec, 1);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            pal_ipc_close(handle);
+            return PAL_STATUS_ERROR;
+        }
+    }
+   psa_close(handle);
+   return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief    - Writes into given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - SUCCESS/FAILURE
+**/
+int pal_nvmem_write_ns(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    nvmem_param_t   nvmem_param;
+    psa_handle_t    handle = 0;
+    psa_status_t    status_of_call = PSA_SUCCESS;
+
+    nvmem_param.nvmem_fn_type = NVMEM_WRITE;
+    nvmem_param.base = base;
+    nvmem_param.offset = offset;
+    nvmem_param.size = size;
+    psa_invec invec[2] = {{&nvmem_param, sizeof(nvmem_param)}, {buffer, size}};
+
+    handle = pal_ipc_connect(DRIVER_NVMEM_SID, 0);
+    if (handle < 0)
+    {
+        return PAL_STATUS_ERROR;
+    }
+    else
+    {
+        status_of_call = pal_ipc_call(handle, invec, 2, NULL, 0);
+        if (status_of_call != PSA_SUCCESS)
+        {
+            pal_ipc_close(handle);
+            return PAL_STATUS_ERROR;
+        }
+    }
+   pal_ipc_close(handle);
+   return PAL_STATUS_SUCCESS;
+}
+
+/**
+ *   @brief    - This function will read peripherals using SPI commands
+ *   @param    - addr : address of the peripheral
+ *               data : read buffer
+ *               len  : length of the read buffer in bytes
+ *   @return   - error status
+**/
+int pal_spi_read(addr_t addr, uint8_t *data, uint32_t len)
+{
+    return 0xFF;
+}
+
+/**
+ *   @brief    - Terminates the simulation at the end of all tests completion.
+ *               By default, it put cpus into power down mode.
+ *   @param    - void
+ *   @return   - void
+**/
+void pal_terminate_simulation(void)
+{
+    /* Add logic to terminate the simluation */
+
+    while(1)
+    {
+        asm volatile("WFI");
+    }
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ns_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ns_intf.c
new file mode 100644
index 0000000..2af6fcc
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/common/pal_driver_ns_intf.c
@@ -0,0 +1,145 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_common.h"
+#include "pal_uart.h"
+#include "pal_nvmem.h"
+#include "pal_wd_cmsdk.h"
+
+/**
+    @brief    - This function initializes the UART
+    @param    - uart base addr
+    @return   - SUCCESS/FAILURE
+**/
+int pal_uart_init_ns(uint32_t uart_base_addr)
+{
+    pal_uart_cmsdk_init(uart_base_addr);
+    return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief    - This function parses the input string and writes bytes into UART TX FIFO
+    @param    - str      : Input String
+              - data     : Value for format specifier
+    @return   - SUCCESS/FAILURE
+**/
+
+int pal_print_ns(char *str, int32_t data)
+{
+    pal_cmsdk_print(str, data);
+    return PAL_STATUS_SUCCESS;
+}
+
+/**
+    @brief           - Initializes an hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+                     - time_us         : Time in micro seconds
+                     - timer_tick_us   : Number of ticks per micro second
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_init_ns(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us)
+{
+    return(pal_wd_cmsdk_init(base_addr,time_us, timer_tick_us));
+}
+
+/**
+    @brief           - Enables a hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_enable_ns(addr_t base_addr)
+{
+    return(pal_wd_cmsdk_enable(base_addr));
+}
+
+/**
+    @brief           - Disables a hardware watchdog timer
+    @param           - base_addr  : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_disable_ns(addr_t base_addr)
+{
+    return (pal_wd_cmsdk_disable(base_addr));
+}
+
+/**
+    @brief    - Reads from given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - SUCCESS/FAILURE
+**/
+int pal_nvmem_read_ns(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    if (nvmem_read(base, offset, buffer, size))
+    {
+        return PAL_STATUS_SUCCESS;
+    }
+    else
+    {
+        return PAL_STATUS_ERROR;
+    }
+}
+
+/**
+    @brief    - Writes into given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - SUCCESS/FAILURE
+**/
+int pal_nvmem_write_ns(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    if (nvmem_write(base, offset, buffer, size))
+    {
+        return PAL_STATUS_SUCCESS;
+    }
+    else
+    {
+        return PAL_STATUS_ERROR;
+    }
+}
+
+/**
+ *   @brief    - This function will read peripherals using SPI commands
+ *   @param    - addr : address of the peripheral
+ *               data : read buffer
+ *               len  : length of the read buffer in bytes
+ *   @return   - error status
+**/
+int pal_spi_read(addr_t addr, uint8_t *data, uint32_t len)
+{
+    return 0xFF;
+}
+
+/**
+ *   @brief    - Terminates the simulation at the end of all tests completion.
+ *               By default, it put cpus into power down mode.
+ *   @param    - void
+ *   @return   - void
+**/
+void pal_terminate_simulation(void)
+{
+    /* Add logic to terminate the simluation */
+
+    while(1)
+    {
+        asm volatile("WFI");
+    }
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h
new file mode 100644
index 0000000..ab11fd1
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h
@@ -0,0 +1,323 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+/*
+ * \file pal_crypto_config.h
+ *
+ * \brief Configuration options for crypto tests (set of defines)
+ *
+ *  This set of compile-time options may be used to enable
+ *  or disable features selectively for crypto test suite
+ */
+
+#ifndef _PAL_CRYPTO_CONFIG_H_
+#define _PAL_CRYPTO_CONFIG_H_
+/**
+ * \def ARCH_TEST_RSA
+ *
+ * Enable the RSA public-key cryptosystem.
+ * By default all supported keys are enabled.
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_RSA
+#define ARCH_TEST_RSA_1024
+#define ARCH_TEST_RSA_2048
+#define ARCH_TEST_RSA_3072
+
+/**
+ * \def  ARCH_TEST_ECC
+ * \def  ARCH_TEST_ECC_CURVE_SECPXXXR1
+ *
+ * Enable the elliptic curve
+ * Enable specific curves within the Elliptic Curve
+ * module.  By default all supported curves are enabled.
+ *
+ * Requires: ARCH_TEST_ECC
+ * Comment macros to disable the curve
+ */
+#define ARCH_TEST_ECC
+#define ARCH_TEST_ECC_CURVE_SECP192R1
+#define ARCH_TEST_ECC_CURVE_SECP224R1
+#define ARCH_TEST_ECC_CURVE_SECP256R1
+#define ARCH_TEST_ECC_CURVE_SECP384R1
+
+/**
+ * \def ARCH_TEST_AES
+ *
+ * Enable the AES block cipher.
+ * By default all supported keys are enabled.
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_AES
+#define ARCH_TEST_AES_128
+#define ARCH_TEST_AES_192
+#define ARCH_TEST_AES_256
+#define ARCH_TEST_AES_512
+
+/**
+ * \def  ARCH_TEST_DES
+ *
+ * Enable the DES block cipher.
+ * By default all supported keys are enabled.
+ *
+ * Comment macros to disable the types
+ */
+//#define ARCH_TEST_DES
+//#define ARCH_TEST_DES_1KEY
+//#define ARCH_TEST_DES_2KEY
+//#define ARCH_TEST_DES_3KEY
+
+/**
+ * \def  ARCH_TEST_RAW
+ *
+ * A "key" of this type cannot be used for any cryptographic operation.
+ * Applications may use this type to store arbitrary data in the keystore.
+ */
+#define ARCH_TEST_RAW
+
+/**
+ * \def ARCH_TEST_CIPER
+ *
+ * Enable the generic cipher layer.
+ */
+
+#define ARCH_TEST_CIPER
+
+/**
+ * \def ARCH_TEST_ARC4
+ *
+ * Enable the ARC4 key type.
+ */
+//#define ARCH_TEST_ARC4
+
+/**
+ * \def ARCH_TEST_CIPER_MODE_CTR
+ *
+ * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
+ *
+ * Requires: ARCH_TEST_CIPER
+ */
+#define ARCH_TEST_CIPER_MODE_CTR
+
+/**
+ * \def ARCH_TEST_CIPER_MODE_CFB
+ *
+ * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
+ *
+ * Requires: ARCH_TEST_CIPER
+ */
+#define ARCH_TEST_CIPER_MODE_CFB
+
+/**
+ * \def ARCH_TEST_CIPER_MODE_CBC
+ *
+ * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers.
+ *
+ * Requires: ARCH_TEST_CIPER
+ */
+#define ARCH_TEST_CIPER_MODE_CBC
+
+/**
+ * \def ARCH_TEST_CTR_AES
+ *
+ * Requires: ARCH_TEST_CIPER, ARCH_TEST_AES, ARCH_TEST_CIPER_MODE_CTR
+ */
+#define ARCH_TEST_CTR_AES
+
+/**
+ * \def ARCH_TEST_CBC_AES
+ *
+ * Requires: ARCH_TEST_CIPER, ARCH_TEST_AES, ARCH_TEST_CIPER_MODE_CBC
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_CBC_AES
+#define ARCH_TEST_CBC_AES_NO_PADDING
+
+/**
+ * \def ARCH_TEST_CBC_NO_PADDING
+ *
+ * Requires: ARCH_TEST_CIPER, ARCH_TEST_CIPER_MODE_CBC
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_CBC_NO_PADDING
+
+/**
+ * \def ARCH_TEST_CFB_AES
+ *
+ * Requires: ARCH_TEST_CIPER, ARCH_TEST_AES, ARCH_TEST_CIPER_MODE_CFB
+ */
+#define ARCH_TEST_CFB_AES
+
+/**
+ * \def ARCH_TEST_PKCS1V15_*
+ *
+ * Enable support for PKCS#1 v1.5 encoding.
+ * Enable support for PKCS#1 v1.5 operations.
+ * Enable support for RSA-OAEP
+ *
+ * Requires: ARCH_TEST_RSA, ARCH_TEST_PKCS1V15
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_PKCS1V15
+#define ARCH_TEST_RSA_PKCS1V15_SIGN
+#define ARCH_TEST_RSA_PKCS1V15_SIGN_RAW
+#define ARCH_TEST_RSA_PKCS1V15_CRYPT
+#define ARCH_TEST_RSA_OAEP
+
+/**
+ * \def ARCH_TEST_CBC_PKCS7
+ *
+ * Requires: ARCH_TEST_CIPER_MODE_CBC
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_CBC_PKCS7
+
+/**
+ * \def ARCH_TEST_ASYMMETRIC_ENCRYPTION
+ *
+ * Enable support for Asymmetric encryption algorithms
+ */
+#define ARCH_TEST_ASYMMETRIC_ENCRYPTION
+
+/**
+ * \def ARCH_TEST_HASH
+ *
+ * Enable the hash algorithm.
+ */
+#define ARCH_TEST_HASH
+
+/**
+ * \def  ARCH_TEST_HMAC
+ *
+ * The key policy determines which underlying hash algorithm the key can be
+ * used for.
+ *
+ * Requires: ARCH_TEST_HASH
+ */
+#define ARCH_TEST_HMAC
+
+/**
+ * \def ARCH_TEST_MDX
+ * \def ARCH_TEST_SHAXXX
+ *
+ * Enable the MDX algorithm.
+ * Enable the SHAXXX algorithm.
+ *
+ * Requires: ARCH_TEST_HASH
+ *
+ * Comment macros to disable the types
+ */
+//#define ARCH_TEST_MD2
+//#define ARCH_TEST_MD4
+//#define ARCH_TEST_MD5
+//#define ARCH_TEST_RIPEMD160
+#define ARCH_TEST_SHA1
+#define ARCH_TEST_SHA224
+#define ARCH_TEST_SHA256
+#define ARCH_TEST_SHA384
+#define ARCH_TEST_SHA512
+//#define ARCH_TEST_SHA512_224
+//#define ARCH_TEST_SHA512_256
+//#define ARCH_TEST_SHA3_224
+//#define ARCH_TEST_SHA3_256
+//#define ARCH_TEST_SHA3_384
+//#define ARCH_TEST_SHA3_512
+
+/**
+ * \def ARCH_TEST_HKDF
+ *
+ * Enable the HKDF algorithm (RFC 5869).
+ *
+ * Requires: ARCH_TEST_HASH
+*/
+#define ARCH_TEST_HKDF
+
+/**
+ * \def ARCH_TEST_xMAC
+ *
+ * Enable the xMAC (Cipher/Hash/G-based Message Authentication Code) mode for block
+ * ciphers.
+ * Requires: ARCH_TEST_AES or ARCH_TEST_DES
+ *
+ * Comment macros to disable the types
+ */
+#define ARCH_TEST_CMAC
+#define ARCH_TEST_GMAC
+#define ARCH_TEST_HMAC
+
+/**
+ * \def ARCH_TEST_CCM
+ *
+ * Enable the Counter with CBC-MAC (CCM) mode for 128-bit block cipher.
+ *
+ * Requires: ARCH_TEST_AES
+ */
+#define ARCH_TEST_CCM
+
+/**
+ * \def ARCH_TEST_GCM
+ *
+ * Enable the Galois/Counter Mode (GCM) for AES.
+ *
+ * Requires: ARCH_TEST_AES
+ *
+ */
+#define ARCH_TEST_GCM
+
+/**
+ * \def ARCH_TEST_TRUNCATED_MAC
+ *
+ * Enable support for RFC 6066 truncated HMAC in SSL.
+ *
+ * Comment this macro to disable support for truncated HMAC in SSL
+ */
+#define ARCH_TEST_TRUNCATED_MAC
+
+
+/**
+ * \def ARCH_TEST_ECDH
+ *
+ * Enable the elliptic curve Diffie-Hellman library.
+ *
+ * Requires: ARCH_TEST_ECC
+ */
+#define ARCH_TEST_ECDH
+
+/**
+ * \def ARCH_TEST_ECDSA
+ *
+ * Enable the elliptic curve DSA library.
+ * Requires: ARCH_TEST_ECC
+ */
+#define ARCH_TEST_ECDSA
+
+/**
+ * \def ARCH_TEST_DETERMINISTIC_ECDSA
+ *
+ * Enable deterministic ECDSA (RFC 6979).
+*/
+#define ARCH_TEST_DETERMINISTIC_ECDSA
+
+#include "pal_crypto_config_check.h"
+
+#endif /* _PAL_CRYPTO_CONFIG_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config_check.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config_check.h
new file mode 100644
index 0000000..f18a785
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config_check.h
@@ -0,0 +1,223 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+/**
+ * \file pal_crypto_config_check.h
+ *
+ * \brief Consistency checks for configuration options
+ *
+ */
+
+#ifndef _PAL_CRYPTO_CONFIG_CHECK_H_
+#define _PAL_CRYPTO_CONFIG_CHECK_H_
+
+#if defined(ARCH_TEST_RSA_1024) && !defined(ARCH_TEST_RSA)
+#error "ARCH_TEST_RSA_1024 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RSA_2048) && !defined(ARCH_TEST_RSA)
+#error "ARCH_TEST_RSA_2048 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RSA_3072) && !defined(ARCH_TEST_RSA)
+#error "ARCH_TEST_RSA_3072 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECC_CURVE_SECP192R1) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECC_CURVE_SECP192R1 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECC_CURVE_SECP224R1) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECC_CURVE_SECP224R1 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECC_CURVE_SECP256R1) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECC_CURVE_SECP256R1 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECC_CURVE_SECP384R1) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECC_CURVE_SECP384R1 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_AES_128) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_AES_128 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_AES_256) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_AES_256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_AES_512) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_AES_512 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_DES_1KEY) && !defined(ARCH_TEST_DES)
+#error "ARCH_TEST_DES_1KEY defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_DES_2KEY) && !defined(ARCH_TEST_DES)
+#error "ARCH_TEST_DES_2KEY defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_DES_3KEY) && !defined(ARCH_TEST_DES)
+#error "ARCH_TEST_DES_3KEY defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CIPER_MODE_CTR) && !defined(ARCH_TEST_CIPER)
+#error "ARCH_TEST_CIPER_MODE_CTR defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CIPER_MODE_CFB) && !defined(ARCH_TEST_CIPER)
+#error "ARCH_TEST_CIPER_MODE_CFB defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CIPER_MODE_CBC) && !defined(ARCH_TEST_CIPER)
+#error "ARCH_TEST_CIPER_MODE_CBC defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CTR_AES) &&\
+    (!defined(ARCH_TEST_CIPER) || !defined(ARCH_TEST_AES) || !defined(ARCH_TEST_CIPER_MODE_CTR))
+#error "ARCH_TEST_CTR_AES defined, but not all prerequisites"
+#endif
+
+#if (defined(ARCH_TEST_CBC_AES)|| defined(ARCH_TEST_CBC_AES_NO_PADDING)) &&\
+    (!defined(ARCH_TEST_CIPER) || !defined(ARCH_TEST_AES) || !defined(ARCH_TEST_CIPER_MODE_CBC))
+#error "ARCH_TEST_CBC_AES defined, but not all prerequisites"
+#endif
+
+#if (defined(ARCH_TEST_CBC_NO_PADDING)) &&\
+    (!defined(ARCH_TEST_CIPER) ||!defined(ARCH_TEST_CIPER_MODE_CBC))
+#error "ARCH_TEST_CBC_NO_PADDING defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CFB_AES) &&\
+    (!defined(ARCH_TEST_CIPER) || !defined(ARCH_TEST_AES) || !defined(ARCH_TEST_CIPER_MODE_CFB))
+#error "ARCH_TEST_CFB_AES defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RSA_PKCS1V15_SIGN) &&\
+    (!defined(ARCH_TEST_RSA) || !defined(ARCH_TEST_PKCS1V15))
+#error "ARCH_TEST_RSA_PKCS1V15_SIGN defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RSA_PKCS1V15_SIGN_RAW) &&\
+    (!defined(ARCH_TEST_RSA) || !defined(ARCH_TEST_PKCS1V15))
+#error "ARCH_TEST_RSA_PKCS1V15_SIGN_RAW defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RSA_PKCS1V15_CRYPT) &&\
+    (!defined(ARCH_TEST_RSA) || !defined(ARCH_TEST_PKCS1V15))
+#error "ARCH_TEST_RSA_PKCS1V15_CRYPT defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CBC_PKCS7) && !defined(ARCH_TEST_CIPER_MODE_CBC)
+#error "ARCH_TEST_CBC_PKCS7 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_HMAC) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_HMAC defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_MD2) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_MD2 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_MD4) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_MD4 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_MD5) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_MD5 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_RIPEMD160) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_RIPEMD160 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA1) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA1 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA224) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA224 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA256) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA512) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA512 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA512_224) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA512_224 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA512_256) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA512_256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA3_224) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA3_224 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA3_256) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA3_256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA3_384) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA3_256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_SHA3_512) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_SHA3_256 defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_HKDF) && !defined(ARCH_TEST_HASH)
+#error "ARCH_TEST_HKDF defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CMAC) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_CMAC defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_GMAC) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_GMAC defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_HMAC) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_HMAC defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_CCM) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_CCM defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_GCM) && !defined(ARCH_TEST_AES)
+#error "ARCH_TEST_GCM defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECDH) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECDH defined, but not all prerequisites"
+#endif
+
+#if defined(ARCH_TEST_ECDSA) && !defined(ARCH_TEST_ECC)
+#error "ARCH_TEST_ECDSA defined, but not all prerequisites"
+#endif
+
+#endif /* _PAL_CRYPTO_CONFIG_CHECK_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_empty_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_empty_intf.c
new file mode 100644
index 0000000..2a28f39
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_empty_intf.c
@@ -0,0 +1,30 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include <stdarg.h>
+#include "pal_common.h"
+
+/**
+    @brief    - This API will call the requested crypto function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+int32_t pal_crypto_function(int type, va_list valist)
+{
+    return PAL_STATUS_ERROR;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.c
new file mode 100644
index 0000000..3df6aa8
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.c
@@ -0,0 +1,340 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+
+#include "pal_crypto_intf.h"
+
+#define  PAL_KEY_SLOT_COUNT  32
+
+/**
+    @brief    - This API will call the requested crypto function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+int32_t pal_crypto_function(int type, va_list valist)
+{
+    int                     i;
+    size_t                  size, *length, salt_length, label_length, ciphertext_size;
+    uint8_t                 *buffer, *ciphertext;
+    const uint8_t           *salt, *label, *nonce, *additional_data;
+    uint8_t                 *plaintext;
+    uint32_t                status;
+    const void              *extra;
+    size_t                  extra_size, capacity, *gen_cap, nonce_length, additional_data_length;
+    psa_key_handle_t        handle, *key_handle, target_handle;
+    psa_key_type_t          key_type, *key_type_out;
+    psa_key_policy_t        *policy;
+    psa_key_usage_t         usage, *usage_out;
+    psa_key_lifetime_t      *lifetime_out;
+    psa_algorithm_t         alg, *alg_out;
+    psa_hash_operation_t    *hash_operation;
+    psa_mac_operation_t     *mac_operation;
+    psa_cipher_operation_t  *cipher_operation;
+    psa_crypto_generator_t  *generator;
+
+    switch (type)
+    {
+        case PAL_CRYPTO_INIT:
+            return psa_crypto_init();
+        case PAL_CRYPTO_GENERATE_RANDOM:
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, int);
+            return psa_generate_random(buffer, size);
+        case PAL_CRYPTO_IMPORT_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            key_type = va_arg(valist, psa_key_type_t);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, int);
+            status = psa_import_key(handle, key_type, buffer, size);
+            return status;
+        case PAL_CRYPTO_EXPORT_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            buffer = (uint8_t *)(va_arg(valist, uint8_t*));
+            size = va_arg(valist, int);
+            length = (size_t *)va_arg(valist, size_t*);
+            status = psa_export_key(handle, buffer, size, length);
+            return status;
+        case PAL_CRYPTO_EXPORT_PUBLIC_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            buffer = (uint8_t *)(va_arg(valist, uint8_t*));
+            size = va_arg(valist, int);
+            length = (size_t *)va_arg(valist, size_t*);
+            status = psa_export_public_key(handle, buffer, size, length);
+            return status;
+        case PAL_CRYPTO_KEY_POLICY_INIT:
+            policy = va_arg(valist, psa_key_policy_t*);
+            memset(policy, 0, sizeof(psa_key_policy_t));
+            return 0;
+        case PAL_CRYPTO_KEY_POLICY_SET_USAGE:
+            policy = va_arg(valist, psa_key_policy_t*);
+            usage = va_arg(valist, psa_key_usage_t);
+            alg = va_arg(valist, psa_algorithm_t);
+            psa_key_policy_set_usage(policy, usage, alg);
+            return 0;
+        case PAL_CRYPTO_SET_KEY_POLICY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            policy = va_arg(valist, psa_key_policy_t*);
+            return psa_set_key_policy(handle, policy);
+        case PAL_CRYPTO_DESTROY_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            status = psa_destroy_key(handle);
+            return status;
+        case PAL_CRYPTO_GET_KEY_INFORMATION:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            key_type_out = va_arg(valist, psa_key_type_t*);
+            length = (size_t *)va_arg(valist, size_t*);
+            status = psa_get_key_information(handle, key_type_out, length);
+            return status;
+        case PAL_CRYPTO_GET_KEY_POLICY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            policy = va_arg(valist, psa_key_policy_t*);
+            return psa_get_key_policy(handle, policy);
+        case PAL_CRYPTO_KEY_POLICY_GET_USAGE:
+            policy = va_arg(valist, psa_key_policy_t*);
+            usage_out = va_arg(valist, psa_key_usage_t*);
+            *usage_out = psa_key_policy_get_usage(policy);
+            return 0;
+        case PAL_CRYPTO_KEY_POLICY_GET_ALGORITHM:
+            policy = va_arg(valist, psa_key_policy_t*);
+            alg_out = va_arg(valist, psa_algorithm_t*);
+            *alg_out = psa_key_policy_get_algorithm(policy);
+            return 0;
+        case PAL_CRYPTO_GET_KEY_LIFETIME:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            lifetime_out = va_arg(valist, psa_key_lifetime_t*);
+            return psa_get_key_lifetime(handle, lifetime_out);
+        case PAL_CRYPTO_HASH_SETUP:
+            hash_operation = va_arg(valist, psa_hash_operation_t*);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_hash_setup(hash_operation, alg);
+        case PAL_CRYPTO_HASH_UPDATE:
+            hash_operation = va_arg(valist, psa_hash_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            return psa_hash_update(hash_operation, buffer, size);
+        case PAL_CRYPTO_HASH_VERIFY:
+            hash_operation = va_arg(valist, psa_hash_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            return psa_hash_verify(hash_operation, buffer, size);
+        case PAL_CRYPTO_HASH_FINISH:
+            hash_operation = va_arg(valist, psa_hash_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_hash_finish(hash_operation, buffer, size, length);
+        case PAL_CRYPTO_HASH_ABORT:
+            hash_operation = va_arg(valist, psa_hash_operation_t*);
+            return psa_hash_abort(hash_operation);
+        case PAL_CRYPTO_GENERATE_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            key_type = va_arg(valist, psa_key_type_t);
+            size     = va_arg(valist, size_t);
+            extra    = va_arg(valist, const void*);
+            extra_size  = va_arg(valist, size_t);
+            return psa_generate_key(handle, key_type, size, extra, extra_size);
+        case PAL_CRYPTO_GENERATOR_READ:
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, int);
+            return psa_generator_read(generator, buffer, size);
+        case PAL_CRYPTO_KEY_DERIVATION:
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            salt = va_arg(valist, const uint8_t *);
+            salt_length = va_arg(valist, size_t);
+            label = va_arg(valist, const uint8_t *);
+            label_length = va_arg(valist, size_t);
+            capacity = va_arg(valist, size_t);
+            return psa_key_derivation(generator, handle, alg, salt, salt_length, label,
+                                                                  label_length, capacity);
+        case PAL_CRYPTO_GET_GENERATOR_CAPACITY:
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            gen_cap   = va_arg(valist, size_t*);
+            return psa_get_generator_capacity(generator, gen_cap);
+        case PAL_CRYPTO_GENERATOR_IMPORT_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            key_type = va_arg(valist, psa_key_type_t);
+            size     = va_arg(valist, size_t);
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            return psa_generator_import_key(handle, key_type, size, generator);
+        case PAL_CRYPTO_GENERATOR_ABORT:
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            return psa_generator_abort(generator);
+        case PAL_CRYPTO_AEAD_ENCRYPT:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            nonce = va_arg(valist, const uint8_t *);
+            nonce_length = va_arg(valist, size_t);
+            additional_data = va_arg(valist, const uint8_t *);
+            additional_data_length = va_arg(valist, size_t);
+            plaintext = va_arg(valist, uint8_t *);
+            size = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_aead_encrypt(handle, alg, nonce, nonce_length, additional_data,
+                    additional_data_length, plaintext, size, ciphertext, ciphertext_size, length);
+        case PAL_CRYPTO_AEAD_DECRYPT:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            nonce = va_arg(valist, const uint8_t *);
+            nonce_length = va_arg(valist, size_t);
+            additional_data = va_arg(valist, const uint8_t *);
+            additional_data_length = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            plaintext = va_arg(valist, uint8_t *);
+            size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_aead_decrypt(handle, alg, nonce, nonce_length, additional_data,
+                    additional_data_length, ciphertext, ciphertext_size, plaintext, size, length);
+        case PAL_CRYPTO_MAC_SIGN_SETUP:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_mac_sign_setup(mac_operation, handle, alg);
+        case PAL_CRYPTO_MAC_UPDATE:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            return psa_mac_update(mac_operation, buffer, size);
+        case PAL_CRYPTO_MAC_SIGN_FINISH:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            length = (size_t *)va_arg(valist, size_t*);
+            return psa_mac_sign_finish(mac_operation, buffer, size, length);
+        case PAL_CRYPTO_MAC_VERIFY_SETUP:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_mac_verify_setup(mac_operation, handle, alg);
+        case PAL_CRYPTO_MAC_VERIFY_FINISH:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            return psa_mac_verify_finish(mac_operation, buffer, size);
+        case PAL_CRYPTO_MAC_ABORT:
+            mac_operation = va_arg(valist, psa_mac_operation_t*);
+            return psa_mac_abort(mac_operation);
+        case PAL_CRYPTO_ASYMMTERIC_ENCRYPT:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            plaintext = va_arg(valist, uint8_t *);
+            size = va_arg(valist, size_t);
+            salt = va_arg(valist, const uint8_t *);
+            salt_length = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_asymmetric_encrypt(handle, alg, plaintext, size, salt, salt_length,
+                    ciphertext, ciphertext_size, length);
+        case PAL_CRYPTO_ASYMMTERIC_DECRYPT:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            plaintext = va_arg(valist, uint8_t *);
+            size = va_arg(valist, size_t);
+            salt = va_arg(valist, const uint8_t *);
+            salt_length = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_asymmetric_decrypt(handle, alg, plaintext, size, salt, salt_length,
+                    ciphertext, ciphertext_size, length);
+        case PAL_CRYPTO_CIPHER_ENCRYPT_SETUP:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_cipher_encrypt_setup(cipher_operation, handle, alg);
+        case PAL_CRYPTO_CIPHER_DECRYPT_SETUP:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_cipher_decrypt_setup(cipher_operation, handle, alg);
+        case PAL_CRYPTO_CIPHER_GENERATE_IV:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_cipher_generate_iv(cipher_operation, buffer, size, length);
+        case PAL_CRYPTO_CIPHER_SET_IV:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            return psa_cipher_set_iv(cipher_operation, buffer, size);
+        case PAL_CRYPTO_CIPHER_UPDATE:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            plaintext = va_arg(valist, uint8_t *);
+            size = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_cipher_update(cipher_operation, plaintext, size, ciphertext, ciphertext_size,
+                                     length);
+        case PAL_CRYPTO_CIPHER_FINISH:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_cipher_finish(cipher_operation, ciphertext, ciphertext_size, length);
+        case PAL_CRYPTO_CIPHER_ABORT:
+            cipher_operation =  va_arg(valist, psa_cipher_operation_t *);
+            return psa_cipher_abort(cipher_operation);
+        case PAL_CRYPTO_ASYMMTERIC_SIGN:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            length = va_arg(valist, size_t*);
+            return psa_asymmetric_sign(handle, alg, buffer, size, ciphertext, ciphertext_size,
+                                       length);
+        case PAL_CRYPTO_ASYMMTERIC_VERIFY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            alg = va_arg(valist, psa_algorithm_t);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            ciphertext = va_arg(valist, uint8_t *);
+            ciphertext_size = va_arg(valist, size_t);
+            return psa_asymmetric_verify(handle, alg, buffer, size, ciphertext, ciphertext_size);
+        case PAL_CRYPTO_KEY_AGREEMENT:
+            generator = va_arg(valist, psa_crypto_generator_t*);
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            buffer = va_arg(valist, uint8_t*);
+            size = va_arg(valist, size_t);
+            alg = va_arg(valist, psa_algorithm_t);
+            return psa_key_agreement(generator, handle, buffer, size, alg);
+        case PAL_CRYPTO_ALLOCATE_KEY:
+            key_handle = (psa_key_handle_t *)va_arg(valist, int*);
+            return psa_allocate_key(key_handle);
+        case PAL_CRYPTO_COPY_KEY:
+            handle = (psa_key_handle_t)va_arg(valist, int);
+            target_handle = (psa_key_handle_t)va_arg(valist, int);
+            policy = va_arg(valist, psa_key_policy_t*);
+            return psa_copy_key(handle, target_handle, policy);
+        case PAL_CRYPTO_FREE:
+            for (i = 0; i < PAL_KEY_SLOT_COUNT; i++)
+                psa_destroy_key(i);
+            return 0;
+        default:
+            return PAL_STATUS_UNSUPPORTED_FUNC;
+    }
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.h
new file mode 100644
index 0000000..d1dabfa
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_intf.h
@@ -0,0 +1,76 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_CRYPTO_H_
+#define _PAL_CRYPTO_H_
+
+#include "pal_common.h"
+
+enum crypto_function_code {
+    PAL_CRYPTO_INIT                     = 0x1,
+    PAL_CRYPTO_GENERATE_RANDOM          = 0x2,
+    PAL_CRYPTO_IMPORT_KEY               = 0x3,
+    PAL_CRYPTO_EXPORT_KEY               = 0x4,
+    PAL_CRYPTO_EXPORT_PUBLIC_KEY        = 0x5,
+    PAL_CRYPTO_DESTROY_KEY              = 0x6,
+    PAL_CRYPTO_GET_KEY_INFO             = 0x7,
+    PAL_CRYPTO_KEY_POLICY_INIT          = 0x8,
+    PAL_CRYPTO_KEY_POLICY_SET_USAGE     = 0x9,
+    PAL_CRYPTO_KEY_POLICY_GET_USAGE     = 0xA,
+    PAL_CRYPTO_KEY_POLICY_GET_ALGORITHM = 0xB,
+    PAL_CRYPTO_SET_KEY_POLICY           = 0xC,
+    PAL_CRYPTO_GET_KEY_POLICY           = 0xD,
+    PAL_CRYPTO_GET_KEY_INFORMATION      = 0xE,
+    PAL_CRYPTO_GET_KEY_LIFETIME         = 0xF,
+    PAL_CRYPTO_HASH_SETUP               = 0x11,
+    PAL_CRYPTO_HASH_UPDATE              = 0x12,
+    PAL_CRYPTO_HASH_VERIFY              = 0x13,
+    PAL_CRYPTO_HASH_FINISH              = 0x14,
+    PAL_CRYPTO_HASH_ABORT               = 0x15,
+    PAL_CRYPTO_GENERATE_KEY             = 0x16,
+    PAL_CRYPTO_GENERATOR_READ           = 0x17,
+    PAL_CRYPTO_KEY_DERIVATION           = 0x18,
+    PAL_CRYPTO_GET_GENERATOR_CAPACITY   = 0x19,
+    PAL_CRYPTO_GENERATOR_IMPORT_KEY     = 0x1A,
+    PAL_CRYPTO_GENERATOR_ABORT          = 0x1B,
+    PAL_CRYPTO_AEAD_ENCRYPT             = 0x1C,
+    PAL_CRYPTO_AEAD_DECRYPT             = 0x1D,
+    PAL_CRYPTO_MAC_SIGN_SETUP           = 0x1E,
+    PAL_CRYPTO_MAC_UPDATE               = 0x1F,
+    PAL_CRYPTO_MAC_SIGN_FINISH          = 0x20,
+    PAL_CRYPTO_MAC_VERIFY_SETUP         = 0x21,
+    PAL_CRYPTO_MAC_VERIFY_FINISH        = 0x22,
+    PAL_CRYPTO_MAC_ABORT                = 0x23,
+    PAL_CRYPTO_ASYMMTERIC_ENCRYPT       = 0x24,
+    PAL_CRYPTO_ASYMMTERIC_DECRYPT       = 0x25,
+    PAL_CRYPTO_CIPHER_ENCRYPT_SETUP     = 0x26,
+    PAL_CRYPTO_CIPHER_DECRYPT_SETUP     = 0x2A,
+    PAL_CRYPTO_CIPHER_GENERATE_IV       = 0x2B,
+    PAL_CRYPTO_CIPHER_SET_IV            = 0x2C,
+    PAL_CRYPTO_CIPHER_UPDATE            = 0x2D,
+    PAL_CRYPTO_CIPHER_FINISH            = 0x2E,
+    PAL_CRYPTO_CIPHER_ABORT             = 0x2F,
+    PAL_CRYPTO_ASYMMTERIC_SIGN          = 0x30,
+    PAL_CRYPTO_ASYMMTERIC_VERIFY        = 0x31,
+    PAL_CRYPTO_KEY_AGREEMENT            = 0x32,
+    PAL_CRYPTO_ALLOCATE_KEY             = 0x33,
+    PAL_CRYPTO_COPY_KEY                 = 0x34,
+    PAL_CRYPTO_FREE                     = 0xFE,
+};
+
+int32_t pal_crypto_function(int type, va_list valist);
+#endif /* _PAL_CRYPTO_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.c
new file mode 100644
index 0000000..ae2bdba
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.c
@@ -0,0 +1,346 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_attestation_crypto.h"
+
+static uint32_t  public_key_registered = 0;
+
+static inline struct q_useful_buf_c useful_buf_head(struct q_useful_buf_c buf,
+                                                  size_t amount)
+{
+    return UsefulBuf_Head(buf, amount);
+}
+
+static uint32_t check_hash_sizes(void)
+{
+    if (T_COSE_CRYPTO_SHA256_SIZE != PSA_HASH_SIZE(PSA_ALG_SHA_256))
+    {
+        return PAL_ATTEST_HASH_FAIL;
+    }
+
+    return PAL_ATTEST_SUCCESS;
+}
+
+static psa_ecc_curve_t attest_map_elliptic_curve_type(int32_t cose_curve)
+{
+    psa_ecc_curve_t psa_curve;
+
+    /*FixMe: Mapping is not complete, missing ones: P384, P521, ED25519, ED448 */
+    switch (cose_curve)
+    {
+    case P_256:
+        psa_curve = PSA_ECC_CURVE_SECP256R1;
+        break;
+    default:
+        psa_curve = USHRT_MAX;
+    }
+
+    return psa_curve;
+}
+
+static psa_algorithm_t cose_hash_alg_id_to_psa(int32_t cose_hash_alg_id)
+{
+    psa_algorithm_t status;
+
+    switch (cose_hash_alg_id)
+    {
+    case COSE_ALG_SHA256_PROPRIETARY:
+        status = PSA_ALG_SHA_256;
+        break;
+    default:
+        status = PSA_ALG_MD4;
+        break;
+    }
+
+    return status;
+}
+
+static int32_t hash_alg_id_from_sig_alg_id(int32_t cose_sig_alg_id)
+{
+    switch (cose_sig_alg_id)
+    {
+        case COSE_ALGORITHM_ES256:
+            return COSE_ALG_SHA256_PROPRIETARY;
+        default:
+            return INT32_MAX;
+    }
+}
+
+int32_t pal_cose_crypto_hash_start(struct pal_cose_crypto_hash *hash_ctx, int32_t cose_hash_alg_id)
+{
+    int32_t                          cose_ret = PAL_ATTEST_SUCCESS;
+    psa_status_t                     psa_ret;
+    struct pal_cose_psa_crypto_hash *psa_hash_ctx;
+
+    cose_ret = check_hash_sizes();
+    if (cose_ret)
+    {
+        goto error;
+    }
+
+    if (sizeof(struct pal_cose_crypto_hash) < sizeof(struct pal_cose_psa_crypto_hash))
+    {
+        cose_ret = PAL_ATTEST_HASH_FAIL;
+        goto error;
+    }
+
+    psa_hash_ctx = (struct pal_cose_psa_crypto_hash *)hash_ctx;
+    psa_ret = psa_hash_setup(&psa_hash_ctx->operation, cose_hash_alg_id_to_psa(cose_hash_alg_id));
+
+    if (psa_ret == PAL_ATTEST_SUCCESS)
+    {
+        psa_hash_ctx->status = PAL_ATTEST_SUCCESS;
+        cose_ret = PAL_ATTEST_SUCCESS;
+    }
+    else if (psa_ret == PSA_ERROR_NOT_SUPPORTED)
+    {
+        cose_ret = PAL_ATTEST_HASH_UNSUPPORTED;
+    }
+    else
+    {
+        cose_ret = PAL_ATTEST_HASH_FAIL;
+    }
+
+error:
+    return cose_ret;
+}
+
+void pal_cose_crypto_hash_update(struct pal_cose_crypto_hash *hash_ctx,
+                                 struct q_useful_buf_c data_to_hash)
+{
+    struct pal_cose_psa_crypto_hash *psa_hash_ctx;
+
+    if (sizeof(struct pal_cose_crypto_hash) < sizeof(struct pal_cose_psa_crypto_hash))
+    {
+        return;
+    }
+
+    psa_hash_ctx = (struct pal_cose_psa_crypto_hash *)hash_ctx;
+
+    if (psa_hash_ctx->status == PAL_ATTEST_SUCCESS)
+    {
+        if (data_to_hash.ptr != NULL)
+        {
+            psa_hash_ctx->status = psa_hash_update(&psa_hash_ctx->operation,
+                                                   data_to_hash.ptr,
+                                                   data_to_hash.len);
+        }
+        else
+        {
+            /* Intentionally do nothing, just computing the size of the token */
+        }
+    }
+}
+
+int32_t pal_cose_crypto_hash_finish(struct pal_cose_crypto_hash *hash_ctx,
+                                    struct q_useful_buf buffer_to_hold_result,
+                                    struct q_useful_buf_c *hash_result)
+{
+    uint32_t                         cose_ret = PAL_ATTEST_SUCCESS;
+    psa_status_t                     psa_ret;
+    struct pal_cose_psa_crypto_hash *psa_hash_ctx;
+
+    if (sizeof(struct pal_cose_crypto_hash) < sizeof(struct pal_cose_psa_crypto_hash))
+    {
+        cose_ret = PAL_ATTEST_HASH_FAIL;
+        goto error;
+    }
+
+    psa_hash_ctx = (struct pal_cose_psa_crypto_hash *)hash_ctx;
+
+    if (psa_hash_ctx->status == PAL_ATTEST_SUCCESS)
+    {
+        psa_ret = psa_hash_finish(&psa_hash_ctx->operation,
+                                  buffer_to_hold_result.ptr,
+                                  buffer_to_hold_result.len,
+                                  &(hash_result->len));
+
+        if (psa_ret == PAL_ATTEST_SUCCESS)
+        {
+            hash_result->ptr = buffer_to_hold_result.ptr;
+            cose_ret = 0;
+        }
+        else if (psa_ret == PSA_ERROR_BUFFER_TOO_SMALL)
+        {
+            cose_ret = PAL_ATTEST_HASH_BUFFER_SIZE;
+        }
+        else
+        {
+            cose_ret = PAL_ATTEST_HASH_FAIL;
+        }
+    }
+    else
+    {
+        cose_ret = PAL_ATTEST_HASH_FAIL;
+    }
+
+error:
+    return cose_ret;
+}
+
+int pal_create_sha256(struct q_useful_buf_c bytes_to_hash, struct q_useful_buf buffer_for_hash,
+                      struct q_useful_buf_c *hash)
+{
+    uint32_t                      status = PAL_ATTEST_SUCCESS;
+    struct pal_cose_crypto_hash   hash_ctx;
+
+    status = pal_cose_crypto_hash_start(&hash_ctx, COSE_ALG_SHA256_PROPRIETARY);
+    if (status)
+        return status;
+
+    pal_cose_crypto_hash_update(&hash_ctx, bytes_to_hash);
+    status = pal_cose_crypto_hash_finish(&hash_ctx, buffer_for_hash, hash);
+
+    return status;
+}
+
+uint32_t pal_compute_hash(int32_t cose_alg_id, struct q_useful_buf buffer_for_hash,
+                          struct q_useful_buf_c *hash, struct q_useful_buf_c protected_headers,
+                          struct q_useful_buf_c payload)
+{
+    uint32_t                    status;
+    QCBOREncodeContext          cbor_encode_ctx;
+    struct q_useful_buf_c       tbs_first_part;
+    QCBORError                  qcbor_result;
+    struct pal_cose_crypto_hash hash_ctx = {{0}};
+    int32_t                     hash_alg_id;
+    UsefulBuf_MAKE_STACK_UB    (buffer_for_TBS_first_part, T_COSE_SIZE_OF_TBS);
+
+    /* This builds the CBOR-format to-be-signed bytes */
+    QCBOREncode_Init(&cbor_encode_ctx, buffer_for_TBS_first_part);
+    QCBOREncode_OpenArray(&cbor_encode_ctx);
+    /* context */
+    QCBOREncode_AddSZString(&cbor_encode_ctx,
+                            COSE_SIG_CONTEXT_STRING_SIGNATURE1);
+    /* body_protected */
+    QCBOREncode_AddBytes(&cbor_encode_ctx,
+                         protected_headers);
+    /* sign_protected */
+    QCBOREncode_AddBytes(&cbor_encode_ctx, NULL_USEFUL_BUF_C);
+    /* external_aad */
+    QCBOREncode_AddBytes(&cbor_encode_ctx, NULL_USEFUL_BUF_C);
+    /* fake payload */
+    QCBOREncode_AddBytes(&cbor_encode_ctx, NULL_USEFUL_BUF_C);
+    QCBOREncode_CloseArray(&cbor_encode_ctx);
+
+    /* Get the result and convert it to struct q_useful_buf_c representation */
+    qcbor_result = QCBOREncode_Finish(&cbor_encode_ctx, &tbs_first_part);
+    if (qcbor_result)
+    {
+        /* Mainly means that the protected_headers were too big
+         (which should never happen) */
+        status = PAL_ATTEST_ERR_SIGN_STRUCT;
+        goto Done;
+    }
+
+    /* Start the hashing */
+    hash_alg_id = hash_alg_id_from_sig_alg_id(cose_alg_id);
+
+    /* Don't check hash_alg_id for failure. pal_cose_crypto_hash_start()
+     * will handle it properly
+     */
+    status = pal_cose_crypto_hash_start(&hash_ctx, hash_alg_id);
+    if (status)
+        goto Done;
+
+    /* Hash the first part of the TBS. Take all but the last two
+     * bytes. The last two bytes are the fake payload from above. It
+     * is replaced by the real payload which is hashed next. The fake
+     * payload is needed so the array count is right. This is one of
+     * the main things that make it possible to implement with one
+     * buffer for the whole cose sign1.
+     */
+    pal_cose_crypto_hash_update(&hash_ctx, useful_buf_head(tbs_first_part,
+                                              tbs_first_part.len - 2));
+
+    /* Hash the payload */
+    pal_cose_crypto_hash_update(&hash_ctx, payload);
+
+    /* Finish the hash and set up to return it */
+    status = pal_cose_crypto_hash_finish(&hash_ctx,
+                                             buffer_for_hash,
+                                             hash);
+
+Done:
+    return status;
+}
+
+uint32_t pal_import_attest_key(int32_t alg)
+{
+    psa_key_type_t   attest_key_type;
+    size_t           public_key_size;
+    psa_status_t     status = PSA_SUCCESS;
+    psa_key_policy_t policy;
+    psa_ecc_curve_t  psa_curve;
+    psa_key_handle_t public_key_handle;
+
+    /* Mapping of COSE curve type to PSA curve types */
+    psa_curve = attest_map_elliptic_curve_type(P_256);
+    if (psa_curve == USHRT_MAX)
+        return PAL_ATTEST_ERROR;
+
+    /* Setup the key policy for public key */
+    policy = psa_key_policy_init();
+    psa_key_policy_set_usage(&policy, PSA_KEY_USAGE_VERIFY, alg);
+
+    status = psa_allocate_key(&public_key_handle);
+    if (status != PSA_SUCCESS)
+        return status;
+
+    status = psa_set_key_policy(public_key_handle, &policy);
+    if (status != PSA_SUCCESS)
+        return status;
+
+    attest_key_type = PSA_KEY_TYPE_ECC_PUBLIC_KEY(psa_curve);
+
+    /* Register public key to crypto service */
+    public_key_size = attest_key.pubx_key_size + attest_key.puby_key_size;
+
+    status = psa_import_key(public_key_handle,
+                                attest_key_type,
+                                (const uint8_t *)&attest_public_key,
+                                public_key_size + 1);
+
+    return status;
+}
+
+
+uint32_t pal_crypto_pub_key_verify(int32_t cose_algorithm_id,
+                                   struct q_useful_buf_c token_hash,
+                                   struct q_useful_buf_c signature)
+{
+    uint32_t status = PAL_ATTEST_SUCCESS;
+
+    if (!public_key_registered)
+    {
+        status = pal_import_attest_key(cose_algorithm_id);
+        if (status != PAL_ATTEST_SUCCESS)
+            return status;
+
+        public_key_registered = 1;
+    }
+
+/*
+ * Enable the verify function when Trusted Firmare - M Supports
+
+ *  Verify the signature a hash or short message using a public key.
+    status = psa_asymmetric_verify(public_key_handle,
+                                    cose_algorithm_id, token_hash.ptr, token_hash.len,
+                                    signature.ptr, signature.len);
+*/
+    return status;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.h
new file mode 100644
index 0000000..2d63ad1
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_crypto.h
@@ -0,0 +1,102 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_common.h"
+#include "pal_attestation_eat.h"
+
+#define ATTEST_PUBLIC_KEY_SLOT            4
+
+typedef struct{
+    uint8_t  *pubx_key;
+    uint32_t  pubx_key_size;
+    uint8_t  *puby_key;
+    uint32_t  puby_key_size;
+} ecc_key_t;
+
+struct ecc_public_key_t {
+    const uint8_t a;
+    uint8_t public_key[]; /* X-coordinate || Y-coordinate */
+};
+
+static const struct ecc_public_key_t attest_public_key = {
+     /* Constant byte */
+     0x04,
+     /* X-coordinate */
+     {0x79, 0xEB, 0xA9, 0x0E, 0x8B, 0xF4, 0x50, 0xA6,
+      0x75, 0x15, 0x76, 0xAD, 0x45, 0x99, 0xB0, 0x7A,
+      0xDF, 0x93, 0x8D, 0xA3, 0xBB, 0x0B, 0xD1, 0x7D,
+      0x00, 0x36, 0xED, 0x49, 0xA2, 0xD0, 0xFC, 0x3F,
+     /* Y-coordinate */
+      0xBF, 0xCD, 0xFA, 0x89, 0x56, 0xB5, 0x68, 0xBF,
+      0xDB, 0x86, 0x73, 0xE6, 0x48, 0xD8, 0xB5, 0x8D,
+      0x92, 0x99, 0x55, 0xB1, 0x4A, 0x26, 0xC3, 0x08,
+      0x0F, 0x34, 0x11, 0x7D, 0x97, 0x1D, 0x68, 0x64},
+};
+
+struct pal_cose_crypto_hash {
+    /* Can't put the actual size here without creating dependecy on
+     * actual hash implementation, so this is a fairly large and
+     * accommodating size.
+     */
+    uint8_t bytes[128];
+};
+
+struct pal_cose_psa_crypto_hash {
+    psa_status_t         status;
+    psa_hash_operation_t operation;
+};
+
+static const uint8_t initial_attestation_public_x_key[] =
+{
+    0x79, 0xEB, 0xA9, 0x0E, 0x8B, 0xF4, 0x50, 0xA6,
+    0x75, 0x15, 0x76, 0xAD, 0x45, 0x99, 0xB0, 0x7A,
+    0xDF, 0x93, 0x8D, 0xA3, 0xBB, 0x0B, 0xD1, 0x7D,
+    0x00, 0x36, 0xED, 0x49, 0xA2, 0xD0, 0xFC, 0x3F
+};
+
+static const uint8_t initial_attestation_public_y_key[] =
+{
+    0xBF, 0xCD, 0xFA, 0x89, 0x56, 0xB5, 0x68, 0xBF,
+    0xDB, 0x86, 0x73, 0xE6, 0x48, 0xD8, 0xB5, 0x8D,
+    0x92, 0x99, 0x55, 0xB1, 0x4A, 0x26, 0xC3, 0x08,
+    0x0F, 0x34, 0x11, 0x7D, 0x97, 0x1D, 0x68, 0x64
+};
+
+/* Initialize the structure with given public key */
+static const ecc_key_t attest_key = {
+        (uint8_t *)initial_attestation_public_x_key,
+        sizeof(initial_attestation_public_x_key),
+        (uint8_t *)initial_attestation_public_y_key,
+        sizeof(initial_attestation_public_y_key)
+};
+
+int32_t pal_cose_crypto_hash_start(struct pal_cose_crypto_hash *hash_ctx, int32_t cose_hash_alg_id);
+void pal_cose_crypto_hash_update(struct pal_cose_crypto_hash *hash_ctx,
+                                 struct q_useful_buf_c data_to_hash);
+int32_t pal_cose_crypto_hash_finish(struct pal_cose_crypto_hash *hash_ctx,
+                                    struct q_useful_buf buffer_to_hold_result,
+                                    struct q_useful_buf_c *hash_result);
+int pal_create_sha256(struct q_useful_buf_c bytes_to_hash, struct q_useful_buf buffer_for_hash,
+                      struct q_useful_buf_c *hash);
+uint32_t pal_compute_hash(int32_t cose_alg_id, struct q_useful_buf buffer_for_hash,
+                          struct q_useful_buf_c *hash, struct q_useful_buf_c protected_headers,
+                          struct q_useful_buf_c payload);
+uint32_t pal_import_attest_key(int32_t alg);
+uint32_t pal_crypto_pub_key_verify(int32_t cose_algorithm_id, struct q_useful_buf_c token_hash,
+                                   struct q_useful_buf_c signature);
+
+
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.c
new file mode 100644
index 0000000..178fdc9
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.c
@@ -0,0 +1,491 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "pal_attestation_crypto.h"
+
+uint32_t    mandatory_claims = 0;
+uint32_t    mandaroty_sw_components = 0;
+bool_t      sw_component_present = 0;
+
+static int pal_encode_cose_key(struct q_useful_buf_c *cose_key,
+                               struct q_useful_buf buffer_for_cose_key,
+                               struct q_useful_buf_c x_cord, struct q_useful_buf_c y_cord)
+{
+    uint32_t                  return_value;
+    QCBORError                qcbor_result;
+    QCBOREncodeContext        cbor_encode_ctx;
+    int32_t                   cose_curve_id = P_256;
+    struct q_useful_buf_c       encoded_key_id;
+
+    /* Get the public key x and y */
+    /* Encode it into a COSE_Key structure */
+    QCBOREncode_Init(&cbor_encode_ctx, buffer_for_cose_key);
+    QCBOREncode_OpenMap(&cbor_encode_ctx);
+    QCBOREncode_AddInt64ToMapN(&cbor_encode_ctx,
+                               COSE_KEY_COMMON_KTY,
+                               COSE_KEY_TYPE_EC2);
+    QCBOREncode_AddInt64ToMapN(&cbor_encode_ctx,
+                               COSE_KEY_PARAM_CRV,
+                               cose_curve_id);
+    QCBOREncode_AddBytesToMapN(&cbor_encode_ctx,
+                               COSE_KEY_PARAM_X_COORDINATE,
+                               x_cord);
+    QCBOREncode_AddBytesToMapN(&cbor_encode_ctx,
+                               COSE_KEY_PARAM_Y_COORDINATE,
+                               y_cord);
+    QCBOREncode_CloseMap(&cbor_encode_ctx);
+
+    qcbor_result = QCBOREncode_Finish(&cbor_encode_ctx, &encoded_key_id);
+    if (qcbor_result != QCBOR_SUCCESS)
+    {
+        /* Mainly means that the COSE_Key was too big for buffer_for_cose_key */
+        return_value = PAL_ATTEST_ERR_PROTECTED_HEADERS;
+        goto Done;
+    }
+
+    /* Finish up and return */
+    *cose_key = encoded_key_id;
+    return_value = PAL_ATTEST_SUCCESS;
+
+Done:
+    return return_value;
+}
+
+
+static int get_items_in_map(QCBORDecodeContext *decode_context,
+                            struct items_to_get_t *item_list)
+{
+    int                     item_index;
+    QCBORItem               item;
+    struct items_to_get_t  *item_ptr = item_list;
+
+    /* initialize the data type of all items in the list */
+    while (item_ptr->label != 0)
+    {
+        item_ptr->item.uDataType = QCBOR_TYPE_NONE;
+        item_ptr++;
+    }
+
+    QCBORDecode_GetNext(decode_context, &item);
+    if (item.uDataType != QCBOR_TYPE_MAP)
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    for (item_index = item.val.uCount; item_index != 0; item_index--)
+    {
+        if (QCBORDecode_GetNext(decode_context, &item) != QCBOR_SUCCESS)
+        {
+            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+        }
+        if (item.uLabelType != QCBOR_TYPE_INT64)
+        {
+            continue;
+        }
+
+        item_ptr = item_list;
+        while (item_ptr->label != 0)
+        {
+            if (item.label.int64 == item_ptr->label)
+            {
+                item_ptr->item = item;
+            }
+            item_ptr++;
+        }
+    }
+
+    return PAL_ATTEST_SUCCESS;
+}
+
+static int get_item_in_map(QCBORDecodeContext *decode_context,
+                           int32_t label,
+                           QCBORItem *item)
+{
+    struct items_to_get_t   item_list[2];
+
+    item_list[0].label = label;
+    item_list[1].label = 0;
+
+    if (get_items_in_map(decode_context, item_list))
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    if (item_list[0].item.uDataType == QCBOR_TYPE_NONE)
+    {
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+    }
+
+    *item = item_list[0].item;
+
+    return PAL_ATTEST_SUCCESS;
+}
+
+static int parse_unprotected_headers(QCBORDecodeContext *decode_context,
+                                     struct q_useful_buf_c *child,
+                                     bool *loop_back)
+{
+    struct items_to_get_t   item_list[3];
+
+    item_list[0].label = COSE_HEADER_PARAM_KID;
+    item_list[1].label = T_COSE_SHORT_CIRCUIT_LABEL;
+    item_list[2].label = 0;
+    *loop_back = false;
+
+    if (get_items_in_map(decode_context, item_list))
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    if (item_list[1].item.uDataType == QCBOR_TYPE_TRUE)
+    {
+        *loop_back = true;
+    }
+
+    if (item_list[0].item.uDataType != QCBOR_TYPE_BYTE_STRING)
+    {
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+    }
+
+    *child = item_list[0].item.val.string;
+
+    return PAL_ATTEST_SUCCESS;
+}
+
+static int parse_protected_headers(struct q_useful_buf_c protected_headers,
+                                   int32_t *alg_id)
+{
+    QCBORDecodeContext  decode_context;
+    QCBORItem           item;
+
+    QCBORDecode_Init(&decode_context, protected_headers, 0);
+
+    if (get_item_in_map(&decode_context, COSE_HEADER_PARAM_ALG, &item))
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    if (QCBORDecode_Finish(&decode_context))
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    if ((item.uDataType != QCBOR_TYPE_INT64) || (item.val.int64 > INT32_MAX))
+    {
+        return PAL_ATTEST_ERROR;
+    }
+
+    *alg_id = (int32_t)item.val.int64;
+
+    return PAL_ATTEST_SUCCESS;
+}
+
+/**
+    @brief    - This API will verify the claims
+    @param    - decode_context      : The buffer containing the challenge
+                item                : context for decoding the data items
+                completed_challenge : Buffer containing the challenge
+    @return   - error status
+**/
+static int parse_claims(QCBORDecodeContext *decode_context, QCBORItem item,
+                                   struct q_useful_buf_c completed_challenge)
+{
+    int i, count = 0;
+    int status = PAL_ATTEST_SUCCESS;
+
+    /* Parse each claim and validate their data type */
+    while (status == PAL_ATTEST_SUCCESS)
+    {
+        status = QCBORDecode_GetNext(decode_context, &item);
+        if (status != PAL_ATTEST_SUCCESS)
+            break;
+
+        mandatory_claims |= 1 << (EAT_CBOR_ARM_RANGE_BASE - item.label.int64);
+        if (item.uLabelType == QCBOR_TYPE_INT64)
+        {
+            if (item.label.int64 == EAT_CBOR_ARM_LABEL_NONCE)
+            {
+                if (item.uDataType == QCBOR_TYPE_BYTE_STRING)
+                {
+                    /* Given challenge vs challenge in token */
+                    if (UsefulBuf_Compare(item.val.string, completed_challenge))
+                        return PAL_ATTEST_TOKEN_CHALLENGE_MISMATCH;
+                }
+                else
+                    return PAL_ATTEST_TOKEN_NOT_SUPPORTED;
+            }
+            else if (item.label.int64 == EAT_CBOR_ARM_LABEL_BOOT_SEED ||
+                     item.label.int64 == EAT_CBOR_ARM_LABEL_IMPLEMENTATION_ID ||
+                     item.label.int64 == EAT_CBOR_ARM_LABEL_UEID)
+            {
+                if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+                    return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+            }
+            else if (item.label.int64 == EAT_CBOR_ARM_LABEL_ORIGINATION ||
+                     item.label.int64 == EAT_CBOR_ARM_LABEL_PROFILE_DEFINITION ||
+                     item.label.int64 == EAT_CBOR_ARM_LABEL_HW_VERSION)
+            {
+                if (item.uDataType != QCBOR_TYPE_TEXT_STRING)
+                    return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+            }
+            else if (item.label.int64 == EAT_CBOR_ARM_LABEL_CLIENT_ID ||
+                     item.label.int64 == EAT_CBOR_ARM_LABEL_SECURITY_LIFECYCLE)
+            {
+                if (item.uDataType != QCBOR_TYPE_INT64)
+                    return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+            }
+            else if (item.label.int64 == EAT_CBOR_ARM_LABEL_SW_COMPONENTS)
+            {
+                if (item.uDataType != QCBOR_TYPE_ARRAY)
+                    return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+                sw_component_present = 1;
+                status = QCBORDecode_GetNext(decode_context, &item);
+                if (status != PAL_ATTEST_SUCCESS)
+                    continue;
+
+                count = item.val.uCount;
+                for (i = 0; i <= count; i++)
+                {
+                    mandaroty_sw_components |= 1 << item.label.int64;
+
+                    if (item.label.int64 == EAT_CBOR_SW_COMPONENT_MEASUREMENT)
+                    {
+                         if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                    else if (item.label.int64 == EAT_CBOR_SW_COMPONENT_MEASUREMENT_DESC)
+                    {
+                        if (item.uDataType != QCBOR_TYPE_TEXT_STRING)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                    else if (item.label.int64 == EAT_CBOR_SW_COMPONENT_VERSION)
+                    {
+                        if (item.uDataType != QCBOR_TYPE_TEXT_STRING)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                    else if (item.label.int64 == EAT_CBOR_SW_COMPONENT_SIGNER_ID)
+                    {
+                        if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                    else if (item.label.int64 == EAT_CBOR_SW_COMPONENT_EPOCH)
+                    {
+                        if (item.uDataType != QCBOR_TYPE_INT64)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                    else if (item.label.int64 == EAT_CBOR_SW_COMPONENT_TYPE)
+                    {
+                        if (item.uDataType != QCBOR_TYPE_TEXT_STRING)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+
+                    if (i < count)
+                    {
+                        status = QCBORDecode_GetNext(decode_context, &item);
+                        if (status != PAL_ATTEST_SUCCESS)
+                            return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+                    }
+                }
+
+            }
+        }
+        else
+        {
+            /* ToDo: Add other claim types */
+        }
+    }
+
+    if (status == QCBOR_ERR_HIT_END)
+        return PAL_ATTEST_SUCCESS;
+    else
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+}
+
+/**
+    @brief    - This API will verify the attestation token
+    @param    - challenge       : The buffer containing the challenge
+                challenge_size  : Size of the challenge buffer
+                token           : The buffer containing the attestation token
+                token_size      : Size of the token buffer
+    @return   - error status
+**/
+int32_t pal_initial_attest_verify_token(uint8_t *challenge, uint32_t challenge_size,
+                                        uint8_t *token, uint32_t token_size)
+{
+    int32_t             status = PAL_ATTEST_SUCCESS;
+    bool                short_circuit;
+    int32_t             cose_algorithm_id;
+    QCBORItem           item;
+    QCBORDecodeContext  decode_context;
+    struct q_useful_buf_c completed_challenge;
+    struct q_useful_buf_c completed_token;
+    struct q_useful_buf_c payload;
+    struct q_useful_buf_c signature;
+    struct q_useful_buf_c protected_headers;
+    struct q_useful_buf_c kid;
+    struct q_useful_buf_c x_cord;
+    struct q_useful_buf_c y_cord;
+    struct q_useful_buf_c cose_key_to_hash;
+    struct q_useful_buf_c key_hash;
+    struct q_useful_buf_c token_hash;
+    USEFUL_BUF_MAKE_STACK_UB(buf_to_hold_x_coord, T_COSE_CRYPTO_EC_P256_COORD_SIZE);
+    USEFUL_BUF_MAKE_STACK_UB(buf_to_hold_y_coord, T_COSE_CRYPTO_EC_P256_COORD_SIZE);
+    USEFUL_BUF_MAKE_STACK_UB(buffer_for_kid, T_COSE_CRYPTO_SHA256_SIZE);
+    USEFUL_BUF_MAKE_STACK_UB(buffer_for_cose_key, MAX_ENCODED_COSE_KEY_SIZE);
+    USEFUL_BUF_MAKE_STACK_UB(buffer_for_encoded_key, MAX_ENCODED_COSE_KEY_SIZE);
+    USEFUL_BUF_MAKE_STACK_UB(buffer_for_token_hash, T_COSE_CRYPTO_SHA256_SIZE);
+
+    kid.ptr = buffer_for_encoded_key.ptr;
+
+    memcpy(buf_to_hold_x_coord.ptr, (const void *)attest_key.pubx_key, attest_key.pubx_key_size);
+    memcpy(buf_to_hold_y_coord.ptr, (const void *)attest_key.puby_key, attest_key.puby_key_size);
+
+    /* Update size */
+    buf_to_hold_x_coord.len = attest_key.pubx_key_size;
+    buf_to_hold_y_coord.len = attest_key.puby_key_size;
+
+    x_cord.ptr = buf_to_hold_x_coord.ptr;
+    x_cord.len = buf_to_hold_x_coord.len;
+    y_cord.ptr = buf_to_hold_y_coord.ptr;
+    y_cord.len = buf_to_hold_y_coord.len;
+
+    /* Construct the token buffer for validation */
+    completed_token.ptr = token;
+    completed_token.len = token_size;
+
+    /* Construct the challenge buffer for validation */
+    completed_challenge.ptr = challenge;
+    completed_challenge.len = challenge_size;
+
+/*
+    -------------------------
+    |  CBOR Array Type      |
+    -------------------------
+    |  Protected Headers    |
+    -------------------------
+    |  Unprotected Headers  |
+    -------------------------
+    |  Payload              |
+    -------------------------
+    |  Signature            |
+    -------------------------
+*/
+
+    /* Initialize the decorder */
+    QCBORDecode_Init(&decode_context, completed_token, QCBOR_DECODE_MODE_NORMAL);
+
+    /* Get the Header */
+    QCBORDecode_GetNext(&decode_context, &item);
+
+    /* Check the CBOR Array type. Check if the count is 4.
+     * Only COSE_SIGN1 is supported now.
+     */
+    if (item.uDataType != QCBOR_TYPE_ARRAY || item.val.uCount != 4 ||
+       !QCBORDecode_IsTagged(&decode_context, &item, CBOR_TAG_COSE_SIGN1))
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+    /* Get the next headers */
+    QCBORDecode_GetNext(&decode_context, &item);
+    if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+    protected_headers = item.val.string;
+
+    /* Parse the protected headers and check the data type and value*/
+    status = parse_protected_headers(protected_headers, &cose_algorithm_id);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    /* Parse the unprotected headers and check the data type and value */
+    short_circuit = false;
+    status = parse_unprotected_headers(&decode_context, &kid, &short_circuit);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    /* Encode the given public key */
+    status = pal_encode_cose_key(&cose_key_to_hash, buffer_for_cose_key, x_cord, y_cord);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    /* Create hash of the given public key */
+    status = pal_create_sha256(cose_key_to_hash, buffer_for_kid, &key_hash);
+    if (status != PSA_SUCCESS)
+        return status;
+
+    /* Compare the hash of the public key in token and hash of the given public key */
+    if (kid.len != key_hash.len)
+    {
+        return PAL_ATTEST_HASH_LENGTH_MISMATCH;
+    }
+
+    if (memcmp(kid.ptr, key_hash.ptr, kid.len) != 0)
+    {
+        return PAL_ATTEST_HASH_MISMATCH;
+    }
+
+    /* Get the payload */
+    QCBORDecode_GetNext(&decode_context, &item);
+    if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+    payload = item.val.string;
+
+    /* Get the digital signature */
+    QCBORDecode_GetNext(&decode_context, &item);
+    if (item.uDataType != QCBOR_TYPE_BYTE_STRING)
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+    signature = item.val.string;
+
+    /* Compute the hash from the token */
+    status = pal_compute_hash(cose_algorithm_id, buffer_for_token_hash, &token_hash,
+                              protected_headers, payload);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    /* Verify the signature */
+    status = pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    /* Initialize the Decoder and validate the payload format */
+    QCBORDecode_Init(&decode_context, payload, QCBOR_DECODE_MODE_NORMAL);
+    status = QCBORDecode_GetNext(&decode_context, &item);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    if (item.uDataType != QCBOR_TYPE_MAP)
+        return PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING;
+
+    /* Parse the payload and check the data type of each claim */
+    status = parse_claims(&decode_context, item, completed_challenge);
+    if (status != PAL_ATTEST_SUCCESS)
+        return status;
+
+    if ((mandatory_claims & MANDATORY_CLAIM_WITH_SW_COMP) == MANDATORY_CLAIM_WITH_SW_COMP)
+    {
+        if ((mandaroty_sw_components & MANDATORY_SW_COMP) != MANDATORY_SW_COMP)
+            return PAL_ATTEST_TOKEN_NOT_ALL_MANDATORY_CLAIMS;
+    }
+    else if ((mandatory_claims & MANDATORY_CLAIM_NO_SW_COMP) != MANDATORY_CLAIM_NO_SW_COMP)
+    {
+        return PAL_ATTEST_TOKEN_NOT_ALL_MANDATORY_CLAIMS;
+    }
+
+    return PAL_ATTEST_SUCCESS;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.h
new file mode 100644
index 0000000..8a0c545
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_eat.h
@@ -0,0 +1,170 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include "qcbor.h"
+#include "pal_common.h"
+#include "psa/crypto.h"
+
+#define PAL_ATTEST_MIN_ERROR              30
+
+/* NIST P-256 also known as secp256r1 */
+#define P_256                             1
+
+#define COSE_HEADER_PARAM_ALG             1
+#define COSE_HEADER_PARAM_KID             4
+
+#define COSE_KEY_COMMON_KTY               1
+#define COSE_KEY_TYPE_EC2                 2
+#define COSE_KEY_PARAM_CRV               -1
+#define COSE_KEY_PARAM_X_COORDINATE      -2
+#define COSE_KEY_PARAM_Y_COORDINATE      -3
+#define COSE_ALGORITHM_ES256             -7
+#define COSE_ALG_SHA256_PROPRIETARY      -72000
+
+/**
+ * The size of X and Y coordinate in 2 parameter style EC public
+ * key. Format is as defined in [COSE (RFC 8152)]
+ * (https://tools.ietf.org/html/rfc8152) and [SEC 1: Elliptic Curve
+ * Cryptography](http://www.secg.org/sec1-v2.pdf).
+ *
+ * This size is well-known and documented in public standards.
+ */
+#define T_COSE_CRYPTO_EC_P256_COORD_SIZE  32
+#define T_COSE_CRYPTO_SHA256_SIZE         32
+
+#define MAX_ENCODED_COSE_KEY_SIZE \
+    1 + /* 1 byte to encode map */ \
+    2 + /* 2 bytes to encode key type */ \
+    2 + /* 2 bytes to encode curve */ \
+    2 * /* the X and Y coordinates at 32 bytes each */ \
+        (T_COSE_CRYPTO_EC_P256_COORD_SIZE + 1 + 2)
+#define USEFUL_BUF_MAKE_STACK_UB UsefulBuf_MAKE_STACK_UB
+
+#define COSE_SIG_CONTEXT_STRING_SIGNATURE1 "Signature1"
+
+/* Private value. Intentionally not documented for Doxygen.
+ * This is the size allocated for the encoded protected headers.  It
+ * needs to be big enough for make_protected_header() to succeed. It
+ * currently sized for one header with an algorithm ID up to 32 bits
+ * long -- one byte for the wrapping map, one byte for the label, 5
+ * bytes for the ID. If this is made accidentially too small, QCBOR will
+ * only return an error, and not overrun any buffers.
+ *
+ * 9 extra bytes are added, rounding it up to 16 total, in case some
+ * other protected header is to be added.
+ */
+#define T_COSE_SIGN1_MAX_PROT_HEADER (1+1+5+9)
+
+/**
+ * This is the size of the first part of the CBOR encoded TBS
+ * bytes. It is around 20 bytes. See create_tbs_hash().
+ */
+#define T_COSE_SIZE_OF_TBS \
+    1 + /* For opening the array */ \
+    sizeof(COSE_SIG_CONTEXT_STRING_SIGNATURE1) + /* "Signature1" */ \
+    2 + /* Overhead for encoding string */ \
+    T_COSE_SIGN1_MAX_PROT_HEADER + /* entire protected headers */ \
+    3 * ( /* 3 NULL bstrs for fields not used */ \
+        1 /* size of a NULL bstr */  \
+    )
+
+/*
+ CBOR Label for proprietary header indicating short-circuit
+ signing was used. Just a random number in the proprietary
+ label space */
+#define T_COSE_SHORT_CIRCUIT_LABEL              (-8675309)
+
+#define EAT_CBOR_ARM_RANGE_BASE                 (-75000)
+#define EAT_CBOR_ARM_LABEL_PROFILE_DEFINITION   (EAT_CBOR_ARM_RANGE_BASE - 0)
+#define EAT_CBOR_ARM_LABEL_CLIENT_ID            (EAT_CBOR_ARM_RANGE_BASE - 1)
+#define EAT_CBOR_ARM_LABEL_SECURITY_LIFECYCLE   (EAT_CBOR_ARM_RANGE_BASE - 2)
+#define EAT_CBOR_ARM_LABEL_IMPLEMENTATION_ID    (EAT_CBOR_ARM_RANGE_BASE - 3)
+#define EAT_CBOR_ARM_LABEL_BOOT_SEED            (EAT_CBOR_ARM_RANGE_BASE - 4)
+#define EAT_CBOR_ARM_LABEL_HW_VERSION           (EAT_CBOR_ARM_RANGE_BASE - 5)
+#define EAT_CBOR_ARM_LABEL_SW_COMPONENTS        (EAT_CBOR_ARM_RANGE_BASE - 6)
+#define EAT_CBOR_ARM_LABEL_NO_SW_COMPONENTS     (EAT_CBOR_ARM_RANGE_BASE - 7)
+#define EAT_CBOR_ARM_LABEL_NONCE                (EAT_CBOR_ARM_RANGE_BASE - 8)
+#define EAT_CBOR_ARM_LABEL_UEID                 (EAT_CBOR_ARM_RANGE_BASE - 9)
+#define EAT_CBOR_ARM_LABEL_ORIGINATION          (EAT_CBOR_ARM_RANGE_BASE - 10)
+
+#define CBOR_ARM_TOTAL_CLAIM_INSTANCE           10
+
+#define EAT_CBOR_SW_COMPONENT_TYPE              (1u)
+#define EAT_CBOR_SW_COMPONENT_MEASUREMENT       (2u)
+#define EAT_CBOR_SW_COMPONENT_EPOCH             (3u)
+#define EAT_CBOR_SW_COMPONENT_VERSION           (4u)
+#define EAT_CBOR_SW_COMPONENT_SIGNER_ID         (5u)
+#define EAT_CBOR_SW_COMPONENT_MEASUREMENT_DESC  (6u)
+
+#define MANDATORY_CLAIM_WITH_SW_COMP           (1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_NONCE)              |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_UEID)               |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_IMPLEMENTATION_ID)  |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_CLIENT_ID)          |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_SECURITY_LIFECYCLE) |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_BOOT_SEED)          |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_SW_COMPONENTS))
+
+#define MANDATORY_CLAIM_NO_SW_COMP             (1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_NONCE)              |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_UEID)               |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_IMPLEMENTATION_ID)  |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_CLIENT_ID)          |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_SECURITY_LIFECYCLE) |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_BOOT_SEED)          |     \
+                                                1 << (EAT_CBOR_ARM_RANGE_BASE                      \
+                                                    - EAT_CBOR_ARM_LABEL_NO_SW_COMPONENTS))
+
+#define MANDATORY_SW_COMP                      (1 << EAT_CBOR_SW_COMPONENT_MEASUREMENT      |     \
+                                                1 << EAT_CBOR_SW_COMPONENT_SIGNER_ID)
+
+#define NULL_USEFUL_BUF_C  NULLUsefulBufC
+
+enum attestation_error_code {
+    PAL_ATTEST_SUCCESS = 0,
+    PAL_ATTEST_TOKEN_ERR_CBOR_FORMATTING = PAL_ATTEST_MIN_ERROR,
+    PAL_ATTEST_TOKEN_CHALLENGE_MISMATCH,
+    PAL_ATTEST_TOKEN_NOT_SUPPORTED,
+    PAL_ATTEST_TOKEN_NOT_ALL_MANDATORY_CLAIMS,
+    PAL_ATTEST_HASH_LENGTH_MISMATCH,
+    PAL_ATTEST_HASH_MISMATCH,
+    PAL_ATTEST_HASH_FAIL,
+    PAL_ATTEST_HASH_UNSUPPORTED,
+    PAL_ATTEST_HASH_BUFFER_SIZE,
+    PAL_ATTEST_ERR_PROTECTED_HEADERS,
+    PAL_ATTEST_ERR_SIGN_STRUCT,
+    PAL_ATTEST_ERROR,
+};
+
+struct items_to_get_t {
+    int64_t label;
+    QCBORItem item;
+};
+
+int32_t pal_initial_attest_verify_token(uint8_t *challenge, uint32_t challenge_size,
+                                        uint8_t *token, uint32_t token_size);
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_empty_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_empty_intf.c
new file mode 100644
index 0000000..faf3f49
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_empty_intf.c
@@ -0,0 +1,30 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include <stdarg.h>
+#include "pal_common.h"
+
+/**
+    @brief    - This API will call the requested attestation function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+int32_t pal_attestation_function(int type, va_list valist)
+{
+    return PAL_STATUS_ERROR;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c
new file mode 100644
index 0000000..2d99f74
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c
@@ -0,0 +1,54 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+
+#include "pal_attestation_intf.h"
+
+/**
+    @brief    - This API will call the requested attestation function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+int32_t pal_attestation_function(int type, va_list valist)
+{
+    uint8_t     *challenge, *token;
+    uint32_t    challenge_size, *token_size, verify_token_size;
+
+    switch (type)
+    {
+        case PAL_INITIAL_ATTEST_GET_TOKEN:
+            challenge = va_arg(valist, uint8_t*);
+            challenge_size = va_arg(valist, uint32_t);
+            token = va_arg(valist, uint8_t*);
+            token_size = va_arg(valist, uint32_t*);
+            return psa_initial_attest_get_token(challenge, challenge_size, token, token_size);
+        case PAL_INITIAL_ATTEST_GET_TOKEN_SIZE:
+            challenge_size = va_arg(valist, uint32_t);
+            token_size = va_arg(valist, uint32_t*);
+            return psa_initial_attest_get_token_size(challenge_size, token_size);
+        case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
+            challenge = va_arg(valist, uint8_t*);
+            challenge_size = va_arg(valist, uint32_t);
+            token = va_arg(valist, uint8_t*);
+            verify_token_size = va_arg(valist, uint32_t);
+            return pal_initial_attest_verify_token(challenge, challenge_size,
+                                                   token, verify_token_size);
+        default:
+            return PAL_STATUS_UNSUPPORTED_FUNC;
+    }
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.h
new file mode 100644
index 0000000..12f6ee9
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.h
@@ -0,0 +1,30 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_INITIAL_ATTESTATION_H_
+#define _PAL_INITIAL_ATTESTATION_H_
+
+#include "pal_attestation_crypto.h"
+
+enum attestation_function_code {
+    PAL_INITIAL_ATTEST_GET_TOKEN        = 0x1,
+    PAL_INITIAL_ATTEST_GET_TOKEN_SIZE   = 0x2,
+    PAL_INITIAL_ATTEST_VERIFY_TOKEN     = 0x3,
+};
+
+int32_t pal_attestation_function(int type, va_list valist);
+#endif /* _PAL_INITIAL_ATTESTATION_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_empty_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_empty_intf.c
new file mode 100644
index 0000000..133cfa9
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_empty_intf.c
@@ -0,0 +1,30 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include <stdarg.h>
+#include "pal_common.h"
+
+/**
+    @brief    - This API will call the requested internal trusted storage function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+uint32_t pal_its_function(int type, va_list valist)
+{
+    return PAL_STATUS_ERROR;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
new file mode 100644
index 0000000..4f04ab0
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
@@ -0,0 +1,60 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+
+#include "pal_internal_trusted_storage_intf.h"
+
+/**
+    @brief    - This API will call the requested internal trusted storage function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+uint32_t pal_its_function(int type, va_list valist)
+{
+    psa_its_uid_t           uid;
+    uint32_t                data_length, offset;
+    const void              *p_write_data;
+    void                    *p_read_data;
+    psa_its_create_flags_t  its_create_flags;
+    struct psa_its_info_t   *its_p_info;
+
+    switch (type)
+    {
+    case PAL_ITS_SET:
+        uid = va_arg(valist, psa_its_uid_t);
+        data_length = va_arg(valist, uint32_t);
+        p_write_data = va_arg(valist, const void*);
+        its_create_flags = va_arg(valist, psa_its_create_flags_t);
+        return psa_its_set(uid, data_length, p_write_data, its_create_flags);
+    case PAL_ITS_GET:
+        uid = va_arg(valist, psa_its_uid_t);
+        offset = va_arg(valist, uint32_t);
+        data_length = va_arg(valist, uint32_t);
+        p_read_data = va_arg(valist, void*);
+        return psa_its_get(uid, offset, data_length, p_read_data);
+    case PAL_ITS_GET_INFO:
+        uid = va_arg(valist, psa_its_uid_t);
+        its_p_info = va_arg(valist, struct psa_its_info_t*);
+        return psa_its_get_info(uid, its_p_info);
+    case PAL_ITS_REMOVE:
+        uid = va_arg(valist, psa_its_uid_t);
+        return psa_its_remove(uid);
+    default:
+        return PAL_STATUS_UNSUPPORTED_FUNC;
+    }
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.h
new file mode 100644
index 0000000..6db6aac
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.h
@@ -0,0 +1,31 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_INTERNAL_TRUSTED_STORAGE_INTF_H_
+#define _PAL_INTERNAL_TRUSTED_STORAGE_INTF_H_
+
+#include "pal_common.h"
+
+enum its_function_code {
+    PAL_ITS_SET                         = 0x1,
+    PAL_ITS_GET                         = 0x2,
+    PAL_ITS_GET_INFO                    = 0x3,
+    PAL_ITS_REMOVE                      = 0x4,
+};
+
+uint32_t pal_its_function(int type, va_list valist);
+#endif /* _PAL_INTERNAL_TRUSTED_STORAGE_INTF_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_empty_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_empty_intf.c
new file mode 100644
index 0000000..ee9b13d
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_empty_intf.c
@@ -0,0 +1,30 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#include <stdarg.h>
+#include "pal_common.h"
+
+/**
+    @brief    - This API will call the requested protected storage function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+uint32_t pal_ps_function(int type, va_list valist)
+{
+    return PAL_STATUS_ERROR;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.c
new file mode 100644
index 0000000..a424153
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.c
@@ -0,0 +1,75 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+
+#include "pal_protected_storage_intf.h"
+
+/**
+    @brief    - This API will call the requested protected storage function
+    @param    - type    : function code
+                valist  : variable argument list
+    @return   - error status
+**/
+uint32_t pal_ps_function(int type, va_list valist)
+{
+    psa_ps_uid_t            uid;
+    uint32_t                data_length, size, offset;
+    const void              *p_write_data;
+    void                    *p_read_data;
+    psa_ps_create_flags_t   ps_create_flags;
+    struct psa_ps_info_t    *ps_p_info;
+
+    switch (type)
+    {
+     case PAL_PS_SET:
+         uid = va_arg(valist, psa_ps_uid_t);
+         data_length = va_arg(valist, uint32_t);
+         p_write_data = va_arg(valist, const void*);
+         ps_create_flags = va_arg(valist, psa_ps_create_flags_t);
+         return psa_ps_set(uid, data_length, p_write_data, ps_create_flags);
+     case PAL_PS_GET:
+         uid = va_arg(valist, psa_ps_uid_t);
+         offset = va_arg(valist, uint32_t);
+         data_length = va_arg(valist, uint32_t);
+         p_read_data = va_arg(valist, void*);
+         return psa_ps_get(uid, offset, data_length, p_read_data);
+     case PAL_PS_GET_INFO:
+         uid = va_arg(valist, psa_ps_uid_t);
+         ps_p_info = va_arg(valist, struct psa_ps_info_t*);
+         return psa_ps_get_info(uid, ps_p_info);
+     case PAL_PS_REMOVE:
+         uid = va_arg(valist, psa_ps_uid_t);
+         return psa_ps_remove(uid);
+     case PAL_PS_CREATE:
+         uid = va_arg(valist, psa_ps_uid_t);
+         size = va_arg(valist, uint32_t);
+         ps_create_flags = va_arg(valist, psa_ps_create_flags_t);
+         return psa_ps_create(uid, size, ps_create_flags);
+     case PAL_PS_SET_EXTENDED:
+         uid = va_arg(valist, psa_ps_uid_t);
+         offset = va_arg(valist, uint32_t);
+         data_length = va_arg(valist, uint32_t);
+         p_write_data = va_arg(valist, const void*);
+         return psa_ps_set_extended(uid, offset, data_length, p_write_data);
+     case PAL_PS_GET_SUPPORT:
+         return psa_ps_get_support();
+    default:
+        return PAL_STATUS_UNSUPPORTED_FUNC;
+    }
+
+    return PAL_STATUS_UNSUPPORTED_FUNC;
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.h
new file mode 100644
index 0000000..a338cdf
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/protected_storage/pal_protected_storage_intf.h
@@ -0,0 +1,34 @@
+/** @file
+ * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * SPDX-License-Identifier : Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+**/
+
+#ifndef _PAL_PROTECTED_STORAGE_INTF_H_
+#define _PAL_PROTECTED_STORAGE_INTF_H_
+
+#include "pal_common.h"
+
+enum ps_function_code {
+    PAL_PS_SET                          = 0x1,
+    PAL_PS_GET                          = 0x2,
+    PAL_PS_GET_INFO                     = 0x3,
+    PAL_PS_REMOVE                       = 0x4,
+    PAL_PS_CREATE                       = 0x5,
+    PAL_PS_SET_EXTENDED                 = 0x6,
+    PAL_PS_GET_SUPPORT                  = 0x7,
+};
+
+uint32_t pal_ps_function(int type, va_list valist);
+#endif /* _PAL_PROTECTED_STORAGE_INTF_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.c
new file mode 100644
index 0000000..fd30783
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.c
@@ -0,0 +1,132 @@
+ /** @file
+  * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+  * SPDX-License-Identifier : Apache-2.0
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *  http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+ **/
+
+#include "pal_driver_intf.h"
+
+/**
+    @brief    - This function initializes the UART
+    @param    - uart base addr
+    @return   - void
+**/
+void pal_uart_init(uint32_t uart_base_addr)
+{
+    pal_uart_cmsdk_init(uart_base_addr);
+}
+
+/**
+    @brief    - This function parses the input string and writes bytes into UART TX FIFO
+    @param    - str      : Input String
+              - data     : Value for format specifier
+**/
+
+void pal_print(char *str, int32_t data)
+{
+  pal_cmsdk_print(str,data);
+
+}
+
+
+/**
+    @brief    - Writes into given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - 1/0
+**/
+int pal_nvmem_write(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    return nvmem_write(base, offset, buffer, size);
+}
+
+/**
+    @brief    - Reads from given non-volatile address.
+    @param    - base    : Base address of nvmem
+                offset  : Offset
+                buffer  : Pointer to source address
+                size    : Number of bytes
+    @return   - 1/0
+**/
+int pal_nvmem_read(addr_t base, uint32_t offset, void *buffer, int size)
+{
+    return nvmem_read(base, offset, buffer, size);
+}
+
+
+/**
+    @brief           - Initializes an hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+                     - time_us         : Time in micro seconds
+                     - timer_tick_us   : Number of ticks per micro second
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_init(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us)
+{
+    return(pal_wd_cmsdk_init(base_addr,time_us, timer_tick_us));
+
+}
+
+/**
+    @brief           - Enables a hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_enable(addr_t base_addr)
+{
+    return(pal_wd_cmsdk_enable(base_addr));
+}
+
+/**
+    @brief           - Disables a hardware watchdog timer
+    @param           - base_addr       : Base address of the watchdog module
+    @return          - SUCCESS/FAILURE
+**/
+int pal_wd_timer_disable(addr_t base_addr)
+{
+    return (pal_wd_cmsdk_disable(base_addr));
+}
+
+/**
+    @brief           - Checks whether hardware watchdog timer is enabled
+    @param           - base_addr       : Base address of the watchdog module
+    @return          - Enabled : 1, Disabled : 0
+**/
+int pal_wd_timer_is_enabled(addr_t base_addr)
+{
+    return (pal_wd_cmsdk_is_enabled(base_addr));
+}
+
+/**
+    @brief   - Trigger interrupt for irq signal assigned to driver partition
+               before return to caller.
+    @param   - void
+    @return  - void
+**/
+void pal_generate_interrupt(void)
+{
+    pal_uart_cmsdk_generate_irq();
+}
+
+/**
+    @brief   - Disable interrupt that was generated using pal_generate_interrupt API.
+    @param   - void
+    @return  - void
+**/
+void pal_disable_interrupt(void)
+{
+    pal_uart_cmsdk_disable_irq();
+}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.h
new file mode 100644
index 0000000..cef34ca
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/spe/pal_driver_intf.h
@@ -0,0 +1,35 @@
+ /** @file
+  * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+  * SPDX-License-Identifier : Apache-2.0
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *  http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+ **/
+
+#ifndef _PAL_DRIVER_INTF_H_
+#define _PAL_DRIVER_INTF_H_
+
+#include "pal_uart.h"
+#include "pal_nvmem.h"
+#include "pal_wd_cmsdk.h"
+
+void pal_uart_init(uint32_t uart_base_addr);
+void pal_print(char *str, int32_t data);
+int pal_nvmem_write(addr_t base, uint32_t offset, void *buffer, int size);
+int pal_nvmem_read(addr_t base, uint32_t offset, void *buffer, int size);
+int pal_wd_timer_init(addr_t base_addr, uint32_t time_us, uint32_t timer_tick_us);
+int pal_wd_timer_enable(addr_t base_addr);
+int pal_wd_timer_disable(addr_t base_addr);
+int pal_wd_timer_is_enabled(addr_t base_addr);
+void pal_generate_interrupt(void);
+void pal_disable_interrupt(void);
+#endif /* _PAL_DRIVER_INTF_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cfg b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cfg
new file mode 100644
index 0000000..a8f3700
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cfg
@@ -0,0 +1,57 @@
+///** @file
+// * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+// * SPDX-License-Identifier : Apache-2.0
+// *
+// * Licensed under the Apache License, Version 2.0 (the "License");
+// * you may not use this file except in compliance with the License.
+// * You may obtain a copy of the License at
+// *
+// *  http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing, software
+// * distributed under the License is distributed on an "AS IS" BASIS,
+// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// * See the License for the specific language governing permissions and
+// * limitations under the License.
+//**/
+
+// UART device info
+uart.num=1;
+uart.0.base = 0x41303000; // UART0_NS
+uart.0.size = 0xFFF;
+uart.0.intr_id = 0xFF;
+uart.0.permission = TYPE_READ_WRITE;
+
+// Watchdog device info
+watchdog.num = 1;
+watchdog.0.base = 0x40081000;
+watchdog.0.size = 0xFFF;
+watchdog.0.intr_id = 0xFF;
+watchdog.0.permission = TYPE_READ_WRITE;
+watchdog.0.num_of_tick_per_micro_sec = 0x3;         //(sys_feq/1000000)
+watchdog.0.timeout_in_micro_sec_low = 0xF4240;      //1.0  sec :  1 * 1000 * 1000
+watchdog.0.timeout_in_micro_sec_medium = 0x1E8480;  //2.0  sec :  2 * 1000 * 1000
+watchdog.0.timeout_in_micro_sec_high = 0x4C4B40;    //5.0  sec :  5 * 1000 * 1000
+watchdog.0.timeout_in_micro_sec_crypto = 0x1312D00; //18.0 sec : 18 * 1000 * 1000
+
+// Range of 1KB Non-volatile memory to preserve data over reset. Ex, NVRAM and FLASH
+nvmem.num =1;
+nvmem.0.start = 0x20018000;
+nvmem.0.end = 0x200183FF;
+nvmem.0.permission = TYPE_READ_WRITE;
+
+// Miscellaneous - Test scatter info
+dut.num = 1;
+
+// Start address of 12KB NS memory for test ELF
+dut.0.ns_test_addr = 0x28110000;
+
+// Start address of combine_test_binary in memory. Memory can be main memory or secondary memory.
+// Size of combine_test_binary = Summation of size of each test ELF file.
+dut.0.ns_start_addr_of_combine_test_binary = 0x28120000;
+
+// Is combine_test_binary available in RAM?
+dut.0.combine_test_binary_in_ram = AVAILABLE;
+
+// Level of Isolation
+dut.0.implemented_psa_firmware_isolation_level = LEVEL1;
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cmake b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cmake
new file mode 100644
index 0000000..5c5c942
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/Makefile b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/Makefile
deleted file mode 100644
index aa7e10b..0000000
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/Makefile
+++ /dev/null
@@ -1,160 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-# Make variables to select correct instances of PAL files
-
-## PSA_IPC_IMPLEMENTED must be true for IPC SUITE
-PSA_IPC_IMPLEMENTED:=0
-
-## PSA_CRYPTO_IMPLEMENTED must be true for CRYPTO SUITE
-PSA_CRYPTO_IMPLEMENTED:=1
-
-## PSA_PROTECTED_STORAGE_IMPLEMENTED must be true for PROTECTED_STORAGE SUITE
-PSA_PROTECTED_STORAGE_IMPLEMENTED:=1
-
-## PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be true for INTERNAL_TRUSTED_STORAGE SUITE
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INITIAL_ATTESTATION_IMPLEMENTED must be true for INITIAL_ATTESTATION SUITE
-PSA_INITIAL_ATTESTATION_IMPLEMENTED:=1
-
-# Make variables holding NSPE/SPE source files
-
-## PAL C source files part of NSPE library
-SRC_C_NSPE=
-
-## PAL ASM source files part of NSPE library
-SRC_ASM_NSPE=
-
-## PAL C source files part of SPE library - driver partition
-SRC_C_DRIVER_SP=
-
-## PAL ASM source files part of SPE library - driver partition
-SRC_ASM_DRIVER_SP=
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-# When PSA_IPC_IMPLEMENTED=1, driver functionalities are implemented as RoT-services
-# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
-SRC_C_NSPE += pal_client_api_intf.c
-SRC_C_NSPE += pal_driver_ipc_intf.c
-
-# Driver files will be compiled as part of driver partition
-SRC_C_DRIVER_SP += pal_driver_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-else
-
-# When PSA_IPC_IMPLEMENTED=0, driver files will be compiled as part of NSPE
-SRC_C_NSPE += pal_client_api_empty_intf.c
-SRC_C_NSPE += pal_driver_ns_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED},1)
-SRC_C_NSPE += pal_crypto_intf.c
-else
-SRC_C_NSPE += pal_crypto_empty_intf.c
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_protected_storage_intf.c
-else
-SRC_C_NSPE += pal_protected_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_internal_trusted_storage_intf.c
-else
-SRC_C_NSPE += pal_internal_trusted_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED},1)
-SRC_C_NSPE += pal_attestation_intf.c
-SRC_C_NSPE += pal_attestation_eat.c
-SRC_C_NSPE += pal_attestation_crypto.c
-else
-SRC_C_NSPE += pal_attestation_empty_intf.c
-endif
-
-INCLUDE= -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/drivers/uart/pl011 \
-         -I$(SOURCE)/platform/drivers/nvmem/ \
-         -I$(SOURCE)/platform/drivers/watchdog/cmsdk \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/inc \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage \
-
-VPATH=$(SOURCE)/platform/targets/$(TARGET)/: \
-      $(SOURCE)/platform/targets/$(TARGET)/spe: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe: \
-      $(SOURCE)/platform/drivers/uart/pl011: \
-      $(SOURCE)/platform/drivers/nvmem: \
-      $(SOURCE)/platform/drivers/watchdog/cmsdk: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/common: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/crypto: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/src: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage: \
-
-all: build
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-build: mkdir build_nspe_pal build_spe_pal
-else
-build: mkdir build_nspe_pal
-endif
-
-mkdir:
-	@mkdir -p $(BUILD)/platform/nspe/
-	@mkdir -p $(BUILD)/platform/spe/
-
-# BUILD NSPE PAL
-build_nspe_pal: build_c_nspe build_asm_nspe pal_nspe.a
-
-build_c_nspe: $(SRC_C_NSPE:%.c=$(BUILD)/platform/nspe/%.o)
-build_asm_nspe: $(SRC_ASM_NSPE:%.s=$(BUILD)/platform/nspe/%.o)
-
-$(BUILD)/platform/nspe/%.o : %.c
-	$(CC) $(PAL_CDEFS) $(INCLUDE) -o $@ -c $<
-
-$(BUILD)/platform/nspe/%.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-pal_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/platform/pal_nspe.a $(BUILD)/platform/nspe/*.o
-
-# BUILD SPE PAL
-build_spe_pal: build_driver_sp
-
-build_driver_sp: build_c_driver_sp build_asm_driver_sp
-
-build_c_driver_sp: $(SRC_C_DRIVER_SP:%.c=$(BUILD)/platform/spe/%_driver_sp.o)
-build_asm_driver_sp: $(SRC_ASM_DRIVER_SP:%.s=$(BUILD)/platform/spe/%_driver_sp.o)
-
-# Generated %_driver_sp.o(s) are used in spbuild.mk to create final driver_partition.a
-$(BUILD)/platform/spe/%_driver_sp.o : %.c
-	$(CC) $(INCLUDE) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/platform/spe/%_driver_sp.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-clean:
-	@rm -rf $(BUILD)/platform/nspe/* $(BUILD)/platform/spe/*.a
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_common.h
index 3ebe1e1..0a63b02 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_common.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_common.h
@@ -24,10 +24,8 @@
 #include <limits.h>
 #include <stdarg.h>
 
-#ifndef TARGET_CFG_BUILD
 #include "pal_config.h"
 #include "pal_crypto_config.h"
-#endif
 
 /* typedef's */
 typedef uint8_t             bool_t;
@@ -87,7 +85,7 @@
  * Redefining some of the client.h elements for compilation to go through
  * when PSA IPC APIs are not implemented.
  */
-#if (PSA_IPC_IMPLEMENTED == 0)
+#ifndef IPC
 
 #ifndef PSA_VERSION_NONE
 #define PSA_VERSION_NONE            (0)
@@ -113,6 +111,6 @@
     size_t len;
 } psa_outvec;
 
-#endif /* PSA_IPC_IMPLEMENTED */
+#endif /* IPC */
 
 #endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_config.h
index e3f70ad..289dc5d 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/common/pal_config.h
@@ -18,66 +18,32 @@
 #ifndef _PAL_CONFIG_H_
 #define _PAL_CONFIG_H_
 
-/*
- * List of macros used by test suite
- */
-#if !defined(PSA_IPC_IMPLEMENTED)
-#define PSA_IPC_IMPLEMENTED 0
-#endif
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
 
-#if !defined(PSA_CRYPTO_IMPLEMENTED)
-#define PSA_CRYPTO_IMPLEMENTED 0
-#endif
+/* Print verbosity = TEST */
+#define VERBOSE 3
 
-#if !defined(PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED)
-#define PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
 
-#if !defined(PSA_PROTECTED_STORAGE_IMPLEMENTED)
-#define PSA_PROTECTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
 
-#if !defined(PSA_INITIAL_ATTESTATION_IMPLEMENTED)
-#define PSA_INITIAL_ATTESTATION_IMPLEMENTED 0
-#endif
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
 
-#if (PSA_IPC_IMPLEMENTED == 0) && \
-    (PSA_CRYPTO_IMPLEMENTED == 0) && \
-    (PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_PROTECTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_INITIAL_ATTESTATION_IMPLEMENTED == 0)
-#error "You must define at least one of these macros to run test suite"
-#endif
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
 
-#if !defined(VERBOSE)
-#define VERBOSE 3 /* Print verbosity = TEST */
-#endif
-
-#if (!defined(VAL_NSPE_BUILD) && !defined(SPE_BUILD))
-#define VAL_NSPE_BUILD 1
-#endif
-
-#if (!defined(NONSECURE_TEST_BUILD) && !defined(SPE_BUILD))
-#define NONSECURE_TEST_BUILD 1
-#endif
-
-#if !defined(TEST_COMBINE_ARCHIVE)
-#define TEST_COMBINE_ARCHIVE 0 /* Combine test archive or binary? */
-#endif
-
-#if !defined(WATCHDOG_AVAILABLE)
-#define WATCHDOG_AVAILABLE 0 /* If zero, skip watchdog programming */
-#endif
-
-#if !defined(SP_HEAP_MEM_SUPP)
-#define SP_HEAP_MEM_SUPP 0 /* Are Dynamic funcs available to secure partition? */
-#endif
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
 
 /*
  * Include of PSA defined Header files
  */
-
-#if PSA_IPC_IMPLEMENTED
+#ifdef IPC
 /* psa/client.h: Contains the PSA Client API elements */
 #include "psa/client.h"
 
@@ -96,22 +62,22 @@
 #include "psa_manifest/pid.h"
 #endif
 
-#if PSA_CRYPTO_IMPLEMENTED
+#ifdef CRYPTO
 /* psa/crypto.h: Contains the PSA Crypto API elements */
 #include "psa/crypto.h"
 #endif
 
-#if PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED
+#ifdef INTERNAL_TRUSTED_STORAGE
 /* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
 #include "psa/internal_trusted_storage.h"
 #endif
 
-#if PSA_PROTECTED_STORAGE_IMPLEMENTED
+#ifdef PROTECTED_STORAGE
 /* psa/protected_storage.h: Contains the PSA PS API elements */
 #include "psa/protected_storage.h"
 #endif
 
-#if PSA_INITIAL_ATTESTATION_IMPLEMENTED
+#ifdef INITIAL_ATTESTATION
 /* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
 #include "psa/initial_attestation.h"
 #endif
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/target.cmake b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/target.cmake
new file mode 100644
index 0000000..7c6628a
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/pl011/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/pl011/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/pl011
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/Makefile b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/Makefile
deleted file mode 100644
index aa7e10b..0000000
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/Makefile
+++ /dev/null
@@ -1,160 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-# Make variables to select correct instances of PAL files
-
-## PSA_IPC_IMPLEMENTED must be true for IPC SUITE
-PSA_IPC_IMPLEMENTED:=0
-
-## PSA_CRYPTO_IMPLEMENTED must be true for CRYPTO SUITE
-PSA_CRYPTO_IMPLEMENTED:=1
-
-## PSA_PROTECTED_STORAGE_IMPLEMENTED must be true for PROTECTED_STORAGE SUITE
-PSA_PROTECTED_STORAGE_IMPLEMENTED:=1
-
-## PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be true for INTERNAL_TRUSTED_STORAGE SUITE
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INITIAL_ATTESTATION_IMPLEMENTED must be true for INITIAL_ATTESTATION SUITE
-PSA_INITIAL_ATTESTATION_IMPLEMENTED:=1
-
-# Make variables holding NSPE/SPE source files
-
-## PAL C source files part of NSPE library
-SRC_C_NSPE=
-
-## PAL ASM source files part of NSPE library
-SRC_ASM_NSPE=
-
-## PAL C source files part of SPE library - driver partition
-SRC_C_DRIVER_SP=
-
-## PAL ASM source files part of SPE library - driver partition
-SRC_ASM_DRIVER_SP=
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-# When PSA_IPC_IMPLEMENTED=1, driver functionalities are implemented as RoT-services
-# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
-SRC_C_NSPE += pal_client_api_intf.c
-SRC_C_NSPE += pal_driver_ipc_intf.c
-
-# Driver files will be compiled as part of driver partition
-SRC_C_DRIVER_SP += pal_driver_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-else
-
-# When PSA_IPC_IMPLEMENTED=0, driver files will be compiled as part of NSPE
-SRC_C_NSPE += pal_client_api_empty_intf.c
-SRC_C_NSPE += pal_driver_ns_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED},1)
-SRC_C_NSPE += pal_crypto_intf.c
-else
-SRC_C_NSPE += pal_crypto_empty_intf.c
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_protected_storage_intf.c
-else
-SRC_C_NSPE += pal_protected_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_internal_trusted_storage_intf.c
-else
-SRC_C_NSPE += pal_internal_trusted_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED},1)
-SRC_C_NSPE += pal_attestation_intf.c
-SRC_C_NSPE += pal_attestation_eat.c
-SRC_C_NSPE += pal_attestation_crypto.c
-else
-SRC_C_NSPE += pal_attestation_empty_intf.c
-endif
-
-INCLUDE= -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/drivers/uart/pl011 \
-         -I$(SOURCE)/platform/drivers/nvmem/ \
-         -I$(SOURCE)/platform/drivers/watchdog/cmsdk \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/inc \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage \
-
-VPATH=$(SOURCE)/platform/targets/$(TARGET)/: \
-      $(SOURCE)/platform/targets/$(TARGET)/spe: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe: \
-      $(SOURCE)/platform/drivers/uart/pl011: \
-      $(SOURCE)/platform/drivers/nvmem: \
-      $(SOURCE)/platform/drivers/watchdog/cmsdk: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/common: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/crypto: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/src: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage: \
-
-all: build
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-build: mkdir build_nspe_pal build_spe_pal
-else
-build: mkdir build_nspe_pal
-endif
-
-mkdir:
-	@mkdir -p $(BUILD)/platform/nspe/
-	@mkdir -p $(BUILD)/platform/spe/
-
-# BUILD NSPE PAL
-build_nspe_pal: build_c_nspe build_asm_nspe pal_nspe.a
-
-build_c_nspe: $(SRC_C_NSPE:%.c=$(BUILD)/platform/nspe/%.o)
-build_asm_nspe: $(SRC_ASM_NSPE:%.s=$(BUILD)/platform/nspe/%.o)
-
-$(BUILD)/platform/nspe/%.o : %.c
-	$(CC) $(PAL_CDEFS) $(INCLUDE) -o $@ -c $<
-
-$(BUILD)/platform/nspe/%.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-pal_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/platform/pal_nspe.a $(BUILD)/platform/nspe/*.o
-
-# BUILD SPE PAL
-build_spe_pal: build_driver_sp
-
-build_driver_sp: build_c_driver_sp build_asm_driver_sp
-
-build_c_driver_sp: $(SRC_C_DRIVER_SP:%.c=$(BUILD)/platform/spe/%_driver_sp.o)
-build_asm_driver_sp: $(SRC_ASM_DRIVER_SP:%.s=$(BUILD)/platform/spe/%_driver_sp.o)
-
-# Generated %_driver_sp.o(s) are used in spbuild.mk to create final driver_partition.a
-$(BUILD)/platform/spe/%_driver_sp.o : %.c
-	$(CC) $(INCLUDE) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/platform/spe/%_driver_sp.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-clean:
-	@rm -rf $(BUILD)/platform/nspe/* $(BUILD)/platform/spe/*.a
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_common.h
index 3ebe1e1..0a63b02 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_common.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_common.h
@@ -24,10 +24,8 @@
 #include <limits.h>
 #include <stdarg.h>
 
-#ifndef TARGET_CFG_BUILD
 #include "pal_config.h"
 #include "pal_crypto_config.h"
-#endif
 
 /* typedef's */
 typedef uint8_t             bool_t;
@@ -87,7 +85,7 @@
  * Redefining some of the client.h elements for compilation to go through
  * when PSA IPC APIs are not implemented.
  */
-#if (PSA_IPC_IMPLEMENTED == 0)
+#ifndef IPC
 
 #ifndef PSA_VERSION_NONE
 #define PSA_VERSION_NONE            (0)
@@ -113,6 +111,6 @@
     size_t len;
 } psa_outvec;
 
-#endif /* PSA_IPC_IMPLEMENTED */
+#endif /* IPC */
 
 #endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_config.h
index e3f70ad..289dc5d 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/common/pal_config.h
@@ -18,66 +18,32 @@
 #ifndef _PAL_CONFIG_H_
 #define _PAL_CONFIG_H_
 
-/*
- * List of macros used by test suite
- */
-#if !defined(PSA_IPC_IMPLEMENTED)
-#define PSA_IPC_IMPLEMENTED 0
-#endif
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
 
-#if !defined(PSA_CRYPTO_IMPLEMENTED)
-#define PSA_CRYPTO_IMPLEMENTED 0
-#endif
+/* Print verbosity = TEST */
+#define VERBOSE 3
 
-#if !defined(PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED)
-#define PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
 
-#if !defined(PSA_PROTECTED_STORAGE_IMPLEMENTED)
-#define PSA_PROTECTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
 
-#if !defined(PSA_INITIAL_ATTESTATION_IMPLEMENTED)
-#define PSA_INITIAL_ATTESTATION_IMPLEMENTED 0
-#endif
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
 
-#if (PSA_IPC_IMPLEMENTED == 0) && \
-    (PSA_CRYPTO_IMPLEMENTED == 0) && \
-    (PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_PROTECTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_INITIAL_ATTESTATION_IMPLEMENTED == 0)
-#error "You must define at least one of these macros to run test suite"
-#endif
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
 
-#if !defined(VERBOSE)
-#define VERBOSE 3 /* Print verbosity = TEST */
-#endif
-
-#if (!defined(VAL_NSPE_BUILD) && !defined(SPE_BUILD))
-#define VAL_NSPE_BUILD 1
-#endif
-
-#if (!defined(NONSECURE_TEST_BUILD) && !defined(SPE_BUILD))
-#define NONSECURE_TEST_BUILD 1
-#endif
-
-#if !defined(TEST_COMBINE_ARCHIVE)
-#define TEST_COMBINE_ARCHIVE 0 /* Combine test archive or binary? */
-#endif
-
-#if !defined(WATCHDOG_AVAILABLE)
-#define WATCHDOG_AVAILABLE 0 /* If zero, skip watchdog programming */
-#endif
-
-#if !defined(SP_HEAP_MEM_SUPP)
-#define SP_HEAP_MEM_SUPP 0 /* Are Dynamic funcs available to secure partition? */
-#endif
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
 
 /*
  * Include of PSA defined Header files
  */
-
-#if PSA_IPC_IMPLEMENTED
+#ifdef IPC
 /* psa/client.h: Contains the PSA Client API elements */
 #include "psa/client.h"
 
@@ -96,22 +62,22 @@
 #include "psa_manifest/pid.h"
 #endif
 
-#if PSA_CRYPTO_IMPLEMENTED
+#ifdef CRYPTO
 /* psa/crypto.h: Contains the PSA Crypto API elements */
 #include "psa/crypto.h"
 #endif
 
-#if PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED
+#ifdef INTERNAL_TRUSTED_STORAGE
 /* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
 #include "psa/internal_trusted_storage.h"
 #endif
 
-#if PSA_PROTECTED_STORAGE_IMPLEMENTED
+#ifdef PROTECTED_STORAGE
 /* psa/protected_storage.h: Contains the PSA PS API elements */
 #include "psa/protected_storage.h"
 #endif
 
-#if PSA_INITIAL_ATTESTATION_IMPLEMENTED
+#ifdef INITIAL_ATTESTATION
 /* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
 #include "psa/initial_attestation.h"
 #endif
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/target.cmake b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/target.cmake
new file mode 100644
index 0000000..7c6628a
--- /dev/null
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/pl011/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/pl011/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/pl011
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/Makefile b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/Makefile
deleted file mode 100644
index 894cec4..0000000
--- a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/Makefile
+++ /dev/null
@@ -1,160 +0,0 @@
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-# Make variables to select correct instances of PAL files
-
-## PSA_IPC_IMPLEMENTED must be true for IPC SUITE
-PSA_IPC_IMPLEMENTED:=1
-
-## PSA_CRYPTO_IMPLEMENTED must be true for CRYPTO SUITE
-PSA_CRYPTO_IMPLEMENTED:=0
-
-## PSA_PROTECTED_STORAGE_IMPLEMENTED must be true for PROTECTED_STORAGE SUITE
-PSA_PROTECTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be true for INTERNAL_TRUSTED_STORAGE SUITE
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED:=0
-
-## PSA_INITIAL_ATTESTATION_IMPLEMENTED must be true for INITIAL_ATTESTATION SUITE
-PSA_INITIAL_ATTESTATION_IMPLEMENTED:=0
-
-# Make variables holding NSPE/SPE source files
-
-## PAL C source files part of NSPE library
-SRC_C_NSPE=
-
-## PAL ASM source files part of NSPE library
-SRC_ASM_NSPE=
-
-## PAL C source files part of SPE library - driver partition
-SRC_C_DRIVER_SP=
-
-## PAL ASM source files part of SPE library - driver partition
-SRC_ASM_DRIVER_SP=
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-# When PSA_IPC_IMPLEMENTED=1, driver functionalities are implemented as RoT-services
-# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
-SRC_C_NSPE += pal_client_api_intf.c
-SRC_C_NSPE += pal_driver_ipc_intf.c
-
-# Driver files will be compiled as part of driver partition
-SRC_C_DRIVER_SP += pal_driver_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-else
-
-# When PSA_IPC_IMPLEMENTED=0, driver files will be compiled as part of NSPE
-SRC_C_NSPE += pal_client_api_empty_intf.c
-SRC_C_NSPE += pal_driver_ns_intf.c pal_nvmem.c pal_uart.c pal_wd_cmsdk.c
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED},1)
-SRC_C_NSPE += pal_crypto_intf.c
-else
-SRC_C_NSPE += pal_crypto_empty_intf.c
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_protected_storage_intf.c
-else
-SRC_C_NSPE += pal_protected_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED},1)
-SRC_C_NSPE += pal_internal_trusted_storage_intf.c
-else
-SRC_C_NSPE += pal_internal_trusted_storage_empty_intf.c
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED},1)
-SRC_C_NSPE += pal_attestation_intf.c
-SRC_C_NSPE += pal_attestation_eat.c
-SRC_C_NSPE += pal_attestation_crypto.c
-else
-SRC_C_NSPE += pal_attestation_empty_intf.c
-endif
-
-INCLUDE= -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/drivers/uart/cmsdk \
-         -I$(SOURCE)/platform/drivers/nvmem/ \
-         -I$(SOURCE)/platform/drivers/watchdog/cmsdk \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/inc \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage \
-
-VPATH=$(SOURCE)/platform/targets/$(TARGET)/: \
-      $(SOURCE)/platform/targets/$(TARGET)/spe: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe: \
-      $(SOURCE)/platform/drivers/uart/cmsdk: \
-      $(SOURCE)/platform/drivers/nvmem: \
-      $(SOURCE)/platform/drivers/watchdog/cmsdk: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/common: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/crypto: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/initial_attestation/ext/src: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/internal_trusted_storage: \
-      $(SOURCE)/platform/targets/$(TARGET)/nspe/protected_storage: \
-
-all: build
-
-ifeq (${PSA_IPC_IMPLEMENTED},1)
-build: mkdir build_nspe_pal build_spe_pal
-else
-build: mkdir build_nspe_pal
-endif
-
-mkdir:
-	@mkdir -p $(BUILD)/platform/nspe/
-	@mkdir -p $(BUILD)/platform/spe/
-
-# BUILD NSPE PAL
-build_nspe_pal: build_c_nspe build_asm_nspe pal_nspe.a
-
-build_c_nspe: $(SRC_C_NSPE:%.c=$(BUILD)/platform/nspe/%.o)
-build_asm_nspe: $(SRC_ASM_NSPE:%.s=$(BUILD)/platform/nspe/%.o)
-
-$(BUILD)/platform/nspe/%.o : %.c
-	$(CC) $(PAL_CDEFS) $(INCLUDE) -o $@ -c $<
-
-$(BUILD)/platform/nspe/%.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-pal_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/platform/pal_nspe.a $(BUILD)/platform/nspe/*.o
-
-# BUILD SPE PAL
-build_spe_pal: build_driver_sp
-
-build_driver_sp: build_c_driver_sp build_asm_driver_sp
-
-build_c_driver_sp: $(SRC_C_DRIVER_SP:%.c=$(BUILD)/platform/spe/%_driver_sp.o)
-build_asm_driver_sp: $(SRC_ASM_DRIVER_SP:%.s=$(BUILD)/platform/spe/%_driver_sp.o)
-
-# Generated %_driver_sp.o(s) are used in spbuild.mk to create final driver_partition.a
-$(BUILD)/platform/spe/%_driver_sp.o : %.c
-	$(CC) $(INCLUDE) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/platform/spe/%_driver_sp.o : %.s
-	$(AS) $(INCLUDE) -o $@ $<
-
-clean:
-	@rm -rf $(BUILD)/platform/nspe/* $(BUILD)/platform/spe/*.a
diff --git a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_common.h b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
index 3ebe1e1..0a63b02 100644
--- a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
+++ b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_common.h
@@ -24,10 +24,8 @@
 #include <limits.h>
 #include <stdarg.h>
 
-#ifndef TARGET_CFG_BUILD
 #include "pal_config.h"
 #include "pal_crypto_config.h"
-#endif
 
 /* typedef's */
 typedef uint8_t             bool_t;
@@ -87,7 +85,7 @@
  * Redefining some of the client.h elements for compilation to go through
  * when PSA IPC APIs are not implemented.
  */
-#if (PSA_IPC_IMPLEMENTED == 0)
+#ifndef IPC
 
 #ifndef PSA_VERSION_NONE
 #define PSA_VERSION_NONE            (0)
@@ -113,6 +111,6 @@
     size_t len;
 } psa_outvec;
 
-#endif /* PSA_IPC_IMPLEMENTED */
+#endif /* IPC */
 
 #endif /* _PAL_COMMON_H_ */
diff --git a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_config.h b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
index e3f70ad..289dc5d 100644
--- a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
+++ b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/nspe/common/pal_config.h
@@ -18,66 +18,32 @@
 #ifndef _PAL_CONFIG_H_
 #define _PAL_CONFIG_H_
 
-/*
- * List of macros used by test suite
- */
-#if !defined(PSA_IPC_IMPLEMENTED)
-#define PSA_IPC_IMPLEMENTED 0
-#endif
+/* Define PSA test suite dependent macros for non-cmake build */
+#if !defined(PSA_CMAKE_BUILD)
 
-#if !defined(PSA_CRYPTO_IMPLEMENTED)
-#define PSA_CRYPTO_IMPLEMENTED 0
-#endif
+/* Print verbosity = TEST */
+#define VERBOSE 3
 
-#if !defined(PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED)
-#define PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE VAL build? */
+#define VAL_NSPE_BUILD
 
-#if !defined(PSA_PROTECTED_STORAGE_IMPLEMENTED)
-#define PSA_PROTECTED_STORAGE_IMPLEMENTED 0
-#endif
+/* NSPE or SPE TEST build? */
+#define NONSECURE_TEST_BUILD
 
-#if !defined(PSA_INITIAL_ATTESTATION_IMPLEMENTED)
-#define PSA_INITIAL_ATTESTATION_IMPLEMENTED 0
-#endif
+/* Combine test archive or binary? */
+#define TEST_COMBINE_ARCHIVE
 
-#if (PSA_IPC_IMPLEMENTED == 0) && \
-    (PSA_CRYPTO_IMPLEMENTED == 0) && \
-    (PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_PROTECTED_STORAGE_IMPLEMENTED == 0) && \
-    (PSA_INITIAL_ATTESTATION_IMPLEMENTED == 0)
-#error "You must define at least one of these macros to run test suite"
-#endif
+/* If not defined, skip watchdog programming */
+#define WATCHDOG_AVAILABLE
 
-#if !defined(VERBOSE)
-#define VERBOSE 3 /* Print verbosity = TEST */
-#endif
-
-#if (!defined(VAL_NSPE_BUILD) && !defined(SPE_BUILD))
-#define VAL_NSPE_BUILD 1
-#endif
-
-#if (!defined(NONSECURE_TEST_BUILD) && !defined(SPE_BUILD))
-#define NONSECURE_TEST_BUILD 1
-#endif
-
-#if !defined(TEST_COMBINE_ARCHIVE)
-#define TEST_COMBINE_ARCHIVE 0 /* Combine test archive or binary? */
-#endif
-
-#if !defined(WATCHDOG_AVAILABLE)
-#define WATCHDOG_AVAILABLE 0 /* If zero, skip watchdog programming */
-#endif
-
-#if !defined(SP_HEAP_MEM_SUPP)
-#define SP_HEAP_MEM_SUPP 0 /* Are Dynamic funcs available to secure partition? */
-#endif
+/* Are Dynamic memory APIs available to secure partition? */
+#define SP_HEAP_MEM_SUPP
+#endif /* PSA_CMAKE_BUILD */
 
 /*
  * Include of PSA defined Header files
  */
-
-#if PSA_IPC_IMPLEMENTED
+#ifdef IPC
 /* psa/client.h: Contains the PSA Client API elements */
 #include "psa/client.h"
 
@@ -96,22 +62,22 @@
 #include "psa_manifest/pid.h"
 #endif
 
-#if PSA_CRYPTO_IMPLEMENTED
+#ifdef CRYPTO
 /* psa/crypto.h: Contains the PSA Crypto API elements */
 #include "psa/crypto.h"
 #endif
 
-#if PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED
+#ifdef INTERNAL_TRUSTED_STORAGE
 /* psa/internal_trusted_storage.h: Contains the PSA ITS API elements */
 #include "psa/internal_trusted_storage.h"
 #endif
 
-#if PSA_PROTECTED_STORAGE_IMPLEMENTED
+#ifdef PROTECTED_STORAGE
 /* psa/protected_storage.h: Contains the PSA PS API elements */
 #include "psa/protected_storage.h"
 #endif
 
-#if PSA_INITIAL_ATTESTATION_IMPLEMENTED
+#ifdef INITIAL_ATTESTATION
 /* psa/initial_attestation.h: Contains the PSA Initial Attestation API elements */
 #include "psa/initial_attestation.h"
 #endif
diff --git a/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/target.cmake b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/target.cmake
new file mode 100644
index 0000000..5c5c942
--- /dev/null
+++ b/api-tests/platform/targets/tgt_ff_mbedos_fvp_mps2_m4/target.cmake
@@ -0,0 +1,106 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# PAL C source files part of NSPE library
+list(APPEND PAL_SRC_C_NSPE )
+
+# PAL ASM source files part of NSPE library
+list(APPEND PAL_SRC_ASM_NSPE )
+
+# PAL C source files part of SPE library - driver partition
+list(APPEND PAL_SRC_C_DRIVER_SP )
+
+# PAL ASM source files part of SPE library - driver partition
+list(APPEND PAL_SRC_ASM_DRIVER_SP )
+
+
+# Listing all the sources required for given target
+if(${SUITE} STREQUAL "IPC")
+	list(APPEND PAL_SRC_C_NSPE
+		# driver functionalities are implemented as RoT-services
+		# and secure and non-secure clients will call to these RoT-services to get appropriate driver services.
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ipc_intf.c
+	)
+	list(APPEND PAL_SRC_C_DRIVER_SP
+		# Driver files will be compiled as part of driver partition
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/spe/pal_driver_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+else()
+	list(APPEND PAL_SRC_C_NSPE
+		# driver files will be compiled as part of NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_client_api_empty_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common/pal_driver_ns_intf.c
+		${PSA_ROOT_DIR}/platform/drivers/nvmem/pal_nvmem.c
+		${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk/pal_uart.c
+		${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk/pal_wd_cmsdk.c
+	)
+endif()
+if(${SUITE} STREQUAL "CRYPTO")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto/pal_crypto_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "PROTECTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage/pal_protected_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage/pal_internal_trusted_storage_intf.c
+	)
+endif()
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+	list(APPEND PAL_SRC_C_NSPE
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_intf.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_eat.c
+		${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation/pal_attestation_crypto.c
+	)
+endif()
+
+# Create NSPE library
+add_library(${PSA_TARGET_PAL_NSPE_LIB} STATIC ${PAL_SRC_C_NSPE} ${PAL_SRC_ASM_NSPE})
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+list(APPEND PAL_DRIVER_INCLUDE_PATHS
+	${PSA_ROOT_DIR}/platform/drivers/nvmem
+	${PSA_ROOT_DIR}/platform/drivers/uart/cmsdk
+	${PSA_ROOT_DIR}/platform/drivers/watchdog/cmsdk
+)
+
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PAL_DRIVER_INCLUDE_PATHS}
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/protected_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/internal_trusted_storage
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/initial_attestation
+)
+
+if(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+target_include_directories(${PSA_TARGET_PAL_NSPE_LIB} PRIVATE
+	${PSA_QCBOR_INCLUDE_PATH}
+)
+endif()
diff --git a/api-tests/dev_apis/crypto/test_c021/source.mk b/api-tests/tools/cmake/common/CMakeSettings.cmake
similarity index 73%
copy from api-tests/dev_apis/crypto/test_c021/source.mk
copy to api-tests/tools/cmake/common/CMakeSettings.cmake
index 9761866..eb812a9 100644
--- a/api-tests/dev_apis/crypto/test_c021/source.mk
+++ b/api-tests/tools/cmake/common/CMakeSettings.cmake
@@ -1,3 +1,4 @@
+#/** @file
 # * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
@@ -14,7 +15,10 @@
 # * limitations under the License.
 #**/
 
-CC_SOURCE  = test_entry_c021.c test_c021.c
-CC_OPTIONS =
-AS_SOURCE  =
-AS_OPTIONS =
+#Stop built in CMakeDetermine<lang>.cmake scripts to run.
+set (CMAKE_C_COMPILER_ID_RUN 1)
+#Stop cmake run compiler tests.
+set (CMAKE_C_COMPILER_FORCED true)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
diff --git a/api-tests/tools/cmake/common/Utils.cmake b/api-tests/tools/cmake/common/Utils.cmake
new file mode 100644
index 0000000..6751763
--- /dev/null
+++ b/api-tests/tools/cmake/common/Utils.cmake
@@ -0,0 +1,37 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# Function to CMake arguments
+function(_check_arguments)
+        foreach(_ARG IN LISTS ARGV)
+                if(NOT DEFINED ${_ARG})
+                        message(FATAL_ERROR "[PSA] : ${_ARG} is not passed! Please specify -D${_ARG}=<...> to CMake.")
+                endif()
+        endforeach()
+endfunction(_check_arguments)
+
+# Function to get all the folders inside given parent directory
+function(_get_sub_dir_list result parent_dir)
+        file(GLOB parent_dir_items RELATIVE ${parent_dir} ${parent_dir}/*)
+        set(dir_list "")
+        foreach(item ${parent_dir_items})
+                if(IS_DIRECTORY ${parent_dir}/${item})
+                        list(APPEND dir_list ${item})
+                endif()
+        endforeach()
+        set(${result} ${dir_list} PARENT_SCOPE)
+endfunction(_get_sub_dir_list)
diff --git a/api-tests/tools/cmake/compiler/ARMCLANG.cmake b/api-tests/tools/cmake/compiler/ARMCLANG.cmake
new file mode 100644
index 0000000..d96dc9d
--- /dev/null
+++ b/api-tests/tools/cmake/compiler/ARMCLANG.cmake
@@ -0,0 +1,63 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMKE_SYSTEM_PROCESSOR ARM)
+
+set(_C_TOOLCHAIN_NAME armclang)
+
+if(WIN32)
+        if (NOT DEFINED ARMCLANG_PATH)
+                set(ARMCLANG_PATH "C:" CACHE PATH "Install directory for ARMCLANG Compiler")
+        endif()
+else(WIN32)
+        if (NOT DEFINED ARMCLANG_PATH)
+                set(ARMCLANG_PATH "/" CACHE PATH "Install directory for ARMCLANG Compiler")
+        endif()
+endif(WIN32)
+
+find_program(
+        _C_TOOLCHAIN_PATH
+        ${_C_TOOLCHAIN_NAME}
+        PATHS env PATH
+        HINTS ${ARMCLANG_PATH}
+        HINTS bin
+)
+
+if(_C_TOOLCHAIN_PATH STREQUAL "_C_TOOLCHAIN_PATH-NOTFOUND")
+        message(FATAL_ERROR "[PSA] : Couldn't find ${_C_TOOLCHAIN_NAME}."
+                            " Either put ${_C_TOOLCHAIN_NAME} on the PATH or set ARMCLANG_PATH set properly.")
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+foreach(_LNG IN ITEMS "C" "ASM")
+        set(CMAKE_${_LNG}_COMPILER ${_C_TOOLCHAIN_PATH})
+        message(STATUS "[PSA] : ${_LNG}  compiler used '${CMAKE_${_LNG}_COMPILER}'")
+endforeach()
+
+if(${CPU_ARCH} STREQUAL armv7m)
+	set(TARGET_SWITCH "-march=armv7-m")
+elseif(${CPU_ARCH} STREQUAL armv8m_ml)
+	set(TARGET_SWITCH "-march=armv8-m.main -mcmse")
+elseif(${CPU_ARCH} STREQUAL armv8m_bl)
+	set(TARGET_SWITCH "-march=armv8-m.base -mcmse")
+endif()
+
+set(CMAKE_C_FLAGS              "--target=arm-arm-none-eabi ${TARGET_SWITCH} -Wall -Werror -fshort-enums -fshort-wchar -funsigned-char -fdata-sections -ffunction-sections -mno-unaligned-access -mfpu=none")
+set(CMAKE_ASM_FLAGS            "${TARGET_SWITCH} -mthumb")
+set(CMAKE_EXE_LINKER_FLAGS     "--strict --map --symbols --xref  --info=summarysizes,sizes,totals,unused,veneers --diag_warning=L6204")
diff --git a/api-tests/tools/cmake/compiler/GNUARM.cmake b/api-tests/tools/cmake/compiler/GNUARM.cmake
new file mode 100644
index 0000000..cede575
--- /dev/null
+++ b/api-tests/tools/cmake/compiler/GNUARM.cmake
@@ -0,0 +1,63 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMKE_SYSTEM_PROCESSOR ARM)
+
+set(_C_TOOLCHAIN_NAME arm-none-eabi-gcc)
+
+if(WIN32)
+	if (NOT DEFINED GNUARM_PATH)
+		set(GNUARM_PATH "C:" CACHE PATH "Install directory for GNUARM Compiler")
+	endif()
+else(WIN32)
+	if (NOT DEFINED GNUARM_PATH)
+		set(GNUARM_PATH "/" CACHE PATH "Install directory for GNUARM Compiler")
+	endif()
+endif(WIN32)
+
+find_program(
+	_C_TOOLCHAIN_PATH
+	${_C_TOOLCHAIN_NAME}
+	PATHS env PATH
+	HINTS ${GNUARM_PATH}
+	HINTS bin
+)
+
+if(_C_TOOLCHAIN_PATH STREQUAL "_C_TOOLCHAIN_PATH-NOTFOUND")
+        message(FATAL_ERROR "[PSA] : Couldn't find ${_C_TOOLCHAIN_NAME}."
+			    " Either put ${_C_TOOLCHAIN_NAME} on the PATH or set GNUARM_PATH set properly.")
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+foreach(_LNG IN ITEMS "C" "ASM")
+	set(CMAKE_${_LNG}_COMPILER ${_C_TOOLCHAIN_PATH})
+	message(STATUS "[PSA] : ${_LNG}  compiler used '${CMAKE_${_LNG}_COMPILER}'")
+endforeach()
+
+if(${CPU_ARCH} STREQUAL armv7m)
+	set(TARGET_SWITCH "-march=armv7-m")
+elseif(${CPU_ARCH} STREQUAL armv8m_ml)
+	set(TARGET_SWITCH "-march=armv8-m.main -mcmse")
+elseif(${CPU_ARCH} STREQUAL armv8m_bl)
+	set(TARGET_SWITCH "-march=armv8-m.base -mcmse")
+endif()
+
+set(CMAKE_C_FLAGS          "${TARGET_SWITCH}  -Wall -Werror -fdata-sections -ffunction-sections -mno-unaligned-access")
+set(CMAKE_ASM_FLAGS        "${TARGET_SWITCH} -mthumb")
+set(CMAKE_EXE_LINKER_FLAGS "-Xlinker --fatal-warnings -Xlinker --gc-sections -z max-page-size=0x400 -lgcc -lc -lnosys")
diff --git a/api-tests/tools/cmake/compiler/HOST_GCC.cmake b/api-tests/tools/cmake/compiler/HOST_GCC.cmake
new file mode 100644
index 0000000..e7be183
--- /dev/null
+++ b/api-tests/tools/cmake/compiler/HOST_GCC.cmake
@@ -0,0 +1,51 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMKE_SYSTEM_PROCESSOR x86_64)
+
+set(_C_TOOLCHAIN_NAME gcc)
+
+if(WIN32)
+	if (NOT DEFINED HOST_GCC_PATH)
+		set(HOST_GCC_PATH "C:" CACHE PATH "Install directory for Host GCC Compiler")
+	endif()
+else(WIN32)
+	if (NOT DEFINED HOST_GCC_PATH)
+		set(HOST_GCC_PATH "/" CACHE PATH "Install directory for Host GCC Compiler")
+	endif()
+endif(WIN32)
+
+find_program(
+	_C_TOOLCHAIN_PATH
+	${_C_TOOLCHAIN_NAME}
+	PATHS env PATH
+	HINTS ${HOST_GCC_PATH}
+	HINTS bin
+)
+
+if(_C_TOOLCHAIN_PATH STREQUAL "_C_TOOLCHAIN_PATH-NOTFOUND")
+        message(FATAL_ERROR "[PSA] : Couldn't find ${_C_TOOLCHAIN_NAME}."
+			    " Either put ${_C_TOOLCHAIN_NAME} on the PATH or set GNUARM_PATH set properly.")
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+foreach(_LNG IN ITEMS "C" "ASM")
+	set(CMAKE_${_LNG}_COMPILER ${_C_TOOLCHAIN_PATH})
+	message(STATUS "[PSA] : ${_LNG}  compiler used '${CMAKE_${_LNG}_COMPILER}'")
+endforeach()
diff --git a/api-tests/tools/makefiles/Makefile b/api-tests/tools/makefiles/Makefile
deleted file mode 100644
index 1aa790b..0000000
--- a/api-tests/tools/makefiles/Makefile
+++ /dev/null
@@ -1,131 +0,0 @@
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-ifeq (${SUITE}, ipc)
-SUITE_DIR = ff/$(SUITE)
-else
-SUITE_DIR = dev_apis/$(SUITE)
-endif
-
-export SUITE_IN= $(SOURCE)/$(SUITE_DIR)
-export SUITE_OUT= $(BUILD)/$(SUITE_DIR)
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-
-all: clean target_cfg gen_linker process_testsuite.db build
-
-#Generate target files from User provided data base
-target_cfg:
-	@echo  ""
-	@echo  "Processing target configuration..."
-	mkdir -p $(BUILD)/platform/${TARGET}/
-	@if [ ! -f "$(SOURCE)/platform/targets/$(TARGET)/target.cfg" ]; then { echo "Error: Target Not Found!!!"; exit 1; } fi
-	python $(SOURCE)/tools/scripts/targetConfigGen.py ${TARGET} $(SOURCE)/val/common/val_target.h \
-	$(SOURCE)/platform/targets/${TARGET}/target.cfg $(BUILD)/platform/${TARGET}/targetConfigGen.c \
-	$(BUILD)/platform/${TARGET}/target_database.h target_database ""
-	gcc -D__addr_t_defined -DTARGET_CFG_BUILD $(BUILD)/platform/${TARGET}/targetConfigGen.c -o $(BUILD)/platform/${TARGET}/targetConfigGen \
-	-I$(SOURCE)/val/nspe -I$(SOURCE)/val/common -I$(SOURCE)/platform/targets/${TARGET}/nspe/common
-	./$(BUILD)/platform/${TARGET}/targetConfigGen
-
-#Read target.cfg and update the addresses in linker script
-gen_linker:
-	@echo  ""
-	@echo  "Updating linker files..."
-	mkdir -p $(SUITE_OUT)/ $(BUILD)/val/ $(BUILD)/partition/ ;
-	perl $(SOURCE)/tools/scripts/process_test_linker_file.pl $(SOURCE) $(SUITE_OUT) ${TARGET} $(TOOLCHAIN)
-
-process_testsuite.db:
-	@echo  ""
-	@echo  "Creating testlist..."
-ifeq (${INCLUDE_PANIC_TESTS}, 1)
-	$(eval TEST_LIST := $(shell grep -o "^test....." $(SUITE_IN)/testsuite.db > $(SUITE_OUT)/.testlist.txt ; dos2unix $(SUITE_OUT)/.testlist.txt ; cat $(SUITE_OUT)/.testlist.txt))
-else
-	$(eval TEST_LIST := $(shell grep -v "^test....., panic_test" $(SUITE_IN)/testsuite.db | grep "^test" > $(SUITE_OUT)/.testlist.txt ; dos2unix $(SUITE_OUT)/.testlist.txt ; cat $(SUITE_OUT)/.testlist.txt))
-endif
-	perl $(SOURCE)/tools/scripts/gen_tests_list.pl $(BUILD) $(SUITE_OUT)/.testlist.txt $(SUITE)
-
-
-#Build framework archives and test_combine.elf
-build:  build_pal val_nspe.a test_combine.elf partition_build output_list
-
-build_pal:
-	@echo  ""
-	@echo  "----------pal build start-------------"
-	make -f $(SOURCE)/platform/targets/$(TARGET)/Makefile
-	@echo  "----------pal build complete-------------"
-
-val_nspe.a:
-	@echo  ""
-	@echo  "----------val build start-------------"
-	make -f $(SOURCE)/tools/makefiles/valbuild.mk
-	@echo  "----------val build complete-------------"
-
-test_combine.elf: test.elf
-	@echo  ""
-ifeq (${TEST_COMBINE_ARCHIVE}, 1)
-	@echo  "----------Combine NS test objects into archive start-------------"
-	$(AR) $(AR_OPTIONS) $(SUITE_OUT)/test_combine.a $(SUITE_OUT)/test*/test_*_nspe.o
-	@echo  "----------Combine NS test objects into archive complete-------------"
-else
-	@echo  "----------Combine NS test elfs into binary start-------------"
-	perl $(SOURCE)/tools/scripts/test_elf_combine.pl $(SUITE_OUT)/.testlist.txt
-	hexdump -v -e ' 1/4 "%08X" "\n"' $(SUITE_OUT)/test_elf_combine.bin > $(SUITE_OUT)/test_elf_combine.hex
-	@echo  "----------Combine NS test elfs into binary complete-------------"
-endif
-
-test.elf:
-	@echo  ""
-	@echo  "----------test build start-------------"
-	@$(foreach TEST,$(TEST_LIST), make -f $(SOURCE)/tools/makefiles/testbuild.mk  TEST=$(TEST) ;)
-	@echo  "----------test build complete-------------"
-
-partition_build:
-ifeq (${PSA_IPC_IMPLEMENTED}, 1)
-	@echo  ""
-	@echo  "----------test partition build start-------------"
-	make -f $(SOURCE)/tools/makefiles/spbuild.mk
-	@echo  "----------test partition build complete-------------"
-endif
-
-output_list:
-	@echo  ""
-	@echo  "Below are the list of output binaries/libraries. Integrate these"
-	@echo  "to your software stack to execute test suite."
-	@echo  ""
-	@echo  "a) NSPE files:"
-	@echo  " $(BUILD)/val/val_nspe.a"
-	@echo  " $(BUILD)/platform/pal_nspe.a"
-ifeq (${TEST_COMBINE_ARCHIVE}, 1)
-	@echo  " $(SUITE_OUT)/test_combine.a"
-else
-	@echo  " $(SUITE_OUT)/test_elf_combine.bin"
-endif
-	@echo  ""
-ifeq (${PSA_IPC_IMPLEMENTED}, 1)
-	@echo  "b) SPE files"
-	@echo  " $(BUILD)/partition/driver_partition.a"
-endif
-ifeq (${SUITE}, ipc)
-	@echo  " $(BUILD)/partition/client_partition.a"
-	@echo  " $(BUILD)/partition/server_partition.a"
-endif
-	@echo  ""
-
-clean:
-	@echo  ""
-	@echo  "Cleaning the build directory..."
-	rm -rf $(BUILD)/*
diff --git a/api-tests/tools/makefiles/linker/test.linker b/api-tests/tools/makefiles/linker/test.linker
deleted file mode 100644
index 69fc4d1..0000000
--- a/api-tests/tools/makefiles/linker/test.linker
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
- * SPDX-License-Identifier : Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-**/
-
-ENTRY(TEST_START)
-
-TEST_START = 0x2004F000;
-
-MEMORY
-{
-    TEST_INFO  (R)  : ORIGIN = TEST_START, LENGTH = 0x100
-    TEST_TEXT  (RX) : ORIGIN = TEST_START +0x100, LENGTH = 0x1A00
-    TEST_DATA  (RW) : ORIGIN = TEST_START +0x1B00, LENGTH = 0x1800
-}
-
-SECTIONS
-{
-    .acs_test_info :
-    {
-        KEEP(*(.acs_test_info))
-    } > TEST_INFO
-
-    .text :
-    {
-        *(.text)
-        *(.text*)
-        *(.rodata)
-        *(.rodata*)
-    } > TEST_TEXT
-
-    .data :
-    {
-        *(.data)
-        *(.data*)
-    } > TEST_DATA
-
-    .bss :
-    {
-        *(.bss)
-        *(.bss.*)
-        *(COMMON)
-    } > TEST_DATA
-}
diff --git a/api-tests/tools/makefiles/linker/test.sct b/api-tests/tools/makefiles/linker/test.sct
deleted file mode 100644
index 4de849d..0000000
--- a/api-tests/tools/makefiles/linker/test.sct
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
- * SPDX-License-Identifier : Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-**/
-
-#define TEST_CODE_START 0x0
-#define TEST_INFO_SIZE  0x100
-#define TEST_TEXT_SIZE  0x1A00
-#define TEST_DATA_SIZE  0x1800
-
-LR_CODE TEST_CODE_START
-{
-
-    ER_CODE TEST_CODE_START (TEST_INFO_SIZE+TEST_TEXT_SIZE+TEST_DATA_SIZE)
-    {
-        test_entry_*_nspe.o(.acs_test_info +FIRST)
-        * (+CODE)
-        * (+RO)
-        * (+ZI +RW)
-    }
-
-}
diff --git a/api-tests/tools/makefiles/spbuild.mk b/api-tests/tools/makefiles/spbuild.mk
deleted file mode 100644
index 1479e74..0000000
--- a/api-tests/tools/makefiles/spbuild.mk
+++ /dev/null
@@ -1,74 +0,0 @@
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-INCLUDE= -I$(SOURCE)/val/common/ \
-         -I$(SOURCE)/val/nspe/ \
-         -I$(SOURCE)/val/spe/ \
-         -I$(SOURCE)/ \
-         -I$(SOURCE)/ff/partition/common/ \
-         -I$(SOURCE)/ff/partition/ipc/ \
-         -I$(BUILD)/partition/ \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(SOURCE)/platform/targets/$(TARGET)/spe
-
-VPATH=$(SOURCE)/val/common/:\
-      $(SOURCE)/val/nspe/:\
-      $(SOURCE)/val/spe/:\
-      $(SOURCE)/ff/partition/common/: \
-      $(SOURCE)/ff/partition/ipc/
-
-
-CC_SOURCE += driver_partition.c val_driver_service_apis.c
-
-ifeq (${SUITE}, ipc)
-CC_SOURCE += client_partition.c server_partition.c
-all:  mkdir compile_c compile_asm driver_partition.a client_partition.a server_partition.a
-else
-all:  mkdir compile_c compile_asm driver_partition.a
-endif
-
-
-mkdir:
-	@mkdir -p $(BUILD)/partition/
-
-compile_c: $(CC_SOURCE:%.c=$(BUILD)/partition/%.o)
-compile_asm: $(AS_SOURCE:%.s=$(BUILD)/partition/%.o)
-
-$(BUILD)/partition/%.o : %.c
-	$(CC) -DSPE_BUILD -o $@ -c $<
-
-$(BUILD)/partition/%.o : %.s
-	$(AS) -o $@ $<
-
-client_partition.a:
-ifeq ($(wildcard $(SUITE_OUT)/test_i*/.*),)
-	$(AR) $(AR_OPTIONS) $(BUILD)/partition/client_partition.a $(BUILD)/partition/client_partition.o $(SUITE_OUT)/test*/test_l*_spe.o
-else ifeq ($(wildcard $(SUITE_OUT)/test_l*/.*),)
-	$(AR) $(AR_OPTIONS) $(BUILD)/partition/client_partition.a $(BUILD)/partition/client_partition.o $(SUITE_OUT)/test*/test_i*_spe.o
-else
-	$(AR) $(AR_OPTIONS) $(BUILD)/partition/client_partition.a $(BUILD)/partition/client_partition.o $(SUITE_OUT)/test*/test_i*_spe.o $(SUITE_OUT)/test*/test_l*_spe.o
-endif
-
-server_partition.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/partition/server_partition.a $(BUILD)/partition/server_partition.o $(SUITE_OUT)/test*/test_supp_*_spe.o
-
-driver_partition.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/partition/driver_partition.a $(BUILD)/platform/spe/*_driver_sp.o $(BUILD)/partition/driver_partition.o $(BUILD)/partition/val_driver_service_apis.o
diff --git a/api-tests/tools/makefiles/testbuild.mk b/api-tests/tools/makefiles/testbuild.mk
deleted file mode 100644
index 373111d..0000000
--- a/api-tests/tools/makefiles/testbuild.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-include $(SUITE_IN)/$(TEST)/source.mk
-
-INCLUDE= -I$(SOURCE)/val/common/ \
-         -I$(SOURCE)/val/nspe/ \
-         -I$(SOURCE)/val/spe/ \
-         -I$(SOURCE)/ \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/ \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(SUITE_IN)/$(TEST)/\
-         -I$(SUITE_IN)/include/ \
-         -I$(BUILD)/val/
-
-ifeq (${SUITE}, protected_storage)
-INCLUDE += -I$(SUITE_IN)/../internal_trusted_storage/$(TEST)
-endif
-
-VPATH=$(SOURCE)/val/common/:\
-      $(SOURCE)/val/nspe/:\
-      $(SOURCE)/val/spe/:\
-      $(SUITE_IN)/$(TEST)/:\
-      $(SUITE_IN)/include/:
-
-ifeq (${SUITE}, protected_storage)
-VPATH += $(SUITE_IN)/../internal_trusted_storage/$(TEST)/
-endif
-
-
-all:  mkdir compile_c_nspe compile_asm_nspe test.elf compile_c_spe compile_asm_spe
-
-mkdir:
-	mkdir -p $(SUITE_OUT)/$(TEST)/
-
-compile_c_nspe: $(CC_SOURCE:%.c=$(SUITE_OUT)/$(TEST)/%_nspe.o)
-compile_asm_nspe: $(AS_SOURCE:%.s=$(SUITE_OUT)/$(TEST)/%_nspe.o)
-
-$(SUITE_OUT)/$(TEST)/%_nspe.o : %.c
-	$(CC) -D NONSECURE_TEST_BUILD -DVAL_NSPE_BUILD -o $@ -c $<
-
-$(SUITE_OUT)/$(TEST)/%_nspe.o : %.s
-	$(AS) -o $@ $<
-
-# Generated %_spe.o(s) are used in spbuild.mk to create final client_partition.a and server_partition.a
-compile_c_spe: $(CC_SOURCE_SPE:%.c=$(SUITE_OUT)/$(TEST)/%_spe.o)
-compile_asm_spe: $(AS_SOURCE_SPE:%.s=$(SUITE_OUT)/$(TEST)/%_spe.o)
-
-$(SUITE_OUT)/$(TEST)/%_spe.o : %.c
-	$(CC) -DSPE_BUILD -o $@ -c $<
-
-$(SUITE_OUT)/$(TEST)/%_spe.o : %.s
-	$(AS) -o $@ $<
-
-test.elf:
-ifeq (${TOOLCHAIN}, GNUARM)
-	$(LD) -Xlinker -Map=$(SUITE_OUT)/$(TEST)/test.map -o $(SUITE_OUT)/$(TEST)/test.elf -T$(SUITE_OUT)/.test.linker $(SUITE_OUT)/$(TEST)/*_nspe.o
-else
-	$(LD)  --scatter=$(SUITE_OUT)/.test.sct  --list=$(SUITE_OUT)/$(TEST)/test.map -o $(SUITE_OUT)/$(TEST)/test.elf  $(SUITE_OUT)/$(TEST)/*_nspe.o
-endif
-	$(DS)  $(SUITE_OUT)/$(TEST)/test.elf >  $(SUITE_OUT)/$(TEST)/test.disass
-
diff --git a/api-tests/tools/makefiles/toolchain.mk b/api-tests/tools/makefiles/toolchain.mk
deleted file mode 100644
index 699e6bb..0000000
--- a/api-tests/tools/makefiles/toolchain.mk
+++ /dev/null
@@ -1,119 +0,0 @@
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-TOOLCHAIN=GNUARM
-PREFIX=
-
-#### GNUARM OPTIONS - START ####
-ifneq (,$(findstring $(TOOLCHAIN),GNUARM-GCC))
-    ifeq (${TOOLCHAIN}, GNUARM)
-    PREFIX=arm-none-eabi-
-    endif
-
-    ifeq (${CPU_ARCH}, armv7m)
-    TARGET_SWITCH= -march=armv7-m
-    else
-        ifeq (${CPU_ARCH}, armv8m_ml)
-        TARGET_SWITCH= -march=armv8-m.main -mcmse
-        else
-        TARGET_SWITCH= -march=armv8-m.base -mcmse
-        endif
-    endif
-
-COMPILER= $(PREFIX)gcc
-ASSEMBLER= $(PREFIX)as
-AR= $(PREFIX)ar
-LINKER= $(PREFIX)gcc
-OBJDUMP=$(PREFIX)objdump
-
-COMPILER_OPTIONS= $(TARGET_SWITCH) -Wall -Werror -fdata-sections -ffunction-sections -mno-unaligned-access
-
-ASSEMBLER_OPTIONS= $(TARGET_SWITCH) -mthumb
-AR_OPTIONS= -rcs
-LINKER_OPTIONS= $(TARGET_SWITCH) -mthumb -Wall -Werror -O0 -fdata-sections \
-				-ffunction-sections -Xlinker --fatal-warnings -Xlinker --gc-sections \
-				-z max-page-size=0x400 -lgcc -lc -lnosys
-OBJDUMP_OPTIONS= -d
-endif #GNUARM-GCC
-#### GNUARM OPTIONS - END ####
-
-#### ARMCLANG OPTIONS - START ####
-ifeq (${TOOLCHAIN}, ARMCLANG)
-
-COMPILER= armclang
-ASSEMBLER= armclang
-AR= armar
-LINKER= armlink
-OBJDUMP=fromelf
-
-    ifeq (${CPU_ARCH}, armv7m)
-    TARGET_SWITCH= -march=armv7-m
-    TARGET_SWITCH_LD= --cpu=7-M
-    else
-        ifeq (${CPU_ARCH}, armv8m_ml)
-        TARGET_SWITCH= -march=armv8-m.main -mcmse
-        TARGET_SWITCH_LD= --cpu=8-M.Main
-        else
-        TARGET_SWITCH= -march=armv8-m.base -mcmse
-        TARGET_SWITCH_LD= --cpu=8-M.Base
-        endif
-    endif
-
-COMPILER_OPTIONS= --target=arm-arm-none-eabi $(TARGET_SWITCH) -Wall -Werror -fshort-enums -fshort-wchar -funsigned-char -fdata-sections -ffunction-sections -mno-unaligned-access -mfpu=none
-AR_OPTIONS= --create -cr
-LINKER_OPTIONS= --strict --map --symbols --xref  --info=summarysizes,sizes,totals,unused,veneers --diag_warning=L6204
-OBJDUMP_OPTIONS= -c -d --datasymbols
-endif
-#### ARMCLANG OPTIONS - END ####
-
-COMPILER_OPTIONS += -DVERBOSE=$(VERBOSE)
-
-ifeq (${TEST_COMBINE_ARCHIVE}, 1)
-COMPILER_OPTIONS += -DTEST_COMBINE_ARCHIVE=1
-endif
-
-ifeq (${WATCHDOG_AVAILABLE}, 1)
-COMPILER_OPTIONS += -DWATCHDOG_AVAILABLE=1
-endif
-
-ifeq (${SP_HEAP_MEM_SUPP}, 1)
-COMPILER_OPTIONS += -DSP_HEAP_MEM_SUPP=1
-endif
-
-ifeq (${PSA_IPC_IMPLEMENTED}, 1)
-COMPILER_OPTIONS += -DPSA_IPC_IMPLEMENTED=1
-endif
-
-ifeq (${PSA_CRYPTO_IMPLEMENTED}, 1)
-COMPILER_OPTIONS += -DPSA_CRYPTO_IMPLEMENTED=1
-endif
-
-ifeq (${PSA_PROTECTED_STORAGE_IMPLEMENTED}, 1)
-COMPILER_OPTIONS += -DPSA_PROTECTED_STORAGE_IMPLEMENTED=1
-endif
-
-ifeq (${PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED}, 1)
-COMPILER_OPTIONS += -DPSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED=1
-endif
-
-ifeq (${PSA_INITIAL_ATTESTATION_IMPLEMENTED}, 1)
-COMPILER_OPTIONS += -DPSA_INITIAL_ATTESTATION_IMPLEMENTED=1
-endif
-
-CC= $(COMPILER) $(COMPILER_OPTIONS) $(CC_OPTIONS) $(USER_INCLUDE) $(INCLUDE)
-AS= $(ASSEMBLER) $(ASSEMBLER_OPTIONS) $(AS_OPTIONS)
-LD= $(LINKER) $(LINKER_OPTIONS)
-DS= $(OBJDUMP) $(OBJDUMP_OPTIONS)
diff --git a/api-tests/tools/makefiles/valbuild.mk b/api-tests/tools/makefiles/valbuild.mk
deleted file mode 100644
index ef0ad4c..0000000
--- a/api-tests/tools/makefiles/valbuild.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-include $(SOURCE)/tools/makefiles/toolchain.mk
-
-INCLUDE= -I$(SOURCE)/val/common/ \
-         -I$(SOURCE)/val/nspe/ \
-         -I$(SOURCE)/val/spe/ \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/ \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/common \
-         -I$(SOURCE)/platform/targets/$(TARGET)/nspe/crypto \
-         -I$(BUILD)/platform/$(TARGET)/ \
-         -I$(BUILD)/val/
-
-VPATH=$(SOURCE)/val/common/:\
-      $(SOURCE)/val/nspe/:\
-      $(SOURCE)/val/spe/
-
-SRC_COMMON=
-SRC_NS= val_entry.c val_dispatcher.c val_framework.c val_crypto.c val_interfaces.c val_peripherals.c val_target.c val_protected_storage.c val_internal_trusted_storage.c val_attestation.c
-
-all: build
-
-build: mkdir build_common build_ns val_nspe.a
-
-mkdir:
-	@mkdir -p $(BUILD)/val/
-
-build_common: $(SRC_COMMON:%.c=$(BUILD)/val/%.o)
-build_ns: $(SRC_NS:%.c=$(BUILD)/val/%.o)
-
-$(BUILD)/val/%.o : %.c
-	$(CC)  $(INCLUDE) -DVAL_NSPE_BUILD  -o $@ -c $<
-
-val_nspe.a:
-	$(AR) $(AR_OPTIONS) $(BUILD)/val/val_nspe.a $(BUILD)/val/*.o
-
-clean:
-	@rm -rf $(BUILD)/val/*.o $(BUILD)/val/*.a
diff --git a/api-tests/tools/scripts/gen_tests_list.pl b/api-tests/tools/scripts/gen_tests_list.pl
deleted file mode 100644
index f98bb56..0000000
--- a/api-tests/tools/scripts/gen_tests_list.pl
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/env perl
-#/** @file
-# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-
-$build=$ARGV[0];
-$tests_list=$ARGV[1];
-$suite=$ARGV[2];
-
-&gen_test_entry_info();
-&gen_secure_tests_list() if ($suite eq "ipc");
-
-sub gen_test_entry_info
-{
-    my $test_num                    = 0;
-    my $uniq_test_string            = '';
-    my $max_test_per_suite          = 200;
-    my $suite_base                  = 0;
-    my $test_entry_list             = "$build/val/test_entry_list.inc";
-    my $test_entry_fn_declare_list  = "$build/val/test_entry_fn_declare_list.inc";
-
-    if ($suite eq "crypto")
-    {
-        $suite_base = 1;
-    }
-    elsif ($suite eq "protected_storage")
-    {
-        $suite_base = 2;
-    }
-    elsif ($suite eq "internal_trusted_storage")
-    {
-        $suite_base = 3;
-    }
-    elsif ($suite eq "initial_attestation")
-    {
-        $suite_base = 4;
-    }
-
-    open(IN, $tests_list) or die "Unable to open $tests_list $!";
-    open(OUT1, '>', $test_entry_fn_declare_list) or die "Unable to open: $!";
-    open(OUT2, '>', $test_entry_list) or die "Unable to open: $!";
-
-        while(<IN>) {
-        if($_ !~ /^\//) {# exclude commented lines if any
-            chomp($_);
-            if($_ =~ /^test_(.+)/) {
-                $uniq_test_string = $1;
-                $uniq_test_string =~ s/s/p/ if ($suite eq "protected_storage");
-                print OUT1 "void test_entry_$uniq_test_string(val_api_t *val_api, psa_api_t *psa_api);\n";
-                if($_ =~ /^test_\w0*(\d+)/) {
-                    $test_num = $1 + ($max_test_per_suite * $suite_base);
-                    print OUT2 "\t{$test_num, &test_entry_$uniq_test_string},\n";
-                }
-            }
-        }
-    }
-    close IN;
-    close OUT1;
-    close OUT2;
-    print "Non-secure test entry symbol list:
-    $test_entry_list,
-    $test_entry_fn_declare_list\n";
-}
-
-sub gen_secure_tests_list
-{
-    my $test_num = 0;
-    my $test_num_prev = 0;
-    my $client_tests_list_declare = "$build/partition/client_tests_list_declare.inc";
-    my $client_tests_list         = "$build/partition/client_tests_list.inc";
-    my $server_tests_list_declare = "$build/partition/server_tests_list_declare.inc";
-    my $server_tests_list         = "$build/partition/server_tests_list.inc";
-
-    open(IN, $tests_list) or die "Unable to open $tests_list $!";
-    open(OUT1, '>', $client_tests_list_declare) or die "Unable to open: $!";
-    open(OUT2, '>', $client_tests_list) or die "Unable to open: $!";
-    open(OUT3, '>', $server_tests_list_declare) or die "Unable to open: $!";
-    open(OUT4, '>', $server_tests_list) or die "Unable to open: $!";
-
-    while(<IN>) {
-        if($_ !~ /^\//) {# exclude commented lines if any
-            chomp($_);
-            if($_ =~ /^test_\w(\d+)/) {
-                $test_num = $1;
-                print OUT1 " extern client_test_t $_\_client_tests_list[];\n";
-                print OUT3 " extern server_test_t $_\_server_tests_list[];\n";
-
-                if ($test_num - $test_num_prev > 1)
-                {
-                    for ($i = $test_num_prev; $i < ($test_num - 1); $i++)
-                    {
-                        print OUT2 "\tNULL,\n";
-                        print OUT4 "\tNULL,\n";
-                    }
-                }
-                print OUT2 "\t$_\_client_tests_list,\n";
-                print OUT4 "\t$_\_server_tests_list,\n";
-            }
-        }
-        $test_num_prev = $test_num;
-    }
-    close IN;
-    close OUT1;
-    close OUT2;
-    close OUT3;
-    close OUT4;
-
-    print "Secure test entry symbol list:
-    $client_tests_list_declare,
-    $client_tests_list,
-    $server_tests_list_declare,
-    $server_tests_list \n\n";
-}
diff --git a/api-tests/tools/scripts/gen_tests_list.py b/api-tests/tools/scripts/gen_tests_list.py
new file mode 100644
index 0000000..7d33bb5
--- /dev/null
+++ b/api-tests/tools/scripts/gen_tests_list.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+import sys
+
+if (len(sys.argv) != 11):
+        print("\nScript requires following inputs")
+        print("\narg1  : <INPUT  SUITE identifier>")
+        print("\narg2  : <INPUT  testsuite.db file>")
+        print("\narg3  : <INPUT  panic test>")
+        print("\narg4  : <OUTPUT testlist file>")
+        print("\narg5  : <OUTPUT test_entry_list>")
+        print("\narg6  : <OUTPUT test_entry_fn_declare_list>")
+        print("\narg7  : <OUTPUT client_tests_list_declare>")
+        print("\narg8  : <OUTPUT client_tests_list>")
+        print("\narg9  : <OUTPUT server_tests_list_declare>")
+        print("\narg10 : <OUTPUT server_tests_list>")
+        sys.exit(1)
+
+suite                      = sys.argv[1]
+testsuite_db_file          = sys.argv[2]
+panic_tests_included       = int(sys.argv[3])
+testlist_file              = sys.argv[4]
+test_entry_list            = sys.argv[5]
+test_entry_fn_declare_list = sys.argv[6]
+client_tests_list_declare  = sys.argv[7]
+client_tests_list          = sys.argv[8]
+server_tests_list_declare  = sys.argv[9]
+server_tests_list          = sys.argv[10]
+
+# Dictionary to hold the mapping between suite and the base number
+suite_with_base_dict = {"ipc":0, "crypto":1, "protected_storage":2, "internal_trusted_storage":3, "initial_attestation":4}
+
+def gen_test_list():
+	"""
+	Read the input testsuite.db file and generates the output file with list of tests
+	"""
+	with open(testlist_file, mode='w') as o_f:
+		with open(testsuite_db_file, mode='r') as i_f:
+			for line in i_f:
+				if ('test_' == line[0:5]):
+					if ((panic_tests_included == 1) and ("panic" not in line)):
+						o_f.write(line)
+					elif ((panic_tests_included == 1) and ("panic" in line)):
+						o_f.write(line[0:line.find(',')]+'\n')
+					elif ((panic_tests_included == 0) and ("panic" not in line)):
+						o_f.write(line)
+
+def gen_test_entry_info():
+	"""
+	Generate Non-secure related inc files
+	"""
+	test_num           = 0
+	uniq_test_string   = ''
+	max_test_per_suite = 200
+	suite_base         = 0
+
+	if (suite not in suite_with_base_dict.keys()):
+		print("\nProvide a valid SUITE identifier")
+		sys.exit()
+
+	with open(test_entry_list, mode='w') as o_f1, \
+             open(test_entry_fn_declare_list, mode='w') as o_f2,\
+             open(testlist_file, mode='r') as i_f:
+		for line in i_f:
+			line = line.strip()
+			test_num = int(line[6:9]) + (max_test_per_suite * suite_with_base_dict[suite])
+			if (suite == "protected_storage"):
+				uniq_test_string = 'p'+line[6:9]
+			else:
+				uniq_test_string = line[5:9]
+			o_f1.write("\t{%d, &test_entry_%s},\n" %(test_num, uniq_test_string))
+			o_f2.write("void test_entry_%s(val_api_t *val_api, psa_api_t *psa_api);\n" %(uniq_test_string))
+	print("Non-secure test entry symbol list:\n\t%s,\n\t%s" %(test_entry_list, test_entry_fn_declare_list))
+
+def gen_secure_tests_list():
+	"""
+	Generate partition related inc files
+	"""
+	test_num = 0
+	test_num_prev = 0
+
+	with open(testlist_file, mode='r') as i_f, \
+	     open(client_tests_list_declare, mode='w') as o_f1, \
+	     open(client_tests_list, mode='w') as o_f2, \
+	     open(server_tests_list_declare, mode='w') as o_f3, \
+	     open(server_tests_list, mode='w') as o_f4:
+		for line in i_f:
+			line = line.strip()
+			o_f1.write("extern client_test_t %s_client_tests_list[];\n" %(line))
+			o_f3.write("extern server_test_t %s_server_tests_list[];\n" %(line))
+
+			test_num = int(line[6:9])
+			if ((test_num - test_num_prev) > 1):
+				for num in range(test_num_prev, test_num-1):
+					o_f2.write("\tNULL,\n")
+					o_f4.write("\tNULL,\n")
+			o_f2.write("\t%s_client_tests_list,\n" %(line[0:9]));
+			o_f4.write("\t%s_server_tests_list,\n" %(line[0:9]));
+
+			test_num_prev = test_num
+
+	print("Secure test entry symbol list:\n\t%s,\n\t%s,\n\t%s,\n\t%s" \
+               %(client_tests_list_declare, client_tests_list, \
+                 server_tests_list_declare, server_tests_list))
+
+# Call routines
+gen_test_list()
+gen_test_entry_info()
+if (suite == "ipc"):
+	gen_secure_tests_list()
diff --git a/api-tests/tools/scripts/process_test_linker_file.pl b/api-tests/tools/scripts/process_test_linker_file.pl
deleted file mode 100755
index 4b0bb27..0000000
--- a/api-tests/tools/scripts/process_test_linker_file.pl
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env perl
-#/** @file
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-#inputs
-$source=$ARGV[0];
-$suite_out=$ARGV[1];
-$target=$ARGV[2];
-$toolchain=$ARGV[3];
-
-$targetConfigPath = "$source/platform/targets/$target/target.cfg";
-$linker_in = "";
-$linker_out = "";
-$ns_test_start_addr = undef;
-
-if($toolchain eq "GNUARM")
-{
-    $linker_in  = "$source/tools/makefiles/linker/test.linker";
-    $linker_out = "$suite_out/.test.linker";
-}
-else
-{
-    $linker_in  = "$source/tools/makefiles/linker/test.sct";
-    $linker_out = "$suite_out/.test.sct";
-}
-
-open(IN, $targetConfigPath) or die "Unable to open $targetConfigPath $!";
-while(<IN>) {
-    if($_ !~ /^\//) {# exclude commented lines
-        if($_ =~ /\.ns_test_addr(\s*)\=(\s*)(.+)(\s*)\;/) {
-            $ns_test_start_addr = $3;
-        }
-    }
-}
-close IN;
-
-if(defined($ns_test_start_addr))
-{
-    open(IN, $linker_in) or die "Unable to open $linker_in $!";
-    open(OUT, '>', $linker_out) or die "Unable to open: $!";
-    while(<IN>) {
-        if($_ =~ /^TEST_START/){
-            print OUT "TEST_START = $ns_test_start_addr;\n";
-        }elsif($_ =~ /#define *TEST_CODE_START/){
-            print OUT "#define TEST_CODE_START $ns_test_start_addr\n";
-        }else{
-            print OUT "$_";
-        }
-    }
-    close IN;
-    close OUT;
-    print "linker file - $linker_out\n"
-}
-else
-{
-    die ("Error: ns_test_addr is not found in target.cfg file\n");
-}
-
-if($toolchain eq "ARMCLANG")
-{
-    system("cpp -x assembler-with-cpp -w -E -o $linker_out.tmp $linker_out ") && die ("Failed to process $linker_out\n");
-    system("cp $linker_out.tmp  $linker_out");
-}
diff --git a/api-tests/tools/scripts/setup.sh b/api-tests/tools/scripts/setup.sh
deleted file mode 100755
index 7d6b36c..0000000
--- a/api-tests/tools/scripts/setup.sh
+++ /dev/null
@@ -1,497 +0,0 @@
-#!/usr/bin/env bash
-#/** @file
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-echo ""
-
-declare -a INCLUDE_PATHS
-export SUITE=" "
-export TEST_COMBINE_ARCHIVE=0
-export INCLUDE_PANIC_TESTS=0
-export WATCHDOG_AVAILABLE=0
-export SP_HEAP_MEM_SUPP=0
-export CLIENT_FILE_FOUND=0
-export SERVICE_FILE_FOUND=0
-export MANIFEST_OUT_FILE_FOUND=0
-export CRYPTO_FILE_FOUND=0
-export PROTECTED_STORAGE_FILE_FOUND=0
-export INTERNAL_TRUSTED_STORAGE_FILE_FOUND=0
-export INITIAL_ATTESTATION_FILE_FOUND=0
-export LIFECYCLE_FILE_FOUND=0
-
-IPC_HEADER_FILE_REQ="If PSA IPC implemented in your platform, include path must point to path
-where \"psa/client.h\", \"psa/service.h\", \"psa/lifecycle.h\" and test partition manifest output files
-(\"psa_manifest/sid.h\", \"psa_manifest/pid.h\" and \"psa_manifest/<manifestfilename>.h\") are located.
-"
-CRYPTO_HEADER_FILE_REQ="If PSA CRYPTO APIs are implemented into your platform then you must provide
-\"psa/crypto.h\" file to setup.sh script using --include option to compile tests and framework.
-"
-PS_HEADER_FILE_REQ="If PSA PROTECTED STORAGE APIs are implemented into your platform then you must provide
-\"psa/protected_storage.h\" file to setup.sh script using --include option to compile tests and framework.
-"
-ITS_HEADER_FILE_REQ="If PSA INTERNAL_TRUSTED_STORAGE APIs are implemented into your platform then you must provide
-\"psa/internal_trusted_storage.h\" file to setup.sh script using --include option to compile tests and framework.
-"
-ATTESTATION_HEADER_FILE_REQ="If PSA INITIAL_ATTESTATION APIs are implemented into your platform then you must provide
-\"psa/initial_attestation.h\" and \"psa/crypto.h\" file to setup.sh script using --include option to compile tests and framework.
-"
-
-HELP="
-
-Usage: setup.sh [--source SOURCE_DIR] [--build BUILD_DIR] [--target TARGET] [--suite SUITE]
-                [--toolchain TOOLCHAIN] [--cpu_arch CPU_ARCH] [--verbose PRINT_LEVEL]
-                [--include INCLUDE_PATH] [--help|-h]
-Toplevel script to build tests and framework sources for given test suite.
-
-Arguments Info:
-    --source <SOURCE_DIR>   : SOURCE_DIR pointing to architecture test suite directory structure.
-                              Default is current directory
-    --build  <BUILD_DIR>    : To select the build (output) directory. Default: BUILD/ inside current directory
-    --target <TARGET>       : Provide target string as argument.
-                              target.cfg file corresponding to input string must be avaiable at
-                              platform/targets/<TARGET>/
-    --suite <SUITE>         : Compile tests for given suite. Support values are:
-                              ipc, crypto, internal_trusted_storage, protected_storage,
-                              and initial_attestation.
-    --toolchain <TOOLCHAIN> : Build using the given TOOLCHAIN.
-                              Supported values are GNUARM (GNU Arm Embedded) and ARMCLANG (ARM Compiler 6.x).
-    --cpu_arch <CPU_ARCH>   : Provide cpu arch string as argument.
-                              Supported CPU arch are armv8m_ml, armv8m_bl and armv7m.
-    --verbose <PRINT_LEVEL> : Print verbosity level
-                              Supported print levels are:
-                                1 - INFO & above.
-                                2 - DEBUG & above.
-                                3 - TEST & above.(Default)
-                                4 - WARN & ERROR.
-                                5 - ERROR.
-    --archive_tests         : Create combine test archive(.a) file by combining available test objects files.
-                              Absence of this option would create combine test binary(.bin) by combining available test elfs
-    --include_panic_tests   : Consider panic tests (mentioned in testsuite.db of respective suite) along with functional tests
-                              for building the final executables. Absence of this option would consider only non-panic (ie, functional) tests
-    --include <INCLUDE_PATH>: Additional directory to be included into compiler search path. Provide --include <path>
-                              where path pointing to location of PSA defined header files.
-                              You can specify multiple source locations using --include option.
-                              Ex: --include <path1>  --include <path2>
-    --help|-h               : Print this help message
-
-Notes:
-1. $IPC_HEADER_FILE_REQ
-2. $CRYPTO_HEADER_FILE_REQ
-3. $PS_HEADER_FILE_REQ
-4. $ITS_HEADER_FILE_REQ
-5. $ATTESTATION_HEADER_FILE_REQ
-
-"
-
-if [ "$#" == "0" ]; then
-    echo "Error: no argument to setup.sh"
-    echo "$HELP"
-    exit 1
-fi
-
-while [  $# -gt 0 ]; do
-    case $1 in
-    --source ) shift
-                  export SOURCE=$1
-                  ;;
-       --build )  shift
-                  export BUILD="$1/BUILD"
-                  ;;
-       --target )  shift
-                  export TARGET=$1
-                  ;;
-       --suite )  shift
-                  export SUITE=$1
-                  ;;
-       --toolchain )  shift
-                  export TOOLCHAIN=$1
-                  ;;
-       --cpu_arch )  shift
-                  export CPU_ARCH=$1
-                  ;;
-       --verbose )  shift
-                  export VERBOSE=$1
-                  ;;
-       --archive_tests )
-                  export TEST_COMBINE_ARCHIVE=1
-                  ;;
-       --include_panic_tests )
-                  export INCLUDE_PANIC_TESTS=1
-                  ;;
-       --include )  shift
-                  export INCLUDE="$INCLUDE -I $1/"
-                  INCLUDE_PATHS=("${INCLUDE_PATHS[@]}" $1)
-                  ;;
-       --help | -h )
-                  echo "$HELP"
-                  exit 1
-                  ;;
-               * )
-                  echo "Error: Invaid argument $1"
-                  echo "$HELP"
-                  exit 1
-        esac
-        shift
-done
-
-echo "----------Process input arguments- start-------------"
-if [ -z "$SOURCE" ]
-then
-   export SOURCE=./
-   echo "--source option is not provided, hence setting \$SOURCE to present dir"
-else
-   echo "setting \$SOURCE to $SOURCE"
-fi
-
-if [ ! -d "$SOURCE/dev_apis" ] || [ ! -d "$SOURCE/ff" ]
-then
-   echo "Error: Could not find architecture test suite directories in current path $SOURCE"
-   exit 1
-fi
-
-if [ -z "$BUILD" ]
-then
-   export BUILD="./BUILD"
-   echo "--build option is not provided, hence setting \$BUILD to ./BUILD"
-else
-   echo "setting \$BUILD to $BUILD"
-fi
-
-if [ -z "$TARGET" ]
-then
-   echo "Provide target string as argument using --target <string>"
-   exit 1
-else
-   echo "Using \$TARGET=$TARGET"
-fi
-
-if [ "$SUITE" != "ipc" ] && [ "$SUITE" != "crypto" ] &&  [ "$SUITE" != "protected_storage" ] &&
-   [ "$SUITE" != "internal_trusted_storage" ] &&  [ "$SUITE" != "initial_attestation" ]
-then
-   echo "Error: Unsupported value for --suite=$SUITE.
-   Refer help message to see supported suites"
-   exit 1
-fi
-
-PLATFORM_MAKEFILE=$SOURCE/platform/targets/$TARGET/Makefile
-PSA_IPC_IMPLEMENTED=`grep -c "^ *PSA_IPC_IMPLEMENTED\s*:=\s*1" $PLATFORM_MAKEFILE`
-PSA_CRYPTO_IMPLEMENTED=`grep -c "^ *PSA_CRYPTO_IMPLEMENTED\s*:=\s*1" $PLATFORM_MAKEFILE`
-PSA_PROTECTED_STORAGE_IMPLEMENTED=`grep -c "^ *PSA_PROTECTED_STORAGE_IMPLEMENTED\s*:=\s*1" $PLATFORM_MAKEFILE`
-PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED=`grep -c "^ *PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED\s*:=\s*1" $PLATFORM_MAKEFILE`
-PSA_INITIAL_ATTESTATION_IMPLEMENTED=`grep -c "^ *PSA_INITIAL_ATTESTATION_IMPLEMENTED\s*:=\s*1" $PLATFORM_MAKEFILE`
-WATCHDOG_AVAILABLE=`grep -c "^ *watchdog.num\s*=\s*1\s*;" $SOURCE/platform/targets/$TARGET/target.cfg`
-SP_HEAP_MEM_SUPP=`grep -c "^ *dut.0.sp_heap_mem_supp\s*=\s*AVAILABLE\s*;" $SOURCE/platform/targets/$TARGET/target.cfg`
-
-# Check PSA_IPC_IMPLEMENTED validity
-if [ $SUITE == "ipc" ] && [ $PSA_IPC_IMPLEMENTED == "0" ]
-then
-   echo "Error: PSA_IPC_IMPLEMENTED must be set to 1 for ipc suite
-         in $PLATFORM_MAKEFILE"
-   exit 1
-fi
-
-# Check PSA_CRYPTO_IMPLEMENTED validity
-if [ $SUITE == "crypto" ] && [ $PSA_CRYPTO_IMPLEMENTED == "0" ]
-then
-   echo "Error: PSA_CRYPTO_IMPLEMENTED must be set to 1 for crypto suite
-         in $PLATFORM_MAKEFILE"
-   exit 1
-fi
-
-# Check PSA_PROTECTED_STORAGE_IMPLEMENTED validity
-if [ $SUITE == "protected_storage" ] && [ $PSA_PROTECTED_STORAGE_IMPLEMENTED == "0" ]
-then
-   echo "Error: PSA_PROTECTED_STORAGE_IMPLEMENTED must be set to 1 for protected_storage suite
-         in $PLATFORM_MAKEFILE"
-   exit 1
-fi
-
-# Check PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED validity
-if [ $SUITE == "internal_trusted_storage" ] && [ $PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == "0" ]
-then
-   echo "Error: PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED must be set to 1 for internal_trusted_storage suite
-         in $PLATFORM_MAKEFILE"
-   exit 1
-fi
-
-# Check PSA_INITIAL_ATTESTATION_IMPLEMENTED validity
-if [ $SUITE == "initial_attestation" ] && [ $PSA_INITIAL_ATTESTATION_IMPLEMENTED == "0" ]
-then
-   echo "Error: PSA_INITIAL_ATTESTATION_IMPLEMENTED must be set to 1 for initial_attestation suite
-         in $PLATFORM_MAKEFILE"
-   exit 1
-fi
-
-if [ $PSA_IPC_IMPLEMENTED == "1" ]
-then
-    # Check --include validity for ipc suite
-    if [ -z "$INCLUDE" ]
-    then
-          echo "Error: --include option is not provided. $IPC_HEADER_FILE_REQ"
-          exit 1
-    else
-        for path in "${INCLUDE_PATHS[@]}"
-        do
-            if [ -f "$path/psa/client.h" ]
-            then
-                export CLIENT_FILE_FOUND=1
-            fi
-            if [ -f "$path/psa/service.h" ]
-            then
-                export SERVICE_FILE_FOUND=1
-            fi
-            if [ -f "$path/psa_manifest/sid.h" ] && [ -f "$path/psa_manifest/pid.h" ]
-            then
-                export MANIFEST_OUT_FILE_FOUND=1
-            fi
-            if [ -f "$path/psa/lifecycle.h" ]
-            then
-                export LIFECYCLE_FILE_FOUND=1
-            fi
-        done
-        if [ $CLIENT_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/client.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$IPC_HEADER_FILE_REQ"
-            exit 1
-        fi
-        if [ $SERVICE_FILE_FOUND == "0" ]
-        then
-            echo "Couldn't find psa/service.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$IPC_HEADER_FILE_REQ"
-            exit 1
-        fi
-        if [ $MANIFEST_OUT_FILE_FOUND == "0" ]
-        then
-            echo "Couldn't find psa_manifest/sid.h or psa_manifest/pid.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$IPC_HEADER_FILE_REQ"
-            exit 1
-        fi
-        if [ $LIFECYCLE_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/lifecycle.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$IPC_HEADER_FILE_REQ"
-            exit 1
-        fi
-    fi
-fi
-
-if [ $PSA_CRYPTO_IMPLEMENTED == "1" ]
-then
-    # Check --include validity for crypto suite
-    if [ -z "$INCLUDE" ]
-    then
-          echo "Error: --include option is not provided."
-          echo "$CRYPTO_HEADER_FILE_REQ"
-          exit 1
-    else
-        for path in "${INCLUDE_PATHS[@]}"
-        do
-            if [ -f "$path/psa/crypto.h" ]
-            then
-                export CRYPTO_FILE_FOUND=1
-            fi
-        done
-        if [ $CRYPTO_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/crypto.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$CRYPTO_HEADER_FILE_REQ"
-            exit 1
-        fi
-    fi
-fi
-
-if [ $PSA_PROTECTED_STORAGE_IMPLEMENTED == "1" ]
-then
-    # Check --include validity for protected storage suite
-    if [ -z "$INCLUDE" ]
-    then
-          echo "Error: --include option is not provided."
-          echo "$PS_HEADER_FILE_REQ"
-          exit 1
-    else
-        for path in "${INCLUDE_PATHS[@]}"
-        do
-            if [ -f "$path/psa/protected_storage.h" ]
-            then
-                export PROTECTED_STORAGE_FILE_FOUND=1
-            fi
-        done
-        if [ $PROTECTED_STORAGE_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/protected_storage.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$PS_HEADER_FILE_REQ"
-            exit 1
-        fi
-    fi
-fi
-
-if [ $PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED == "1" ]
-then
-    # Check --include validity for internal trusted storage suite
-    if [ -z "$INCLUDE" ]
-    then
-          echo "Error: --include option is not provided."
-          echo "$ITS_HEADER_FILE_REQ"
-          exit 1
-    else
-        for path in "${INCLUDE_PATHS[@]}"
-        do
-            if [ -f "$path/psa/internal_trusted_storage.h" ]
-            then
-                export INTERNAL_TRUSTED_STORAGE_FILE_FOUND=1
-            fi
-        done
-        if [ $INTERNAL_TRUSTED_STORAGE_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/internal_trusted_storage.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$ITS_HEADER_FILE_REQ"
-            exit 1
-        fi
-    fi
-fi
-
-if [ $PSA_INITIAL_ATTESTATION_IMPLEMENTED == "1" ]
-then
-    # Check --include validity for initial_attestation suite
-    if [ -z "$INCLUDE" ]
-    then
-          echo "Error: --include option is not provided."
-          echo "$ATTESTATION_HEADER_FILE_REQ"
-          exit 1
-    else
-        for path in "${INCLUDE_PATHS[@]}"
-        do
-            if [ -f "$path/psa/initial_attestation.h" ]
-            then
-                export INITIAL_ATTESTATION_FILE_FOUND=1
-            fi
-            if [ -f "$path/psa/crypto.h" ]
-            then
-                export CRYPTO_FILE_FOUND=1
-            fi
-        done
-
-        if [ $INITIAL_ATTESTATION_FILE_FOUND ==  "0" ]
-        then
-            echo "Couldn't find psa/initial_attestation.h file in paths: ${INCLUDE_PATHS[@]}"
-            echo "$ATTESTATION_HEADER_FILE_REQ"
-            exit 1
-        elif [ $INITIAL_ATTESTATION_FILE_FOUND ==  "1" ]
-        then
-            if [ $CRYPTO_FILE_FOUND ==  "0" ]
-            then
-                echo "Couldn't find psa/crypto.h file in paths: ${INCLUDE_PATHS[@]}"
-                echo "$CRYPTO_HEADER_FILE_REQ"
-                exit 1
-            fi
-            if [ ! -d "$SOURCE/platform/targets/$TARGET/nspe/initial_attestation/ext" ]
-            then
-                git clone https://github.com/laurencelundblade/QCBOR.git $SOURCE/platform/targets/$TARGET/nspe/initial_attestation/ext
-                cd $SOURCE/platform/targets/$TARGET/nspe/initial_attestation/ext; git checkout da53227db1488dde0952bdff66c3d904dce270b3 ; cd -
-            else
-                echo "QCBOR library already cloned"
-            fi
-        fi
-    fi
-fi
-
-if [ -z "$TOOLCHAIN" ]
-then
-   export TOOLCHAIN=GNUARM
-   echo "--toolchain option is not provided, hence using default value \$TOOLCHAIN=$TOOLCHAIN"
-else
-   echo "Using \$TOOLCHAIN=$TOOLCHAIN"
-fi
-
-if [ $TOOLCHAIN != "GNUARM" ] && [ $TOOLCHAIN != "ARMCLANG" ]
-then
-   echo "Error: Unsupported value for --toolchain=$TOOLCHAIN.
-   Supported toolchain are GNUARM and ARMCLANG"
-   exit 1
-fi
-
-if [ -z "$CPU_ARCH" ]
-then
-   echo "Error: Provide cpu arch string as argument using --cpu_arch <string>"
-   echo "Supported CPU arch are armv8m_ml, armv8m_bl, armv7m"
-   exit 1
-else
-   echo "Using \$CPU_ARCH=$CPU_ARCH"
-fi
-
-if [ $CPU_ARCH != "armv8m_ml" ] && [ $CPU_ARCH != "armv8m_bl" ] && [ $CPU_ARCH != "armv7m" ]
-then
-   echo "Error: Unsupported value for --cpu_arch=$CPU_ARCH.
-   Supported CPU arch are armv8m_ml, armv8m_bl, armv7m"
-   exit 1
-fi
-
-if [ ! -z "$VERBOSE" ]
-then
-    if [ $VERBOSE != "1" ] && [ $VERBOSE != "2" ] &&
-       [ $VERBOSE != "3" ] && [ $VERBOSE != "4" ] &&
-       [ $VERBOSE != "5" ]
-    then
-        echo "Error: Unsupported value for --verbose=$VERBOSE."
-        echo "Supported print levels are:"
-        echo "1 - INFO & above."
-        echo "2 - DEBUG & above."
-        echo "3 - TEST & above."
-        echo "4 - WARN & ERROR."
-        echo "5 - ERROR."
-        exit 1
-    fi
-else
-    export VERBOSE=3
-fi
-
-if [ $INCLUDE_PANIC_TESTS == "1" ] && [ $WATCHDOG_AVAILABLE == "0" ]
-then
-   echo "
-Warning: You have set watchdog.num to 0 in $SOURCE/platform/targets/$TARGET/target.cfg
-Note - To test PSA APIs panic conditions, test harness may require to access watchdog timer
-to recover from panic and to be able to continue with next test.
-Ignore this warning if system under test has capability to reset the system
-when it encounters panic condition.
-"
-fi
-
-echo "----------Process input arguments- complete-------------"
-echo ""
-
-MAKE_OPTIONS=" SOURCE=$SOURCE "
-MAKE_OPTIONS+=" BUILD=$BUILD "
-MAKE_OPTIONS+=" TARGET=$TARGET "
-MAKE_OPTIONS+=" SUITE=$SUITE "
-MAKE_OPTIONS+=" TOOLCHAIN=$TOOLCHAIN "
-MAKE_OPTIONS+=" CPU_ARCH=$CPU_ARCH "
-MAKE_OPTIONS+=" VERBOSE=$VERBOSE "
-MAKE_OPTIONS+=" TEST_COMBINE_ARCHIVE=$TEST_COMBINE_ARCHIVE "
-MAKE_OPTIONS+=" INCLUDE_PANIC_TESTS=$INCLUDE_PANIC_TESTS "
-MAKE_OPTIONS+=" WATCHDOG_AVAILABLE=$WATCHDOG_AVAILABLE "
-MAKE_OPTIONS+=" SP_HEAP_MEM_SUPP=$SP_HEAP_MEM_SUPP "
-MAKE_OPTIONS+=" PSA_IPC_IMPLEMENTED=$PSA_IPC_IMPLEMENTED "
-MAKE_OPTIONS+=" PSA_CRYPTO_IMPLEMENTED=$PSA_CRYPTO_IMPLEMENTED "
-MAKE_OPTIONS+=" PSA_PROTECTED_STORAGE_IMPLEMENTED=$PSA_PROTECTED_STORAGE_IMPLEMENTED "
-MAKE_OPTIONS+=" PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED=$PSA_INTERNAL_TRUSTED_STORAGE_IMPLEMENTED "
-MAKE_OPTIONS+=" PSA_INITIAL_ATTESTATION_IMPLEMENTED=$PSA_INITIAL_ATTESTATION_IMPLEMENTED "
-MAKE_OPTIONS+=" USER_INCLUDE=\"$INCLUDE\" "
-
-#Build VAL/PAL static library and Tests ELFs
-echo "make -f $SOURCE/tools/makefiles/Makefile $MAKE_OPTIONS USER_INCLUDE=\"$INCLUDE\" all "
-make -f $SOURCE/tools/makefiles/Makefile $MAKE_OPTIONS USER_INCLUDE="$INCLUDE" all
diff --git a/api-tests/tools/scripts/target_cfg/CMakeLists.txt b/api-tests/tools/scripts/target_cfg/CMakeLists.txt
new file mode 100644
index 0000000..546c068
--- /dev/null
+++ b/api-tests/tools/scripts/target_cfg/CMakeLists.txt
@@ -0,0 +1,76 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# Set the minimum required version of CMake for the project
+cmake_minimum_required(VERSION 3.10)
+
+# cmake_policy
+cmake_policy(SET CMP0057 NEW)
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../tools/cmake)
+include("common/CMakeSettings")
+include("common/Utils")
+
+# Let the CMake look for C compiler
+project(TargetConfigGen LANGUAGES C)
+
+# Check whether required arguments are passed to CMake
+_check_arguments("OUT_DIR"
+		"TARGET"
+		"GENERATOR_FILE"
+		"INCLUDE_DIR"
+		"TARGET_CONFIGURATION_FILE"
+		"TGT_CONFIG_SOURCE_C"
+		"OUTPUT_HEADER"
+		"DATABASE_TABLE_NAME"
+		"DATABASE_TABLE_SECTION_NAME"
+		"TARGET_HEADER_GEN_INCLUDE_PATHS"
+)
+
+# add_custom_command to generate intermediate source file
+add_custom_command(
+	OUTPUT
+	${TGT_CONFIG_SOURCE_C}
+	COMMENT "[PSA] : Creating generator source ${TGT_CONFIG_SOURCE_C}"
+	COMMAND ${PYTHON_EXECUTABLE} ${GENERATOR_FILE} ${TARGET} ${INCLUDE_DIR}/val_target.h ${TARGET_CONFIGURATION_FILE} ${TGT_CONFIG_SOURCE_C} ${OUTPUT_HEADER} ${DATABASE_TABLE_NAME} ${DATABASE_TABLE_SECTION_NAME}
+)
+
+# Adding command to execute the generator
+add_custom_command(
+	OUTPUT
+	${OUTPUT_HEADER}
+	COMMENT "[PSA] : Creating output header ${OUTPUT_HEADER}"
+	COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
+)
+
+# Adding executable
+add_executable(${PROJECT_NAME} ${TGT_CONFIG_SOURCE_C})
+foreach(include_path ${TARGET_HEADER_GEN_INCLUDE_PATHS})
+	target_include_directories(${PROJECT_NAME} PRIVATE ${include_path})
+endforeach()
+set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-m32 -w")
+set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-m32")
+
+# Adding target to tell we want OUTPUT_HEADER
+add_custom_target(
+	run_generator_output ALL
+	SOURCES ${OUTPUT_HEADER}
+)
+
+# install target to put the OUTPUT_HEADER to it's final location
+get_filename_component(INSTALL_DST "${OUT_DIR}" ABSOLUTE)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_HEADER} DESTINATION ${INSTALL_DST})
diff --git a/api-tests/tools/scripts/targetConfigGen.py b/api-tests/tools/scripts/target_cfg/targetConfigGen.py
similarity index 99%
rename from api-tests/tools/scripts/targetConfigGen.py
rename to api-tests/tools/scripts/target_cfg/targetConfigGen.py
index 6442f74..fd1f7e4 100644
--- a/api-tests/tools/scripts/targetConfigGen.py
+++ b/api-tests/tools/scripts/target_cfg/targetConfigGen.py
@@ -41,6 +41,9 @@
 unique_major_groups = []
 unique_minor_components = []
 
+if section_name == "NOSECTION":
+	section_name = ""
+
 def get_minor_major_map():
 	""" This method populates the dictionary which maps between every available minor component to their major group """
 	try:
diff --git a/api-tests/tools/scripts/test_elf_combine.pl b/api-tests/tools/scripts/test_elf_combine.pl
deleted file mode 100755
index fb50e32..0000000
--- a/api-tests/tools/scripts/test_elf_combine.pl
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env perl
-#/** @file
-# * Copyright (c) 2018-2019, Arm Limited or its affiliates. All rights reserved.
-# * SPDX-License-Identifier : Apache-2.0
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# *  http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-#**/
-
-use File::Find;
-use File::Basename;
-
-#Inputs
-$test_list_file = $ARGV[0];
-
-@suite_out =  split("/.testlist.txt", $test_list_file);
-
-# Final output elf file
-$output_elf = "$suite_out[0]/test_elf_combine.bin";
-
-
-my @all_elf_paths;
-@test_list = `cat $test_list_file`;
-
-
-open(OUT, '>:raw', $output_elf) or die "Unable to open: $!";
-
-# Collecting all elf file paths
-
-foreach $test (@test_list)
-{
-	chomp($test);
-	push @all_elf_paths, "$suite_out[0]/$test/test.elf";
-	if (!(-e "$suite_out[0]/$test/test.elf"))
-	{
-		print "ELF not found - $suite_out[0]/$test/test.elf\n";
-		exit 1;
-	}
-}
-
-foreach $elf (@all_elf_paths) {
-
-    # Find elf sizes
-    $elf_size = -s $elf;
-
-    # Get readelf program header info from either elf and process it
-    $out = `readelf -l $elf`;
-    if($out =~ /LOAD(\s+)(0[xX][0-9a-fA-F]+)/)
-	{
-	   $program_header = hex($2);
-    }
-
-    # Determining test_id from elf at location pointed by program header
-    open(TEST_NS_ID, '<:raw', $elf) or die "Unable to open: $!";
-    seek(TEST_NS_ID, $program_header, 0);
-    read TEST_NS_ID, $test_id_raw, 4;
-
-    $test_id = unpack('L<', $test_id_raw);
-    close TEST_NS_ID;
-
-    printf("test_id:\t%4d, ", $test_id);
-    print "ELF:$elf,\tSIZE:$elf_size\n";
-
-    # 'L' unsigned-32 ; '<' Little endian
-    print OUT pack('L<', 0xFACEFACE);
-    print OUT pack('L<', $test_id);
-    print OUT pack('L<', $elf_size);
-
-    # Temporarily closing final ELF to concatenate ELFs
-    close OUT;
-    system("cat $elf >> $output_elf");
-    # Open final ELF again
-    open(OUT, '>>:raw', $output_elf) or die "Unable to open: $!";
-}
-print OUT pack('L<', 0xC3C3C3C3);
-close OUT;
diff --git a/api-tests/val/nspe/val_attestation.c b/api-tests/val/nspe/val_attestation.c
index cd8069a..82d7191 100644
--- a/api-tests/val/nspe/val_attestation.c
+++ b/api-tests/val/nspe/val_attestation.c
@@ -30,6 +30,7 @@
 
 int32_t val_attestation_function(int type, ...)
 {
+#ifdef INITIAL_ATTESTATION
     va_list      valist;
     val_status_t status;
 
@@ -37,4 +38,7 @@
     status = pal_attestation_function(type, valist);
     va_end(valist);
     return status;
+#else
+    return VAL_STATUS_ERROR;
+#endif
 }
diff --git a/api-tests/val/nspe/val_crypto.c b/api-tests/val/nspe/val_crypto.c
index da1aced..8af2eb5 100644
--- a/api-tests/val/nspe/val_crypto.c
+++ b/api-tests/val/nspe/val_crypto.c
@@ -29,6 +29,7 @@
 **/
 int32_t val_crypto_function(int type, ...)
 {
+#ifdef CRYPTO
     va_list      valist;
     int32_t      status;
 
@@ -36,4 +37,7 @@
     status = pal_crypto_function(type, valist);
     va_end(valist);
     return status;
+#else
+    return VAL_STATUS_ERROR;
+#endif
 }
diff --git a/api-tests/val/nspe/val_dispatcher.c b/api-tests/val/nspe/val_dispatcher.c
index 8675518..eff584f 100644
--- a/api-tests/val/nspe/val_dispatcher.c
+++ b/api-tests/val/nspe/val_dispatcher.c
@@ -29,6 +29,7 @@
 uint32_t        combine_test_binary_in_ram;
 addr_t          combine_test_binary_addr;
 
+#if !defined(TEST_COMBINE_ARCHIVE)
 static const unsigned char elf_magic_header[ELF_IDENT] = {
     /* 0x7f, 'E', 'L', 'F' */
     0x7f, 0x45, 0x4c, 0x46,
@@ -116,6 +117,7 @@
     *info_addr = test_elfh.e_entry;
     return 0;
 }
+#endif
 
 /**
     @brief        - This function reads the test ELFs from RAM or secondary storage and loads into
@@ -126,7 +128,7 @@
 **/
 val_status_t val_test_load(test_id_t *test_id, test_id_t test_id_prev)
 {
-#if (TEST_COMBINE_ARCHIVE == 0)
+#if !defined(TEST_COMBINE_ARCHIVE)
     test_header_t   test_header;
     addr_t          flash_addr = combine_test_binary_addr;
 
@@ -260,7 +262,7 @@
 **/
 val_status_t val_get_test_entry_addr(addr_t *paddr)
 {
-#if (TEST_COMBINE_ARCHIVE == 0)
+#if !defined(TEST_COMBINE_ARCHIVE)
     *paddr = (addr_t)(((val_test_info_t *)g_test_info_addr)->entry_addr);
 #else
     *paddr = g_test_info_addr;
diff --git a/api-tests/val/nspe/val_framework.c b/api-tests/val/nspe/val_framework.c
index 4f6163c..dad52d6 100644
--- a/api-tests/val/nspe/val_framework.c
+++ b/api-tests/val/nspe/val_framework.c
@@ -486,7 +486,7 @@
        return;
    }
 
-#if (WATCHDOG_AVAILABLE == 1)
+#ifdef WATCHDOG_AVAILABLE
    /* Initialise watchdog */
    status = val_wd_timer_init(GET_WD_TIMOUT_TYPE(test_bitfield));
    if (VAL_ERROR(status))
@@ -518,7 +518,7 @@
 {
     val_status_t         status = VAL_STATUS_SUCCESS;
 
-#if (WATCHDOG_AVAILABLE == 1)
+#ifdef WATCHDOG_AVAILABLE
     status = val_wd_timer_disable();
     if (VAL_ERROR(status))
     {
diff --git a/api-tests/val/nspe/val_internal_trusted_storage.c b/api-tests/val/nspe/val_internal_trusted_storage.c
index e79e9c0..5c910fd 100644
--- a/api-tests/val/nspe/val_internal_trusted_storage.c
+++ b/api-tests/val/nspe/val_internal_trusted_storage.c
@@ -29,6 +29,7 @@
 **/
 uint32_t val_its_function(int type, ...)
 {
+#ifdef INTERNAL_TRUSTED_STORAGE
     va_list      valist;
     uint32_t status;
 
@@ -36,4 +37,7 @@
     status = pal_its_function(type, valist);
     va_end(valist);
     return status;
+#else
+    return VAL_STATUS_ERROR;
+#endif
 }
diff --git a/api-tests/val/nspe/val_peripherals.c b/api-tests/val/nspe/val_peripherals.c
index dccc4e4..e7674f5 100644
--- a/api-tests/val/nspe/val_peripherals.c
+++ b/api-tests/val/nspe/val_peripherals.c
@@ -170,6 +170,7 @@
 {
     val_status_t    status = VAL_STATUS_SUCCESS;
 
+#ifdef WATCHDOG_AVAILABLE
     /* Disable watchdog Timer */
     val_wd_timer_disable();
 
@@ -186,6 +187,7 @@
     {
         return status;
     }
+#endif
 
     return status;
 }
diff --git a/api-tests/val/nspe/val_protected_storage.c b/api-tests/val/nspe/val_protected_storage.c
index 06c1f50..f3869de 100644
--- a/api-tests/val/nspe/val_protected_storage.c
+++ b/api-tests/val/nspe/val_protected_storage.c
@@ -29,6 +29,7 @@
 **/
 uint32_t val_ps_function(int type, ...)
 {
+#ifdef PROTECTED_STORAGE
     va_list      valist;
     uint32_t status;
 
@@ -36,4 +37,7 @@
     status = pal_ps_function(type, valist);
     va_end(valist);
     return status;
+#else
+    return VAL_STATUS_ERROR;
+#endif
 }
diff --git a/api-tests/val/val_nspe.cmake b/api-tests/val/val_nspe.cmake
new file mode 100644
index 0000000..91113b0
--- /dev/null
+++ b/api-tests/val/val_nspe.cmake
@@ -0,0 +1,58 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# Listing all the sources from val
+list(APPEND VAL_SRC_C_NSPE
+	${PSA_ROOT_DIR}/val/nspe/val_entry.c
+	${PSA_ROOT_DIR}/val/nspe/val_dispatcher.c
+	${PSA_ROOT_DIR}/val/nspe/val_framework.c
+	${PSA_ROOT_DIR}/val/nspe/val_crypto.c
+	${PSA_ROOT_DIR}/val/nspe/val_interfaces.c
+	${PSA_ROOT_DIR}/val/nspe/val_peripherals.c
+	${PSA_ROOT_DIR}/val/common/val_target.c
+	${PSA_ROOT_DIR}/val/nspe/val_protected_storage.c
+	${PSA_ROOT_DIR}/val/nspe/val_internal_trusted_storage.c
+	${PSA_ROOT_DIR}/val/nspe/val_attestation.c
+)
+
+# Create VAL NSPE library
+add_library(${PSA_TARGET_VAL_NSPE_LIB} STATIC ${VAL_SRC_C_NSPE})
+
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+        target_include_directories(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE ${psa_inc_path})
+endforeach()
+
+target_include_directories(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/val/spe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+)
+
+if(${WATCHDOG_AVAILABLE} EQUAL 1)
+	target_compile_definitions(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE WATCHDOG_AVAILABLE)
+endif()
+if(${TEST_COMBINE_ARCHIVE} EQUAL 1)
+	target_compile_definitions(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE TEST_COMBINE_ARCHIVE)
+endif()
+target_compile_definitions(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE VAL_NSPE_BUILD)
+target_compile_definitions(${PSA_TARGET_VAL_NSPE_LIB} PRIVATE TEST_COMBINE_ARCHIVE)
diff --git a/api-tests/val/val_spe.cmake b/api-tests/val/val_spe.cmake
new file mode 100644
index 0000000..c921d8a
--- /dev/null
+++ b/api-tests/val/val_spe.cmake
@@ -0,0 +1,93 @@
+#/** @file
+# * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+# * SPDX-License-Identifier : Apache-2.0
+# *
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *  http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+#**/
+
+# Listing all the sources from val
+list(APPEND VAL_SRC_C_SPE
+	${PSA_ROOT_DIR}/val/spe/val_driver_service_apis.c
+)
+
+# Listing common sources from partition
+list(APPEND PARTITION_COMMON_SRC_C_SPE
+	${PSA_ROOT_DIR}/ff/partition/common/driver_partition.c
+)
+
+# Listing sources from partition for client
+list(APPEND PARTITION_IPC_CLIENT_SRC_C_SPE
+	${PSA_ROOT_DIR}/ff/partition/ipc/client_partition.c
+)
+# Listing sources from partition for server
+list(APPEND PARTITION_IPC_SERVER_SRC_C_SPE
+	${PSA_ROOT_DIR}/ff/partition/ipc/server_partition.c
+)
+
+foreach(src_file ${SUITE_CC_SOURCE_SPE})
+	get_filename_component(FILE_NAME ${src_file} NAME)
+	string(SUBSTRING ${FILE_NAME} 0 9 TEST_STR)
+	if(${TEST_STR} STREQUAL "test_supp")
+		list(APPEND SUITE_SERVER_CC_SRC_SPE ${src_file})
+	else()
+		list(APPEND SUITE_CLIENT_CC_SRC_SPE ${src_file})
+	endif()
+endforeach()
+
+# Create Driver partition library
+add_library(${PSA_TARGET_DRIVER_PARTITION_LIB} STATIC ${VAL_SRC_C_SPE} ${PARTITION_COMMON_SRC_C_SPE} ${PAL_SRC_C_DRIVER_SP})
+
+# Create Client partition library
+add_library(${PSA_TARGET_CLIENT_PARTITION_LIB} STATIC ${PARTITION_IPC_CLIENT_SRC_C_SPE} ${SUITE_CLIENT_CC_SRC_SPE})
+
+# Create Server partition library
+add_library(${PSA_TARGET_SERVER_PARTITION_LIB} STATIC ${PARTITION_IPC_SERVER_SRC_C_SPE} ${SUITE_SERVER_CC_SRC_SPE})
+
+target_include_directories(${PSA_TARGET_DRIVER_PARTITION_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/spe
+	${PSA_ROOT_DIR}/ff/partition/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+)
+
+# Include paths from platform for driver partition build
+foreach(inc_path ${PAL_DRIVER_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_DRIVER_PARTITION_LIB} PRIVATE ${inc_path})
+endforeach()
+
+target_include_directories(${PSA_TARGET_CLIENT_PARTITION_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/nspe
+	${PSA_ROOT_DIR}/val/spe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/ff/partition/ipc
+)
+target_include_directories(${PSA_TARGET_SERVER_PARTITION_LIB} PRIVATE
+	${CMAKE_CURRENT_BINARY_DIR}
+	${PSA_ROOT_DIR}/val/common
+	${PSA_ROOT_DIR}/val/spe
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/common
+	${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe/crypto
+	${PSA_ROOT_DIR}/ff/partition/ipc
+)
+
+# PSA Include directories
+foreach(psa_inc_path ${PSA_INCLUDE_PATHS})
+	target_include_directories(${PSA_TARGET_DRIVER_PARTITION_LIB} PRIVATE ${psa_inc_path})
+	target_include_directories(${PSA_TARGET_CLIENT_PARTITION_LIB} PRIVATE ${psa_inc_path})
+	target_include_directories(${PSA_TARGET_SERVER_PARTITION_LIB} PRIVATE ${psa_inc_path})
+endforeach()