Enable NSID management from NS side

Enable the new implementation on NS client identification from NS side.
Replace TFM_NS_CLIENT_IDENTIFICATION with TFM_NS_MANAGE_NSID.
TFM_NS_MANAGE_NSID is used to enable new NSID management from NS side.
TFM_NS_CLIENT_IDENTIFICATION for old NSID implementation needs to be deprecated.

Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
Change-Id: I29700f1beeaba32e0167b90e9876c334992474d5
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index ace6184..9613494 100755
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -30,6 +30,9 @@
 # NS interface implemented by NSPE
 set(NS_INTERFACE_DIR     ${CMAKE_CURRENT_SOURCE_DIR}/../ns_interface)
 
+# nsid_manager
+set(NSID_MGR_DIR         ${NS_INTERFACE_DIR}/ns_client_ext)
+
 #################### TF-M NS interface (header only) ###########################
 
 add_library(tfm_ns_interface INTERFACE)
@@ -47,6 +50,7 @@
 target_include_directories(tfm_ns_interface
     INTERFACE
         ${NS_INTERFACE_DIR}
+        ${NSID_MGR_DIR}
 )
 
 # PSA interface files are generated from a template
@@ -65,7 +69,7 @@
     INTERFACE
         $<$<BOOL:${TFM_PSA_API}>:TFM_PSA_API>
         $<$<STREQUAL:${TEST_PSA_API},IPC>:PSA_API_TEST_IPC>
-        $<$<BOOL:${TFM_NS_CLIENT_IDENTIFICATION}>:TFM_NS_CLIENT_IDENTIFICATION>
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:TFM_NS_MANAGE_NSID>
         $<$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>:TFM_MULTI_CORE_TOPOLOGY>
         $<$<BOOL:${TFM_MULTI_CORE_NS_OS}>:TFM_MULTI_CORE_NS_OS>
         $<$<AND:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>,$<BOOL:${TFM_MULTI_CORE_NS_OS}>>:TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD>
@@ -76,6 +80,11 @@
 
 add_library(tfm_api_ns STATIC)
 
+target_sources(tfm_api_ns
+    PRIVATE
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${NSID_MGR_DIR}/tfm_nsid_manager.c>
+)
+
 if (${TFM_PSA_API})
     target_sources(tfm_api_ns PRIVATE
         $<$<OR:$<BOOL:${FORWARD_PROT_MSG}>,$<BOOL:${TFM_PARTITION_PLATFORM}>>:${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c>
@@ -269,9 +278,11 @@
 
 target_sources(CMSIS_5_tfm_ns
     INTERFACE
+        ${NSID_MGR_DIR}/tz_shim_layer.c
         ${CMSIS_5_PATH}/RTOS2/RTX/Config/RTX_Config.c
         ${CMSIS_5_PATH}/RTOS2/RTX/Source/rtx_lib.c
         ${CMAKE_CURRENT_SOURCE_DIR}/os_wrapper_cmsis_rtos_v2.c
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${CMAKE_CURRENT_SOURCE_DIR}/tfm_nsid_map_table.c>
 )
 
 target_include_directories(CMSIS_5_tfm_ns
@@ -280,9 +291,15 @@
         ${CMSIS_5_PATH}/RTOS2/Include
         ${CMSIS_5_PATH}/RTOS2/RTX/Include
         ${CMSIS_5_PATH}/RTOS2/RTX/Config
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${CMAKE_CURRENT_SOURCE_DIR}>
 )
 
 target_link_libraries(CMSIS_5_tfm_ns
     INTERFACE
         platform_ns
 )
+
+target_compile_definitions(CMSIS_5_tfm_ns
+    INTERFACE
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:TFM_NS_MANAGE_NSID>
+)