summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/std_svc/spm/spmc/spmc_main.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/services/std_svc/spm/spmc/spmc_main.c b/services/std_svc/spm/spmc/spmc_main.c
index ef27c440b..132640b96 100644
--- a/services/std_svc/spm/spmc/spmc_main.c
+++ b/services/std_svc/spm/spmc/spmc_main.c
@@ -770,6 +770,7 @@ static uint64_t ffa_features_handler(uint32_t smc_fid,
case FFA_ERROR:
case FFA_SUCCESS_SMC32:
case FFA_SUCCESS_SMC64:
+ case FFA_ID_GET:
case FFA_FEATURES:
case FFA_VERSION:
case FFA_MSG_SEND_DIRECT_REQ_SMC64:
@@ -818,6 +819,20 @@ static uint64_t ffa_version_handler(uint32_t smc_fid,
FFA_VERSION_MINOR);
}
+static uint64_t ffa_id_get_handler(uint32_t smc_fid,
+ bool secure_origin,
+ uint64_t x1,
+ uint64_t x2,
+ uint64_t x3,
+ uint64_t x4,
+ void *cookie,
+ void *handle,
+ uint64_t flags)
+{
+ spmc_sp_context_t *ctx = spmc_get_current_ctx(flags);
+ SMC_RET3(handle, FFA_SUCCESS_SMC32, 0x0, ctx->sp_id);
+}
+
/*******************************************************************************
* SPMC Helper Functions
******************************************************************************/
@@ -905,6 +920,8 @@ uint64_t spmc_smc_handler(uint32_t smc_fid,
uint64_t flags)
{
switch (smc_fid) {
+ case FFA_ID_GET:
+ return ffa_id_get_handler(smc_fid, secure_origin, x1, x2, x3, x4, cookie, handle, flags);
case FFA_FEATURES:
return ffa_features_handler(smc_fid, secure_origin, x1, x2, x3, x4, cookie, handle, flags);
case FFA_VERSION: