Test: Enable FP usage in NSPE

1. Enable FP usage in NSPE by adding FP compile option for NS test
   framework and NS library.
2. Add FP test cases in NSPE.

Signed-off-by: Feder Liang <Feder.Liang@arm.com>
Change-Id: I95d97fbfb06e40ef3d4caa5b8f85a52a29c37a46
diff --git a/app/main_ns.c b/app/main_ns.c
index 6b73898..e9ab48d 100644
--- a/app/main_ns.c
+++ b/app/main_ns.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -25,6 +25,9 @@
 #endif
 #include "tfm_log.h"
 #include "uart_stdout.h"
+#if (CONFIG_TFM_FP >= 1)
+#include "cmsis.h"
+#endif
 
 /**
  * \brief Modified table template for user defined SVC functions
@@ -131,6 +134,19 @@
     return ARM_DRIVER_OK;
 }
 
+
+__WEAK int32_t tfm_ns_cp_init(void)
+{
+#if (CONFIG_TFM_FP >= 1)
+#ifdef __GNUC__
+    /* Enable NSPE privileged and unprivilged access to the FP Extension */
+    SCB->CPACR |= (3U << 10U*2U)     /* enable CP10 full access */
+                  | (3U << 11U*2U);  /* enable CP11 full access */
+#endif
+#endif
+    return ARM_DRIVER_OK;
+}
+
 /**
  * \brief main() function
  */
@@ -144,6 +160,11 @@
         while(1);
     }
 
+    if (tfm_ns_cp_init() != ARM_DRIVER_OK) {
+        /* Avoid undefined behavior if co-porcessor init failed */
+        while(1);
+    }
+
     (void) osKernelInitialize();
 
 #ifdef TFM_MULTI_CORE_TOPOLOGY
diff --git a/test/config/check_config.cmake b/test/config/check_config.cmake
index 81d8e70..3e38a60 100644
--- a/test/config/check_config.cmake
+++ b/test/config/check_config.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -27,6 +27,7 @@
 message(STATUS "TEST_NS_MULTI_CORE is set as ${TEST_NS_MULTI_CORE}")
 message(STATUS "TEST_NS_MANAGE_NSID is set as ${TEST_NS_MANAGE_NSID}")
 message(STATUS "TEST_NS_SFN_BACKEND is set as ${TEST_NS_SFN_BACKEND}")
+message(STATUS "TEST_NS_FPU is set as ${TEST_NS_FPU}")
 message(STATUS "TEST_S_ATTESTATION is set as ${TEST_S_ATTESTATION}")
 message(STATUS "TEST_S_AUDIT is set as ${TEST_S_AUDIT}")
 message(STATUS "TEST_S_CRYPTO is set as ${TEST_S_CRYPTO}")
@@ -49,8 +50,8 @@
 tfm_invalid_config(NOT TFM_PARTITION_FIRMWARE_UPDATE AND (TEST_NS_FWU OR TEST_S_FWU))
 tfm_invalid_config(NOT TFM_PARTITION_AUDIT_LOG AND (TEST_NS_AUDIT OR TEST_S_AUDIT))
 tfm_invalid_config((TFM_LIB_MODEL) AND (TEST_NS_IPC OR TEST_S_IPC OR TEST_NS_SLIH_IRQ OR TEST_NS_FLIH_IRQ))
-tfm_invalid_config(CONFIG_TFM_SPE_FP STREQUAL "0" AND TEST_S_FPU)
-tfm_invalid_config(TFM_LIB_MODEL AND TEST_S_FPU)
+tfm_invalid_config(CONFIG_TFM_FP STREQUAL "soft" AND (TEST_S_FPU OR TEST_NS_FPU))
+tfm_invalid_config(TFM_LIB_MODEL AND (TEST_S_FPU OR TEST_NS_FPU))
 tfm_invalid_config((NOT TFM_MULTI_CORE_TOPOLOGY) AND TEST_NS_MULTI_CORE)
 tfm_invalid_config(TEST_NS_T_COSE AND SYMMETRIC_INITIAL_ATTESTATION)
 tfm_invalid_config((NOT TFM_NS_MANAGE_NSID) AND TEST_NS_MANAGE_NSID)
