Browse Source

feat(spm): add FFA_MSG_SEND2 forwarding in SPMD

Add FF-A v1.1 indirect messaging ABI FFA_MSG_SEND2 to SPMD to allow
message forwarding across normal/secure worlds.

Change-Id: I074fbd2e4d13893925f987cee271d49da3aaf64b
Signed-off-by: Federico Recanati <federico.recanati@arm.com>
pull/1983/merge
Federico Recanati 3 years ago
parent
commit
c2eba07c47
  1. 1
      include/services/ffa_svc.h
  2. 11
      services/std_svc/spmd/spmd_main.c

1
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 \

11
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);

Loading…
Cancel
Save