SPM: Add runtime SFN backend
A backend for implementing 'SFN'. This runtime backend is selected
if:
- All partitions included in the current build are 'SFN' partitions.
- Isolation level 1.
The configuration is generated by tooling, and output to the
generated file 'config_impl.h'.
Change-Id: I819c78c7a912f86174d102d389a2714ae17e5062
Signed-off-by: Ken Liu <Ken.Liu@arm.com>
Co-authored-by: Mingyang Sun <mingyang.sun@arm.com>
diff --git a/secure_fw/spm/ffm/backend_ipc.c b/secure_fw/spm/ffm/backend_ipc.c
index ee1a4c2..c544f73 100644
--- a/secure_fw/spm/ffm/backend_ipc.c
+++ b/secure_fw/spm/ffm/backend_ipc.c
@@ -41,7 +41,7 @@
/*
* Send message and wake up the SP who is waiting on message queue, block the
- * current thread and triggere scheduler.
+ * current thread and trigger scheduler.
*/
static psa_status_t ipc_messaging(struct service_t *service,
struct tfm_msg_body_t *msg)
@@ -80,13 +80,20 @@
return PSA_SUCCESS;
}
-static void ipc_replying(struct tfm_msg_body_t *p_msg, psa_status_t status)
+static int32_t ipc_replying(struct tfm_msg_body_t *p_msg, int32_t status)
{
if (is_tfm_rpc_msg(p_msg)) {
tfm_rpc_client_call_reply(p_msg, status);
} else {
thrd_wake_up(&p_msg->ack_evnt, status);
}
+
+ /*
+ * 'psa_reply' exists in IPC model only and returns 'void'. Return
+ * 'PSA_SUCCESS' here always since SPM does not forward the status
+ * to the caller.
+ */
+ return PSA_SUCCESS;
}
/* Parameters are treated as assuredly */