diff --git a/test/config/default_ns_test_config.cmake b/test/config/default_ns_test_config.cmake
index e023776..f601e15 100644
--- a/test/config/default_ns_test_config.cmake
+++ b/test/config/default_ns_test_config.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -26,6 +26,7 @@
 set(TEST_NS_FLIH_IRQ        OFF       CACHE BOOL      "Whether to build NS regression First-Level Interrupt Handling tests")
 set(TEST_NS_MULTI_CORE      ON        CACHE BOOL      "Whether to build NS regression multi-core tests")
 set(TEST_NS_MANAGE_NSID     ON        CACHE BOOL      "Whether to build NS regression NSID management tests")
+set(TEST_NS_FPU             OFF       CACHE BOOL      "Whether to build NS regression FPU tests")
 
 ######################### Platform specific setting ############################
 
diff --git a/test/config/default_test_config.cmake b/test/config/default_test_config.cmake
index 443aee3..c2e325a 100644
--- a/test/config/default_test_config.cmake
+++ b/test/config/default_test_config.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -27,6 +27,7 @@
 set(TEST_NS_MULTI_CORE      OFF        CACHE BOOL      "Whether to build NS regression multi-core tests")
 set(TEST_NS_MANAGE_NSID     OFF        CACHE BOOL      "Whether to build NS regression NSID management tests")
 set(TEST_NS_SFN_BACKEND     OFF        CACHE BOOL      "Whether to build NS regression SFN backend tests")
+set(TEST_NS_FPU             OFF        CACHE BOOL      "Whether to build NS regression FPU tests")
 
 ########################## S test framework ####################################
 
diff --git a/test/config/set_config.cmake b/test/config/set_config.cmake
index a3f0cf5..9da5b85 100644
--- a/test/config/set_config.cmake
+++ b/test/config/set_config.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -67,8 +67,9 @@
     set(TEST_NS_MANAGE_NSID     OFF        CACHE BOOL      "Whether to build NS regression NSID management tests")
 endif()
 
-if (CONFIG_TFM_SPE_FP STREQUAL "0")
-    set(TEST_S_FPU              OFF        CACHE BOOL      "Whether to build S regression FPU tests")
+if (CONFIG_TFM_FP STREQUAL "soft")
+    set(TEST_S_FPU                       OFF        CACHE BOOL      "Whether to build S regression FPU tests")
+    set(TEST_NS_FPU                      OFF        CACHE BOOL      "Whether to build NS regression FPU tests")
 endif()
 
 ########################## Test framework sync #################################
@@ -158,4 +159,11 @@
     set(TFM_PARTITION_ATTESTATION_TEST  OFF)
 endif()
 
+# Enable FPU test partition if S or NS FP test enabled
+if (TEST_S_FPU OR TEST_NS_FPU)
+    set(TEST_PARTITION_FPU_TEST        ON)
+else()
+    set(TEST_PARTITION_FPU_TEST        OFF)
+endif()
+
 include(${TFM_TEST_PATH}/config/default_test_config.cmake)
diff --git a/test/secure_fw/non_secure_suites.c b/test/secure_fw/non_secure_suites.c
old mode 100755
new mode 100644
index 5a0e7a2..26c34f1
--- a/test/secure_fw/non_secure_suites.c
+++ b/test/secure_fw/non_secure_suites.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -59,6 +59,9 @@
 #ifdef TEST_NS_SFN_BACKEND
 #include "sfn_ns_tests.h"
 #endif
+#ifdef TEST_NS_FPU
+#include "fpu_ns_tests.h"
+#endif
 #ifdef EXTRA_NS_TEST_SUITE
 #include "extra_ns_tests.h"
 #endif
@@ -146,6 +149,10 @@
     {&register_testsuite_ns_sfn_interface, 0, 0, 0},
 #endif
 
+#ifdef TEST_NS_FPU
+    {&register_testsuite_ns_fpu_interface, 0, 0, 0},
+#endif
+
     /* End of test suites */
     {0, 0, 0, 0}
 };
diff --git a/test/secure_fw/suites/CMakeLists.txt b/test/secure_fw/suites/CMakeLists.txt
index 99a4084..12dc7d6 100644
--- a/test/secure_fw/suites/CMakeLists.txt
+++ b/test/secure_fw/suites/CMakeLists.txt
@@ -33,6 +33,11 @@
             tfm_log
     )
 
