diff --git a/platform/ext/target/arm/corstone1000/tfm_hal_platform.c b/platform/ext/target/arm/corstone1000/tfm_hal_platform.c
index e3c6b78..af76c4e 100644
--- a/platform/ext/target/arm/corstone1000/tfm_hal_platform.c
+++ b/platform/ext/target/arm/corstone1000/tfm_hal_platform.c
@@ -28,3 +28,15 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    /* Boot of Host processor not implemented yet. */
+    return 0;
+}
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    /* Boot of Host processor not implemented yet. */
+    return 0;
+}
diff --git a/platform/ext/target/arm/mps2/an519/tfm_hal_platform.c b/platform/ext/target/arm/mps2/an519/tfm_hal_platform.c
index 4dd7691..de04d70 100644
--- a/platform/ext/target/arm/mps2/an519/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps2/an519/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -45,3 +47,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/mps2/an521/tfm_hal_platform.c b/platform/ext/target/arm/mps2/an521/tfm_hal_platform.c
index e68200f..c087635 100644
--- a/platform/ext/target/arm/mps2/an521/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps2/an521/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 #ifdef TFM_FIH_PROFILE_ON
 fih_int tfm_hal_platform_init(void)
 #else
@@ -59,3 +61,18 @@
 
     FIH_RET(fih_int_encode(TFM_HAL_SUCCESS));
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/mps3/an524/tfm_hal_platform.c b/platform/ext/target/arm/mps3/an524/tfm_hal_platform.c
index 4dd7691..de04d70 100644
--- a/platform/ext/target/arm/mps3/an524/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps3/an524/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -45,3 +47,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/mps3/an547/tfm_hal_platform.c b/platform/ext/target/arm/mps3/an547/tfm_hal_platform.c
index 0307640..d0cbc8c 100644
--- a/platform/ext/target/arm/mps3/an547/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps3/an547/tfm_hal_platform.c
@@ -12,6 +12,8 @@
 #include "uart_stdout.h"
 #include "device_definition.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -63,3 +65,18 @@
 
     NVIC_SystemReset();
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/mps3/an552/tfm_hal_platform.c b/platform/ext/target/arm/mps3/an552/tfm_hal_platform.c
index 0307640..e7fe818 100644
--- a/platform/ext/target/arm/mps3/an552/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps3/an552/tfm_hal_platform.c
@@ -12,6 +12,9 @@
 #include "uart_stdout.h"
 #include "device_definition.h"
 
+/* Get address of memory regions to configure MPU */
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -63,3 +66,18 @@
 
     NVIC_SystemReset();
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start+ 4));
+}
diff --git a/platform/ext/target/arm/mps3/corstone_polaris/tfm_hal_platform.c b/platform/ext/target/arm/mps3/corstone_polaris/tfm_hal_platform.c
index 1ae8843..fc06a86 100644
--- a/platform/ext/target/arm/mps3/corstone_polaris/tfm_hal_platform.c
+++ b/platform/ext/target/arm/mps3/corstone_polaris/tfm_hal_platform.c
@@ -12,6 +12,9 @@
 #include "uart_stdout.h"
 #include "device_definition.h"
 
+/* Get address of memory regions to configure MPU */
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -62,3 +65,18 @@
 
     NVIC_SystemReset();
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start+ 4));
+}
diff --git a/platform/ext/target/arm/musca_b1/secure_enclave/tfm_hal_platform.c b/platform/ext/target/arm/musca_b1/secure_enclave/tfm_hal_platform.c
index 71472ea..31a6e06 100644
--- a/platform/ext/target/arm/musca_b1/secure_enclave/tfm_hal_platform.c
+++ b/platform/ext/target/arm/musca_b1/secure_enclave/tfm_hal_platform.c
@@ -6,9 +6,12 @@
  */
 
 #include "cmsis.h"
+#include "target_cfg.h"
 #include "tfm_hal_platform.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     __enable_irq();
