Platform: Add NV counter interface

This patch adds the TF-M non-volatile(NV) counter interface.

Change-Id: I2b87dfadf9c53bd755f26867de678a4e837bbdcb
Signed-off-by: Marc Moreno <marc.morenoberengue@arm.com>
diff --git a/secure_fw/CMakeLists.txt b/secure_fw/CMakeLists.txt
index 9645b80..c57e657 100644
--- a/secure_fw/CMakeLists.txt
+++ b/secure_fw/CMakeLists.txt
@@ -36,7 +36,12 @@
 set(BUILD_NATIVE_DRIVERS On)
 set(BUILD_STARTUP On)
 set(BUILD_TARGET_CFG On)
+# FIXME: The following TARGET flags are platform dependent.
+#        It is required to add a mechanism to expose the
+#        target capabilities and, based on them, set the
+#        flags properly.
 set(BUILD_TARGET_HARDWARE_KEYS On)
+set(BUILD_TARGET_NV_COUNTERS On)
 set(BUILD_CMSIS_DRIVERS On)
 set(BUILD_TIME Off)
 set(BUILD_UART_STDOUT On)
@@ -63,7 +68,15 @@
 #Set common compiler flags
 config_setting_shared_compiler_flags(${PROJECT_OBJ_LIB})
 
-if (CORE_TEST)
+if(NOT DEFINED TARGET_NV_COUNTERS_ENABLE)
+	set(TARGET_NV_COUNTERS_ENABLE OFF)
+endif()
+
+if(TARGET_NV_COUNTERS_ENABLE)
+	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_NVCOUNTERS_ENABLE APPEND)
+endif()
+
+if(CORE_TEST)
 	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_CORE_DEBUG TFM_PARTITION_TEST_CORE APPEND)
 endif()
 
diff --git a/secure_fw/core/CMakeLists.inc b/secure_fw/core/CMakeLists.inc
index d5bb9e2..91ba969 100644
--- a/secure_fw/core/CMakeLists.inc
+++ b/secure_fw/core/CMakeLists.inc
@@ -52,6 +52,7 @@
 set(BUILD_STARTUP Off)
 set(BUILD_TARGET_CFG Off)
 set(BUILD_TARGET_HARDWARE_KEYS Off)
+set(BUILD_TARGET_NV_COUNTERS Off)
 set(BUILD_CMSIS_DRIVERS Off)
 set(BUILD_TIME Off)
 set(BUILD_UART_STDOUT Off)
diff --git a/secure_fw/services/secure_storage/CMakeLists.inc b/secure_fw/services/secure_storage/CMakeLists.inc
index 88639fc..2231a24 100644
--- a/secure_fw/services/secure_storage/CMakeLists.inc
+++ b/secure_fw/services/secure_storage/CMakeLists.inc
@@ -110,6 +110,7 @@
 	set(BUILD_STARTUP Off)
 	set(BUILD_TARGET_CFG Off)
 	set(BUILD_TARGET_HARDWARE_KEYS Off)
+	set(BUILD_TARGET_NV_COUNTERS Off)
 	set(BUILD_CMSIS_DRIVERS Off)
 	set(BUILD_TIME Off)
 	set(BUILD_UART_STDOUT Off)
diff --git a/secure_fw/spm/CMakeLists.inc b/secure_fw/spm/CMakeLists.inc
index be6bdf8..cdc2e7c 100644
--- a/secure_fw/spm/CMakeLists.inc
+++ b/secure_fw/spm/CMakeLists.inc
@@ -44,6 +44,7 @@
 set(BUILD_STARTUP Off)
 set(BUILD_TARGET_CFG Off)
 set(BUILD_TARGET_HARDWARE_KEYS Off)
+set(BUILD_TARGET_NV_COUNTERS Off)
 set(BUILD_CMSIS_DRIVERS Off)
 set(BUILD_TIME Off)
 set(BUILD_UART_STDOUT Off)