+    target_compile_options(tfm_test_framework_ns
+        INTERFACE
+            ${COMPILER_CP_FLAG}
+    )
+
     target_sources(tfm_ns_tests
         INTERFACE
             ../non_secure_suites.c
diff --git a/test/secure_fw/suites/fpu/CMakeLists.txt b/test/secure_fw/suites/fpu/CMakeLists.txt
index f5ce54b..1baad2c 100644
--- a/test/secure_fw/suites/fpu/CMakeLists.txt
+++ b/test/secure_fw/suites/fpu/CMakeLists.txt
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -7,36 +7,68 @@
 
 cmake_policy(SET CMP0079 NEW)
 
-if (NOT TEST_S_FPU)
-    return()
+####################### Non Secure #############################################
+
+if (TEST_NS_FPU)
+    add_library(tfm_test_suite_fpu_ns STATIC)
+
+    target_sources(tfm_test_suite_fpu_ns
+        PRIVATE
+            fpu_tests_common.c
+            non_secure/fpu_ns_interface_testsuite.c
+    )
+
+    target_include_directories(tfm_test_suite_fpu_ns
+        PUBLIC
+            non_secure
+    )
+
+    target_compile_definitions(tfm_test_suite_fpu_ns
+        PRIVATE
+            DOMAIN_NS=1
+        INTERFACE
+            TEST_NS_FPU
+    )
+
+    target_link_libraries(tfm_test_suite_fpu_ns
+        PRIVATE
+            tfm_test_framework_ns
+            platform_ns
+    )
+
+    target_link_libraries(tfm_ns_tests
+        INTERFACE
+            tfm_test_suite_fpu_ns
+    )
 endif()
 
 ####################### Secure #################################################
 
-target_sources(tfm_test_suite_fpu_s
-    PRIVATE
-        ${CMAKE_CURRENT_SOURCE_DIR}/fpu_tests_common.c
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure/fpu_s_interface_testsuite.c
-)
+if (TEST_S_FPU)
+    target_sources(tfm_test_suite_fpu_s
+        PRIVATE
+            ${CMAKE_CURRENT_SOURCE_DIR}/fpu_tests_common.c
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure/fpu_s_interface_testsuite.c
+    )
 
-target_include_directories(tfm_test_suite_fpu_s
-    PUBLIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/secure
-)
+    target_include_directories(tfm_test_suite_fpu_s
+        PUBLIC
+            ${CMAKE_CURRENT_SOURCE_DIR}/secure
+    )
 
-target_compile_definitions(tfm_test_suite_fpu_s
-    INTERFACE
-        TEST_S_FPU
-)
+    target_compile_definitions(tfm_test_suite_fpu_s
+        INTERFACE
+            TEST_S_FPU
+    )
 
-target_link_libraries(tfm_test_suite_fpu_s
-    PRIVATE
-        tfm_test_framework_s
-    PUBLIC
-        platform_s
-)
+    target_link_libraries(tfm_test_suite_fpu_s
+        PRIVATE
+            tfm_test_framework_s
+            platform_s
+    )
 
-target_link_libraries(tfm_s_tests
-    INTERFACE
-        tfm_test_suite_fpu_s
-)
+    target_link_libraries(tfm_s_tests
+        INTERFACE
+            tfm_test_suite_fpu_s
+    )
+endif()
diff --git a/test/secure_fw/suites/fpu/fpu_tests_common.c b/test/secure_fw/suites/fpu/fpu_tests_common.c
old mode 100755
new mode 100644
index d133f72..98cb83f
--- a/test/secure_fw/suites/fpu/fpu_tests_common.c
+++ b/test/secure_fw/suites/fpu/fpu_tests_common.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -8,7 +8,11 @@
 #include <stdbool.h>
 #include "fpu_tests_common.h"
 #include "psa_manifest/sid.h"
+#if DOMAIN_NS == 1
+#include <string.h>
+#else
 #include "tfm_memory_utils.h"
+#endif
 
 /**
  * Change FP registers.
@@ -94,7 +98,8 @@
 static bool check_fp_restored_client(void)
 {
     uint32_t fp_buffer[NR_FP_REG] = {0};
-    const uint32_t fp_expect[NR_FP_REG] = {0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+    const uint32_t fp_expect[NR_FP_REG] =
+                            {0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
                              0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
                              0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
                              0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF};
@@ -106,7 +111,12 @@
         :"memory"
     );
 
-    if (!tfm_memcmp(fp_buffer, fp_expect, FP_BUF_SIZE)) {
+#if DOMAIN_NS == 1
+    if (!memcmp(fp_buffer, fp_expect, FP_BUF_SIZE))
+#else
+    if (!tfm_memcmp(fp_buffer, fp_expect, FP_BUF_SIZE))
+#endif
+    {
         return true;
     }
 
@@ -175,7 +185,12 @@
         :"memory"
     );
 
-    if (!tfm_memcmp(fp_buffer, fp_expect, FP_BUF_SIZE)) {
+#if DOMAIN_NS == 1
+    if (!memcmp(fp_buffer, fp_expect, FP_BUF_SIZE))
+#else
+    if (!tfm_memcmp(fp_buffer, fp_expect, FP_BUF_SIZE))
+#endif
+    {
         return true;
     }
 
@@ -183,7 +198,8 @@
 }
 
 /**
- * Description: Clear FP registers in FPU client partition for next test.
+ * Description: Clear FP registers to check basic FP register write/read
+ * functionality.
  * Expectation: FP registers in FPU client partition should be cleared.
  */
 void tfm_fpu_test_clear_client_fp_data(struct test_result_t *ret)
@@ -214,13 +230,13 @@
     ret->val = TEST_FAILED;
 
     handle = psa_connect(TFM_FPU_SERVICE_CHECK_FP_REGISTER_SID,
-                            TFM_FPU_SERVICE_CHECK_FP_REGISTER_VERSION);
+                         TFM_FPU_SERVICE_CHECK_FP_REGISTER_VERSION);
     if (!PSA_HANDLE_IS_VALID(handle)) {
         ret->val = TEST_FAILED;
         return;
     }
 
