Core: fix NSPM default client ID assignment

If TFM_NS_CLIENT_IDENTIFICATION build option is disabled,
always use default NS client id of -1

Change-Id: I565bafd7eac9c30ec4e027ff9925ca483a875d9f
Signed-off-by: Miklos Balint <miklos.balint@arm.com>
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 8b49abb..efc979f 100755
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -47,11 +47,18 @@
 	"${INTERFACE_DIR}/src/tfm_audit_api.c"
 	"${INTERFACE_DIR}/src/tfm_crypto_api.c"
 	"${INTERFACE_DIR}/src/tfm_platform_api.c"
-	"${INTERFACE_DIR}/src/tfm_nspm_svc_handler.c"
-	"${INTERFACE_DIR}/src/tfm_nspm_api.c"
 	"${INTERFACE_DIR}/src/tfm_ns_lock_rtx.c"
 	)
 
+if (NOT DEFINED TFM_NS_CLIENT_IDENTIFICATION)
+	message(FATAL_ERROR "Incomplete build configuration: TFM_NS_CLIENT_IDENTIFICATION is undefined.")
+elseif (TFM_NS_CLIENT_IDENTIFICATION)
+	list(APPEND NS_APP_SRC
+		"${INTERFACE_DIR}/src/tfm_nspm_svc_handler.c"
+		"${INTERFACE_DIR}/src/tfm_nspm_api.c"
+		)
+endif()
+
 set(BUILD_CMSIS_CORE On)
 set(BUILD_RETARGET On)
 set(BUILD_NATIVE_DRIVERS On)
diff --git a/app/main_ns.c b/app/main_ns.c
index c3ba83b..f430df7 100644
--- a/app/main_ns.c
+++ b/app/main_ns.c
@@ -38,7 +38,9 @@
 #define X(SVC_ENUM, SVC_HANDLER) (void*)SVC_HANDLER,
 
     /* SVC API for Services */
+#ifdef TFM_NS_CLIENT_IDENTIFICATION
     LIST_SVC_NSPM
+#endif
 
 #undef X
 
diff --git a/interface/include/tfm_ns_svc.h b/interface/include/tfm_ns_svc.h
index 794cc5c..0399af9 100644
--- a/interface/include/tfm_ns_svc.h
+++ b/interface/include/tfm_ns_svc.h
@@ -48,7 +48,9 @@
 #define X(SVC_ENUM, SVC_HANDLER) SVC_ENUM,
 
     /* SVC API for Services */
+#ifdef TFM_NS_CLIENT_IDENTIFICATION
     LIST_SVC_NSPM
+#endif
 
 #undef X
 
diff --git a/secure_fw/CMakeLists.txt b/secure_fw/CMakeLists.txt
index 785bc74..865fa24 100644
--- a/secure_fw/CMakeLists.txt
+++ b/secure_fw/CMakeLists.txt
@@ -76,10 +76,18 @@
 	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_NVCOUNTERS_ENABLE APPEND)
 endif()
 
-if(CORE_TEST)
+if (NOT DEFINED CORE_TEST)
+	message(FATAL_ERROR "Incomplete build configuration: CORE_TEST is undefined.")
+elseif(CORE_TEST)
 	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_CORE_DEBUG TFM_PARTITION_TEST_CORE APPEND)
 endif()
 
+if (NOT DEFINED TFM_NS_CLIENT_IDENTIFICATION)
+	message(FATAL_ERROR "Incomplete build configuration: TFM_NS_CLIENT_IDENTIFICATION is undefined.")
+elseif (TFM_NS_CLIENT_IDENTIFICATION)
+	target_compile_definitions(${PROJECT_OBJ_LIB} PRIVATE TFM_NS_CLIENT_IDENTIFICATION)
+endif()
+
 #Set include directories
 embedded_target_include_directories(TARGET ${PROJECT_OBJ_LIB} PATH ${TFM_ROOT_DIR} ABSOLUTE APPEND)
 
diff --git a/secure_fw/core/tfm_nspm.c b/secure_fw/core/tfm_nspm.c
index e4e3a18..8912b04 100644
--- a/secure_fw/core/tfm_nspm.c
+++ b/secure_fw/core/tfm_nspm.c
@@ -14,7 +14,7 @@
 #endif
 #define INVALID_CLIENT_ID 0
 
-#define CLIENT_ID_RANGE_START ((int32_t)-1)
+#define DEFAULT_NS_CLIENT_ID ((int32_t)-1)
 
 #define INVALID_NS_CLIENT_IDX (-1)
 #define DEFAULT_NS_CLIENT_IDX   0
@@ -32,13 +32,17 @@
 
 static int get_next_ns_client_id()
 {
-    static int32_t next_ns_client_id = CLIENT_ID_RANGE_START;
+#ifdef TFM_NS_CLIENT_IDENTIFICATION
+    static int32_t next_ns_client_id = DEFAULT_NS_CLIENT_ID;
 
     if (next_ns_client_id > 0)
     {
-        next_ns_client_id = CLIENT_ID_RANGE_START;
+        next_ns_client_id = DEFAULT_NS_CLIENT_ID;
     }
     return next_ns_client_id--;
+#else
+    return DEFAULT_NS_CLIENT_ID;
+#endif
 }
 
 void tfm_nspm_configure_clients(void)
@@ -261,6 +265,7 @@
     return 1U;    // Success
 }
 
+#ifdef TFM_NS_CLIENT_IDENTIFICATION
 __attribute__((cmse_nonsecure_entry))
 enum tfm_status_e tfm_register_client_id (int32_t ns_client_id)
 {
@@ -294,3 +299,4 @@
 
     return TFM_SUCCESS;
 }
+#endif