@@ -16,3 +19,13 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/musca_b1/sse_200/tfm_hal_platform.c b/platform/ext/target/arm/musca_b1/sse_200/tfm_hal_platform.c
index 2a6ec34..898c77c 100644
--- a/platform/ext/target/arm/musca_b1/sse_200/tfm_hal_platform.c
+++ b/platform/ext/target/arm/musca_b1/sse_200/tfm_hal_platform.c
@@ -13,6 +13,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -64,3 +66,18 @@
 
     NVIC_SystemReset();
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/arm/musca_s1/tfm_hal_platform.c b/platform/ext/target/arm/musca_s1/tfm_hal_platform.c
index 61cf462..6e669ec 100644
--- a/platform/ext/target/arm/musca_s1/tfm_hal_platform.c
+++ b/platform/ext/target/arm/musca_s1/tfm_hal_platform.c
@@ -14,6 +14,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -52,3 +54,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/cypress/psoc64/tfm_hal_platform.c b/platform/ext/target/cypress/psoc64/tfm_hal_platform.c
index 704dfe9..8e3163d 100644
--- a/platform/ext/target/cypress/psoc64/tfm_hal_platform.c
+++ b/platform/ext/target/cypress/psoc64/tfm_hal_platform.c
@@ -17,6 +17,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 /* FIXME:
  * Instead of TFM-customized mcuboot, at this moment psoc64 uses
  * Cypress version of it - CypressBootloader (CYBL). CYBL doesn't
@@ -75,3 +77,13 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/nordic_nrf/common/core/tfm_hal_platform_common.c b/platform/ext/target/nordic_nrf/common/core/tfm_hal_platform_common.c
index 3609952..51026e3 100644
--- a/platform/ext/target/nordic_nrf/common/core/tfm_hal_platform_common.c
+++ b/platform/ext/target/nordic_nrf/common/core/tfm_hal_platform_common.c
@@ -11,6 +11,7 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
 enum tfm_hal_status_t tfm_hal_platform_common_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -47,3 +48,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((const uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/nuvoton/common/tfm_hal_platform.c b/platform/ext/target/nuvoton/common/tfm_hal_platform.c
index 4dd7691..de04d70 100644
--- a/platform/ext/target/nuvoton/common/tfm_hal_platform.c
+++ b/platform/ext/target/nuvoton/common/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -45,3 +47,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/nxp/common/tfm_hal_platform.c b/platform/ext/target/nxp/common/tfm_hal_platform.c
index 4dd7691..de04d70 100644
--- a/platform/ext/target/nxp/common/tfm_hal_platform.c
+++ b/platform/ext/target/nxp/common/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -45,3 +47,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_platform.c b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_platform.c
index 47e9252..fa0ba40 100644
--- a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_platform.c
+++ b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -25,3 +27,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/ext/target/stm/common/stm32u5xx/secure/tfm_hal_platform.c b/platform/ext/target/stm/common/stm32u5xx/secure/tfm_hal_platform.c
index 47e9252..fa0ba40 100644
--- a/platform/ext/target/stm/common/stm32u5xx/secure/tfm_hal_platform.c
+++ b/platform/ext/target/stm/common/stm32u5xx/secure/tfm_hal_platform.c
@@ -11,6 +11,8 @@
 #include "tfm_plat_defs.h"
 #include "uart_stdout.h"
 
+extern const struct memory_region_limits memory_regions;
+
 enum tfm_hal_status_t tfm_hal_platform_init(void)
 {
     enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR;
@@ -25,3 +27,18 @@
 
     return TFM_HAL_SUCCESS;
 }
+
+uint32_t tfm_hal_get_ns_VTOR(void)
+{
+    return memory_regions.non_secure_code_start;
+}
+
+uint32_t tfm_hal_get_ns_MSP(void)
+{
+    return *((uint32_t *)memory_regions.non_secure_code_start);
+}
+
+uint32_t tfm_hal_get_ns_entry_point(void)
+{
+    return *((uint32_t *)(memory_regions.non_secure_code_start + 4));
+}
diff --git a/platform/include/tfm_hal_platform.h b/platform/include/tfm_hal_platform.h
index 4c1728d..9af08f7 100644
--- a/platform/include/tfm_hal_platform.h
+++ b/platform/include/tfm_hal_platform.h
@@ -64,4 +64,28 @@
  */
 int32_t tfm_hal_random_generate(uint8_t *rand, size_t size);
 
+/**
+ * \brief Get the VTOR value of non-secure image
+ *
+ * \return Returns the address where the vector table of the non-secure image
+ *         is located
+ */
+uint32_t tfm_hal_get_ns_VTOR(void);
+
+/**
+ * \brief Get the entry point of the non-secure image
+ *
+ * \return Returns the address of the non-secure image entry point
+ */
+uint32_t tfm_hal_get_ns_entry_point(void);
+
+#ifndef TFM_MULTI_CORE_TOPOLOGY
+/**
+ * \brief Get the initial address of non-secure image main stack
+ *
+ * \return Returns the initial non-secure MSP
+ */
+uint32_t tfm_hal_get_ns_MSP(void);
+#endif /* TFM_MULTI_CORE_TOPOLOGY */
+
 #endif /* __TFM_HAL_PLATFORM_H__ */