-    /* Change FP registers in secure thread */
+    /* Change FP registers */
     change_fp_in_client();
 
     status = psa_call(handle, PSA_IPC_CALL, NULL, 0, NULL, 0);
@@ -248,7 +264,7 @@
     ret->val = TEST_FAILED;
 
     handle = psa_connect(TFM_FPU_SERVICE_CLEAR_FP_REGISTER_SID,
-                            TFM_FPU_SERVICE_CLEAR_FP_REGISTER_VERSION);
+                         TFM_FPU_SERVICE_CLEAR_FP_REGISTER_VERSION);
     if (!PSA_HANDLE_IS_VALID(handle)) {
         ret->val = TEST_FAILED;
         return;
@@ -283,13 +299,13 @@
         TEST_LOG("  > Iteration %d of %d\r", itr + 1, LOOP_ITERATIONS);
 
         handle = psa_connect(TFM_FPU_SERVICE_CHECK_FP_REGISTER_SID,
-                                TFM_FPU_SERVICE_CHECK_FP_REGISTER_VERSION);
+                             TFM_FPU_SERVICE_CHECK_FP_REGISTER_VERSION);
         if (!PSA_HANDLE_IS_VALID(handle)) {
             ret->val = TEST_FAILED;
             return;
         }
 
-        /* Change FP registers in secure thread */
+        /* Change FP registers */
         change_fp_in_client();
 
         status = psa_call(handle, PSA_IPC_CALL, NULL, 0, NULL, 0);
@@ -307,7 +323,7 @@
         psa_close(handle);
 
         handle = psa_connect(TFM_FPU_SERVICE_CLEAR_FP_REGISTER_SID,
-                                TFM_FPU_SERVICE_CLEAR_FP_REGISTER_VERSION);
+                             TFM_FPU_SERVICE_CLEAR_FP_REGISTER_VERSION);
         if (!PSA_HANDLE_IS_VALID(handle)) {
             ret->val = TEST_FAILED;
             return;
diff --git a/test/secure_fw/suites/fpu/non_secure/fpu_ns_interface_testsuite.c b/test/secure_fw/suites/fpu/non_secure/fpu_ns_interface_testsuite.c
new file mode 100644
index 0000000..f39fd9a
--- /dev/null
+++ b/test/secure_fw/suites/fpu/non_secure/fpu_ns_interface_testsuite.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <stdio.h>
+#include "fpu_ns_tests.h"
+#include "../fpu_tests_common.h"
+
+static struct test_t fpu_ns_tests[] = {
+    {
+        &tfm_fpu_test_clear_client_fp_data, "TFM_NS_FPU_TEST_1001",
+        "Clear FP registers in FPU client partition",
+        {TEST_PASSED}
+    },
+    {
+        &tfm_fpu_test_fp_protection_psa_call, "TFM_NS_FPU_TEST_1002",
+        "Test FP context protection after psa calls",
+        {TEST_PASSED}
+    }
+};
+
+void register_testsuite_ns_fpu_interface(struct test_suite_t *p_test_suite)
+{
+    uint32_t list_size;
+
+    list_size = (sizeof(fpu_ns_tests) / sizeof(fpu_ns_tests[0]));
+
+    set_testsuite("FPU non-secure interface test (TFM_NS_FPU_TEST_1XXX)",
+                  fpu_ns_tests, list_size, p_test_suite);
+}
diff --git a/test/secure_fw/suites/fpu/non_secure/fpu_ns_tests.h b/test/secure_fw/suites/fpu/non_secure/fpu_ns_tests.h
new file mode 100644
index 0000000..c7413fa
--- /dev/null
+++ b/test/secure_fw/suites/fpu/non_secure/fpu_ns_tests.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __FPU_NS_TESTS_H__
+#define __FPU_NS_TESTS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "test_framework.h"
+
+/**
+ * \brief Register testsuite for fpu non-secure interface.
+ *
+ * \param[in] p_test_suite The test suite to be executed.
+ */
+void register_testsuite_ns_fpu_interface(struct test_suite_t *p_test_suite);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FPU_NS_TESTS_H__ */
diff --git a/test/secure_fw/suites/qcbor/CMakeLists.txt b/test/secure_fw/suites/qcbor/CMakeLists.txt
index ae3ae2a..7a67e46 100644
--- a/test/secure_fw/suites/qcbor/CMakeLists.txt
+++ b/test/secure_fw/suites/qcbor/CMakeLists.txt
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -30,6 +30,11 @@
         tfm_t_cose_defs
 )
 
