diff --git a/app/os_wrapper_cmsis_rtos_v2.c b/app/os_wrapper_cmsis_rtos_v2.c
index 1e188ab..f582b07 100755
--- a/app/os_wrapper_cmsis_rtos_v2.c
+++ b/app/os_wrapper_cmsis_rtos_v2.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
  *
@@ -262,11 +262,11 @@
     return OS_WRAPPER_ERROR;
 }
 
-int32_t os_wrapper_delay_until(uint32_t ticks)
+int32_t os_wrapper_delay(uint32_t ticks)
 {
     osStatus_t status;
 
-    status = osDelayUntil(ticks);
+    status = osDelay(ticks);
     if (status == osOK) {
         return OS_WRAPPER_SUCCESS;
     }
diff --git a/ns_interface/os_wrapper/delay.h b/ns_interface/os_wrapper/delay.h
index 9eaf95f..4242b81 100644
--- a/ns_interface/os_wrapper/delay.h
+++ b/ns_interface/os_wrapper/delay.h
@@ -15,12 +15,12 @@
 #include "common.h"
 
 /**
- * \brief Wait until an absolute time (specified in kernel ticks) is reached.
+ * \brief Waits for a time period specified in kernel ticks.
  *
  * \return \ref OS_WRAPPER_SUCCESS if the time delay is executed, or
  *         \ref OS_WRAPPER_ERROR in case of error
  */
-int32_t os_wrapper_delay_until(uint32_t ticks);
+int32_t os_wrapper_delay(uint32_t ticks);
 
 #ifdef __cplusplus
 }
diff --git a/test/secure_fw/suites/fpu/fpu_tests_common.h b/test/secure_fw/suites/fpu/fpu_tests_common.h
index 1787032..794ae90 100644
--- a/test/secure_fw/suites/fpu/fpu_tests_common.h
+++ b/test/secure_fw/suites/fpu/fpu_tests_common.h
@@ -23,7 +23,7 @@
 #define LOOP_ITERATIONS             (300U)
 #define LOOPS_S_INT_TEST            (50U)
 #define LOOPS_NS_INT_TEST           (5000000U)
-#define WAIT_S_INT                  (20000U)
+#define WAIT_S_INT                  (2000U)
 
 #define NR_FP_REG                   (32U)
 #define NR_FP_CALLER_REG            (NR_FP_REG / 2)
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
index ded6ca0..42b6e56 100644
--- 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
@@ -225,7 +225,7 @@
     /* Spin here */
     while (1) {
         /* Wait S interrupt triggered */
-        os_wrapper_delay_until(WAIT_S_INT);
+        os_wrapper_delay(WAIT_S_INT);
 
         status = psa_call(handle, PSA_IPC_CALL, NULL, 0, outvecs, 1);
         if (status == PSA_SUCCESS) {
diff --git a/test/secure_fw/suites/fpu/service/tfm_fpu_service_test.c b/test/secure_fw/suites/fpu/service/tfm_fpu_service_test.c
index 206b27a..6270e45 100644
--- a/test/secure_fw/suites/fpu/service/tfm_fpu_service_test.c
+++ b/test/secure_fw/suites/fpu/service/tfm_fpu_service_test.c
@@ -508,7 +508,7 @@
             fpu_client_start_secure_timer();
         } else if (signals & TFM_FPU_SERVICE_CHECK_S_TIMER_TRIGGERED_SIGNAL) {
             fpu_client_check_secure_timer_triggered();
-        }  else if (signals & TFM_FPU_SERVICE_CHECK_NS_INTERRUPT_S_TEST_SIGNAL) {
+        } else if (signals & TFM_FPU_SERVICE_CHECK_NS_INTERRUPT_S_TEST_SIGNAL) {
             fpu_client_non_secure_interrupt_secure_test();
         } else {
             psa_panic();
