Browse Source

feat(spmd): add FFA_MSG_SEND_DIR_RESP2

Add handling for FF-A 1.2 FFA_MSG_SEND_DIR_RESP2 interface.

Signed-off-by: Kathleen Capella <kathleen.capella@arm.com>
Change-Id: Ibd0546ecd71d004804e6e18b27a4728a21259fa0
pull/1999/merge
Kathleen Capella 1 year ago
parent
commit
0651b7beb7
  1. 5
      include/services/ffa_svc.h
  2. 7
      services/std_svc/spmd/spmd_main.c

5
include/services/ffa_svc.h

@ -24,7 +24,7 @@
/* The macros below are used to identify FFA calls from the SMC function ID */ /* The macros below are used to identify FFA calls from the SMC function ID */
#define FFA_FNUM_MIN_VALUE U(0x60) #define FFA_FNUM_MIN_VALUE U(0x60)
#define FFA_FNUM_MAX_VALUE U(0x8D) #define FFA_FNUM_MAX_VALUE U(0x8E)
#define is_ffa_fid(fid) __extension__ ({ \ #define is_ffa_fid(fid) __extension__ ({ \
__typeof__(fid) _fid = (fid); \ __typeof__(fid) _fid = (fid); \
((GET_SMC_NUM(_fid) >= FFA_FNUM_MIN_VALUE) && \ ((GET_SMC_NUM(_fid) >= FFA_FNUM_MIN_VALUE) && \
@ -124,6 +124,7 @@
#define FFA_FNUM_PARTITION_INFO_GET_REGS U(0x8B) #define FFA_FNUM_PARTITION_INFO_GET_REGS U(0x8B)
#define FFA_FNUM_EL3_INTR_HANDLE U(0x8C) #define FFA_FNUM_EL3_INTR_HANDLE U(0x8C)
#define FFA_FNUM_MSG_SEND_DIRECT_REQ2 U(0x8D) #define FFA_FNUM_MSG_SEND_DIRECT_REQ2 U(0x8D)
#define FFA_FNUM_MSG_SEND_DIRECT_RESP2 U(0x8E)
#define FFA_FNUM_CONSOLE_LOG U(0x8A) #define FFA_FNUM_CONSOLE_LOG U(0x8A)
@ -198,6 +199,8 @@
#define FFA_CONSOLE_LOG_SMC64 FFA_FID(SMC_64, FFA_FNUM_CONSOLE_LOG) #define FFA_CONSOLE_LOG_SMC64 FFA_FID(SMC_64, FFA_FNUM_CONSOLE_LOG)
#define FFA_MSG_SEND_DIRECT_REQ2_SMC64 \ #define FFA_MSG_SEND_DIRECT_REQ2_SMC64 \
FFA_FID(SMC_64, FFA_FNUM_MSG_SEND_DIRECT_REQ2) FFA_FID(SMC_64, FFA_FNUM_MSG_SEND_DIRECT_REQ2)
#define FFA_MSG_SEND_DIRECT_RESP2_SMC64 \
FFA_FID(SMC_64, FFA_FNUM_MSG_SEND_DIRECT_RESP2)
/* /*
* FF-A partition properties values. * FF-A partition properties values.

7
services/std_svc/spmd/spmd_main.c

@ -1182,7 +1182,12 @@ uint64_t spmd_smc_handler(uint32_t smc_fid,
handle, flags); handle, flags);
} }
break; /* Not reached */ break; /* Not reached */
case FFA_MSG_SEND_DIRECT_RESP2_SMC64:
/* Forward direct message to the other world */
return spmd_smc_forward(smc_fid, secure_origin,
x1, x2, x3, x4, cookie,
handle, flags);
break; /* Not reached */
case FFA_RX_RELEASE: case FFA_RX_RELEASE:
case FFA_RXTX_MAP_SMC32: case FFA_RXTX_MAP_SMC32:
case FFA_RXTX_MAP_SMC64: case FFA_RXTX_MAP_SMC64:

Loading…
Cancel
Save