+target_compile_options(tfm_qcbor_ns
+    PUBLIC
+        ${COMPILER_CP_FLAG}
+)
+
 ####################### Non Secure Test #############################################
 
 if (NOT TEST_NS_QCBOR)
diff --git a/test/secure_fw/test_services/CMakeLists.txt b/test/secure_fw/test_services/CMakeLists.txt
index 7670f38..fffd736 100644
--- a/test/secure_fw/test_services/CMakeLists.txt
+++ b/test/secure_fw/test_services/CMakeLists.txt
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -40,6 +40,6 @@
     add_subdirectory(tfm_flih_test_service)
 endif()
 
-if (TEST_S_FPU)
+if (TEST_PARTITION_FPU_TEST)
     add_subdirectory(tfm_fpu_service)
 endif()
diff --git a/test/secure_fw/test_services/tfm_fpu_service/CMakeLists.txt b/test/secure_fw/test_services/tfm_fpu_service/CMakeLists.txt
index c070bcb..2a185f5 100644
--- a/test/secure_fw/test_services/tfm_fpu_service/CMakeLists.txt
+++ b/test/secure_fw/test_services/tfm_fpu_service/CMakeLists.txt
@@ -61,5 +61,5 @@
 
 target_compile_definitions(tfm_partition_defs
     INTERFACE
-        TEST_S_FPU
+        TEST_PARTITION_FPU_TEST
 )
diff --git a/test/secure_fw/test_services/tfm_fpu_service/tfm_fpu_service_test.yaml b/test/secure_fw/test_services/tfm_fpu_service/tfm_fpu_service_test.yaml
index 96a05d9..4976446 100644
--- a/test/secure_fw/test_services/tfm_fpu_service/tfm_fpu_service_test.yaml
+++ b/test/secure_fw/test_services/tfm_fpu_service/tfm_fpu_service_test.yaml
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -18,14 +18,14 @@
     {
       "name": "TFM_FPU_SERVICE_CLEAR_FP_REGISTER",
       "sid": "0x0000F090",
-      "non_secure_clients": false,
+      "non_secure_clients": true,
       "version": 1,
       "version_policy": "STRICT"
     },
     {
       "name": "TFM_FPU_SERVICE_CHECK_FP_REGISTER",
       "sid": "0x0000F091",
-      "non_secure_clients": false,
+      "non_secure_clients": true,
       "version": 1,
       "version_policy": "STRICT"
     }
diff --git a/test/secure_fw/test_services/tfm_test_manifest_list.yaml b/test/secure_fw/test_services/tfm_test_manifest_list.yaml
index d96cfa8..0bf8245 100644
--- a/test/secure_fw/test_services/tfm_test_manifest_list.yaml
+++ b/test/secure_fw/test_services/tfm_test_manifest_list.yaml
@@ -166,7 +166,7 @@
       "short_name": "TFM_SP_FPU_SERVICE_TEST",
       "manifest": "tfm_fpu_service/tfm_fpu_service_test.yaml",
       "output_path": "secure_fw/test_services/tfm_fpu_service",
-      "conditional": "@TEST_S_FPU@",
+      "conditional": "@TEST_PARTITION_FPU_TEST@",
       "version_major": 0,
       "version_minor": 1,
       "pid": 3010,