diff --git a/secure_fw/spm/cmsis_psa/tfm_multi_core.c b/secure_fw/spm/cmsis_psa/tfm_multi_core.c
index f830a6f..2eba63e 100644
--- a/secure_fw/spm/cmsis_psa/tfm_multi_core.c
+++ b/secure_fw/spm/cmsis_psa/tfm_multi_core.c
@@ -7,7 +7,7 @@
 #include "tfm_arch.h"
 #include "tfm_assert.h"
 #include "tfm_hal_multi_core.h"
-#include "tfm_spm_hal.h"
+#include "tfm_hal_platform.h"
 #include "tfm_spm_log.h"
 #include "tfm_multi_core.h"
 
@@ -25,7 +25,7 @@
     SPMLOG_DBGMSG("Enabling non-secure core...");
 #endif
 
-    tfm_hal_boot_ns_cpu(tfm_spm_hal_get_ns_VTOR());
+    tfm_hal_boot_ns_cpu(tfm_hal_get_ns_VTOR());
     tfm_hal_wait_for_ns_cpu_ready();
 
     tfm_inter_core_comm_init();
diff --git a/secure_fw/spm/cmsis_psa/tfm_nspm_ipc.c b/secure_fw/spm/cmsis_psa/tfm_nspm_ipc.c
index 6d6f325..0d91a57 100755
--- a/secure_fw/spm/cmsis_psa/tfm_nspm_ipc.c
+++ b/secure_fw/spm/cmsis_psa/tfm_nspm_ipc.c
@@ -5,16 +5,17 @@
  *
  */
 
+#include "cmsis.h"
 #include "compiler_ext_defs.h"
-#include "tfm_spm_hal.h"
+#include "tfm_hal_platform.h"
 
 void configure_ns_code(void)
 {
     /* SCB_NS.VTOR points to the Non-secure vector table base address */
-    SCB_NS->VTOR = tfm_spm_hal_get_ns_VTOR();
+    SCB_NS->VTOR = tfm_hal_get_ns_VTOR();
 
     /* Setups Main stack pointer of the non-secure code */
-    uint32_t ns_msp = tfm_spm_hal_get_ns_MSP();
+    uint32_t ns_msp = tfm_hal_get_ns_MSP();
 
     __TZ_set_MSP_NS(ns_msp);
 }
diff --git a/secure_fw/spm/ffm/backend_ipc.c b/secure_fw/spm/ffm/backend_ipc.c
index a6c8031..4570f95 100644
--- a/secure_fw/spm/ffm/backend_ipc.c
+++ b/secure_fw/spm/ffm/backend_ipc.c
@@ -10,8 +10,8 @@
 #include "compiler_ext_defs.h"
 #include "spm_ipc.h"
 #include "tfm_hal_isolation.h"
+#include "tfm_hal_platform.h"
 #include "tfm_rpc.h"
-#include "tfm_spm_hal.h" /* To be checked */
 #include "ffm/backend.h"
 #include "utilities.h"
 #include "load/partition_defs.h"
@@ -116,7 +116,7 @@
               TO_THREAD_PRIORITY(PARTITION_PRIORITY(p_pldi->flags)));
 
     if (p_pldi->pid == TFM_SP_NON_SECURE_ID) {
-        p_param = (void *)tfm_spm_hal_get_ns_entry_point();
+        p_param = (void *)tfm_hal_get_ns_entry_point();
 
 #ifdef CONFIG_TFM_PSA_API_THREAD_CALL
         SPM_THREAD_CONTEXT = &p_pt->ctx_ctrl;
diff --git a/secure_fw/spm/ffm/backend_sfn.c b/secure_fw/spm/ffm/backend_sfn.c
index 14736e9..6cf39d5 100644
--- a/secure_fw/spm/ffm/backend_sfn.c
+++ b/secure_fw/spm/ffm/backend_sfn.c
@@ -8,7 +8,7 @@
 #include <stdint.h>
 #include "compiler_ext_defs.h"
 #include "current.h"
-#include "tfm_spm_hal.h"
+#include "tfm_hal_platform.h"
 #include "ffm/backend.h"
 #include "load/partition_defs.h"
 #include "load/service_defs.h"
@@ -104,7 +104,7 @@
 
         thrd_start(&p_pt->thrd,
                POSITION_TO_ENTRY(p_pldi->entry, thrd_fn_t),
-               (void *)tfm_spm_hal_get_ns_entry_point(),
+               (void *)tfm_hal_get_ns_entry_point(),
                LOAD_ALLOCED_STACK_ADDR(p_pldi),
                LOAD_ALLOCED_STACK_ADDR(p_pldi) + p_pldi->stack_size);
 
