summaryrefslogtreecommitdiff
path: root/services/std_svc/std_svc_setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'services/std_svc/std_svc_setup.c')
-rw-r--r--services/std_svc/std_svc_setup.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/services/std_svc/std_svc_setup.c b/services/std_svc/std_svc_setup.c
index 977ed7f6..ffc34716 100644
--- a/services/std_svc/std_svc_setup.c
+++ b/services/std_svc/std_svc_setup.c
@@ -11,6 +11,7 @@
#include <psci.h>
#include <runtime_instr.h>
#include <runtime_svc.h>
+#include <sdei.h>
#include <smcc_helpers.h>
#include <spm_svc.h>
#include <std_svc.h>
@@ -45,6 +46,11 @@ static int32_t std_svc_setup(void)
}
#endif
+#if SDEI_SUPPORT
+ /* SDEI initialisation */
+ sdei_init();
+#endif
+
return ret;
}
@@ -92,7 +98,6 @@ uintptr_t std_svc_smc_handler(uint32_t smc_fid,
SMC_RET1(handle, ret);
}
-
#if ENABLE_SPM
/*
* Dispatch SPM calls to SPM SMC handler and return its return
@@ -104,6 +109,13 @@ uintptr_t std_svc_smc_handler(uint32_t smc_fid,
}
#endif
+#if SDEI_SUPPORT
+ if (is_sdei_fid(smc_fid)) {
+ return sdei_smc_handler(smc_fid, x1, x2, x3, x4, cookie, handle,
+ flags);
+ }
+#endif
+
switch (smc_fid) {
case ARM_STD_SVC_CALL_COUNT:
/*