diff --git a/include/services/ffa_svc.h b/include/services/ffa_svc.h index 4c049c5f8..9a7c48989 100644 --- a/include/services/ffa_svc.h +++ b/include/services/ffa_svc.h @@ -116,6 +116,7 @@ #define FFA_MSG_YIELD FFA_FID(SMC_32, FFA_FNUM_MSG_YIELD) #define FFA_MSG_RUN FFA_FID(SMC_32, FFA_FNUM_MSG_RUN) #define FFA_MSG_SEND FFA_FID(SMC_32, FFA_FNUM_MSG_SEND) +#define FFA_MSG_SEND2 FFA_FID(SMC_32, FFA_FNUM_MSG_SEND2) #define FFA_MSG_SEND_DIRECT_REQ_SMC32 \ FFA_FID(SMC_32, FFA_FNUM_MSG_SEND_DIRECT_REQ) #define FFA_MSG_SEND_DIRECT_RESP_SMC32 \ diff --git a/services/std_svc/spmd/spmd_main.c b/services/std_svc/spmd/spmd_main.c index f5de54966..bfee2dddb 100644 --- a/services/std_svc/spmd/spmd_main.c +++ b/services/std_svc/spmd/spmd_main.c @@ -688,16 +688,13 @@ uint64_t spmd_smc_handler(uint32_t smc_fid, case FFA_NOTIFICATION_GET: case FFA_NOTIFICATION_INFO_GET: case FFA_NOTIFICATION_INFO_GET_SMC64: + case FFA_MSG_SEND2: #endif + case FFA_MSG_RUN: /* - * Above calls should not be forwarded from Secure world to - * Normal world. - * - * Fall through to forward the call to the other world + * Above calls should be invoked only by the Normal world and + * must not be forwarded from Secure world to Normal world. */ - case FFA_MSG_RUN: - /* This interface must be invoked only by the Normal world */ - if (secure_origin) { return spmd_ffa_error_return(handle, FFA_ERROR_NOT_SUPPORTED);