From 0651b7beb7e08a01c6e28be61026b053d53308fa Mon Sep 17 00:00:00 2001 From: Kathleen Capella Date: Fri, 8 Sep 2023 17:45:45 -0400 Subject: [PATCH] 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 Change-Id: Ibd0546ecd71d004804e6e18b27a4728a21259fa0 --- include/services/ffa_svc.h | 5 ++++- services/std_svc/spmd/spmd_main.c | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/services/ffa_svc.h b/include/services/ffa_svc.h index 75f1ef8ce..01dbea979 100644 --- a/include/services/ffa_svc.h +++ b/include/services/ffa_svc.h @@ -24,7 +24,7 @@ /* The macros below are used to identify FFA calls from the SMC function ID */ #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__ ({ \ __typeof__(fid) _fid = (fid); \ ((GET_SMC_NUM(_fid) >= FFA_FNUM_MIN_VALUE) && \ @@ -124,6 +124,7 @@ #define FFA_FNUM_PARTITION_INFO_GET_REGS U(0x8B) #define FFA_FNUM_EL3_INTR_HANDLE U(0x8C) #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) @@ -198,6 +199,8 @@ #define FFA_CONSOLE_LOG_SMC64 FFA_FID(SMC_64, FFA_FNUM_CONSOLE_LOG) #define FFA_MSG_SEND_DIRECT_REQ2_SMC64 \ 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. diff --git a/services/std_svc/spmd/spmd_main.c b/services/std_svc/spmd/spmd_main.c index 67909b6f4..5d19868a2 100644 --- a/services/std_svc/spmd/spmd_main.c +++ b/services/std_svc/spmd/spmd_main.c @@ -1182,7 +1182,12 @@ uint64_t spmd_smc_handler(uint32_t smc_fid, handle, flags); } 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_RXTX_MAP_SMC32: case FFA_RXTX_MAP_SMC64: