summaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>2018-11-08 14:12:40 +0000
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>2018-12-11 13:45:41 +0000
commite8ce60aeb139a0f11bee83bd3ce904475d2bf460 (patch)
tree92906ca010e6eec986eaf33dcb395c1ae4c47631 /bl31
parentbbc8100720ee95478e90895f1061009551f92851 (diff)
SPM: Introduce SMC handlers for SPCI and SPRT
Change-Id: I2ae9b3bb686c41b2e138132a7bed107925ac861e Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Diffstat (limited to 'bl31')
-rw-r--r--bl31/aarch64/runtime_exceptions.S12
1 files changed, 11 insertions, 1 deletions
diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S
index 77bd63ec..ab61e8cc 100644
--- a/bl31/aarch64/runtime_exceptions.S
+++ b/bl31/aarch64/runtime_exceptions.S
@@ -382,8 +382,16 @@ smc_handler64:
*/
tbz x0, #(FUNCID_NAMESPACE_SHIFT + 1), compat_or_vendor
- /* Namespaces SPRT and SPCI currently unimplemented */
+ /* Namespace is b'10 (SPRT) or b'11 (SPCI) */
+#if ENABLE_SPM
+ tst x0, #(1 << FUNCID_NAMESPACE_SHIFT)
+ adr x15, spci_smc_handler
+ adr x16, sprt_smc_handler
+ csel x15, x15, x16, ne
+ b prepare_enter_handler
+#else
b smc_unknown
+#endif
compat_or_vendor:
@@ -401,6 +409,8 @@ compat_or_vendor:
load_rt_svc_desc_pointer
+prepare_enter_handler:
+
#endif /* SMCCC_MAJOR_VERSION */
/*