diff options
Diffstat (limited to 'deployments/crypto/opteesp/crypto_sp.c')
-rw-r--r-- | deployments/crypto/opteesp/crypto_sp.c | 19 |
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: |