Interface: Provide implementation of tfm_ns_interface_dispatch()
This patch provides implementation of tfm_ns_interface_dispatch for
bare metal and RTOS use cases. This is needed to simplify TF-M
integration with NS application.
For more details refer to
"Default implementation of tfm_ns_interface_dispatch()" mailing thread:
https://lists.trustedfirmware.org/archives/list/tf-m@lists.trustedfirmware.org/message/ZCBRUODVTBK26JGAZKKIJEQ62D3XIMSO/
and TF-M tech forum presentation
"Default implemeation of tsm_ns_interface_dispatch":
https://www.trustedfirmware.org/meetings/tf-m-technical-forum/
Following things are done:
* tfm_ns_interface.c was moved from test repo to TF-M repo
tfm_ns_interface_rtos.c file
* tfm_ns_interface_bare_metal.c is added.
* required NS OS wrapper header files are moved from test to TFM repo
* tfm_ns_interface.c.example is removed as no longer needed
are provided.
* documentation is updated
Signed-off-by: Bohdan Hunko <Bohdan.Hunko@infineon.com>
Signed-off-by: Chris Brand <chris.brand@cypress.com>
Change-Id: I3e7fd80946bd674cb562ddac8fbc8c7053e30478
diff --git a/interface/include/tfm_ns_interface.h b/interface/include/tfm_ns_interface.h
index fa0cc31..6b55fc3 100644
--- a/interface/include/tfm_ns_interface.h
+++ b/interface/include/tfm_ns_interface.h
@@ -1,5 +1,7 @@
/*
* Copyright (c) 2017-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
+ * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -24,8 +26,9 @@
* desired veneer function, to be called with the parameters
* described from arg0 to arg3.
*
- * \note NSPE shall implement this dispatcher according to NS specific
- * implementation and actual usage scenario.
+ * \note NSPE can use default implementation of this function or implement
+ * this function according to NS specific implementation and actual
+ * usage scenario.
*
* \param[in] fn Function pointer to the veneer function desired
* \param[in] arg0 Argument 0 of fn
@@ -43,6 +46,19 @@
uint32_t arg0, uint32_t arg1,
uint32_t arg2, uint32_t arg3);
+/**
+ * \brief NS interface initialization function
+ *
+ * \details This function initializes TF-M NS interface.
+ *
+ * \note NSPE can use default implementation of this function or implement
+ * this function according to NS specific implementation and actual
+ * usage scenario.
+ *
+ * \return \ref OS_WRAPPER_SUCCESS on success or \ref OS_WRAPPER_ERROR on error
+ */
+uint32_t tfm_ns_interface_init(void);
+
#ifdef __cplusplus
}
#endif