aboutsummaryrefslogtreecommitdiff
path: root/deployments/crypto/opteesp/crypto_sp.c
diff options
context:
space:
mode:
Diffstat (limited to 'deployments/crypto/opteesp/crypto_sp.c')
-rw-r--r--deployments/crypto/opteesp/crypto_sp.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/deployments/crypto/opteesp/crypto_sp.c b/deployments/crypto/opteesp/crypto_sp.c
index b9c1fb236..f3679d180 100644
--- a/deployments/crypto/opteesp/crypto_sp.c
+++ b/deployments/crypto/opteesp/crypto_sp.c
@@ -14,6 +14,7 @@
#include <config/loader/sp/sp_config_loader.h>
#include <ffa_api.h>
#include <sp_api.h>
+#include <sp_messaging.h>
#include <sp_rxtx.h>
#include <trace.h>
@@ -28,7 +29,8 @@ void __noreturn sp_main(struct ffa_init_info *init_info)
struct mbed_crypto_provider crypto_provider;
struct ffa_call_ep ffarpc_call_ep;
struct rpc_interface *crypto_iface;
- struct ffa_direct_msg req_msg;
+ struct sp_msg req_msg = { 0 };
+ struct sp_msg resp_msg = { 0 };
struct storage_backend *storage_backend;
/* Boot phase */
@@ -53,20 +55,15 @@ void __noreturn sp_main(struct ffa_init_info *init_info)
ffa_call_ep_init(&ffarpc_call_ep, crypto_iface);
/* End of boot phase */
- ffa_msg_wait(&req_msg);
+ sp_msg_wait(&req_msg);
while (1) {
- if (req_msg.function_id == FFA_MSG_SEND_DIRECT_REQ_32) {
+ ffa_call_ep_receive(&ffarpc_call_ep, &req_msg, &resp_msg);
- struct ffa_direct_msg resp_msg;
+ resp_msg.source_id = req_msg.destination_id;
+ resp_msg.destination_id = req_msg.source_id;
- ffa_call_ep_receive(&ffarpc_call_ep, &req_msg, &resp_msg);
-
- ffa_msg_send_direct_resp(req_msg.destination_id,
- req_msg.source_id, resp_msg.args[0], resp_msg.args[1],
- resp_msg.args[2], resp_msg.args[3], resp_msg.args[4],
- &req_msg);
- }
+ sp_msg_send_direct_resp(&resp_msg, &req_msg);
}
fatal_error: