From 83a5d512790f7fd5da667b3345943e41dc86bc70 Mon Sep 17 00:00:00 2001 From: Antonio Nino Diaz Date: Fri, 30 Nov 2018 10:53:26 +0000 Subject: [PATCH] SPM: Remove remaining SMC interfaces Also, add a disclaimer to explain that the current implementation of SPM is a prototype that is going to undergo a lot of rework. Change-Id: I303c1e61c51d9f286cc599fea565fc9ba5a996bf Signed-off-by: Antonio Nino Diaz --- include/services/spm_svc.h | 8 +++++ services/std_svc/spm/README.rst | 3 ++ services/std_svc/spm/spm_main.c | 51 -------------------------------- services/std_svc/std_svc_setup.c | 2 +- 4 files changed, 12 insertions(+), 52 deletions(-) create mode 100644 services/std_svc/spm/README.rst diff --git a/include/services/spm_svc.h b/include/services/spm_svc.h index 7a69b2828..763b24eac 100644 --- a/include/services/spm_svc.h +++ b/include/services/spm_svc.h @@ -7,6 +7,8 @@ #ifndef SPM_SVC_H #define SPM_SVC_H +#if SPM_DEPRECATED + #include #define SPM_VERSION_MAJOR U(0) @@ -59,12 +61,16 @@ #define SPM_DENIED -3 #define SPM_NO_MEMORY -5 +#endif /* SPM_DEPRECATED */ + #ifndef __ASSEMBLY__ #include int32_t spm_setup(void); +#if SPM_DEPRECATED + uint64_t spm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, @@ -77,6 +83,8 @@ uint64_t spm_smc_handler(uint32_t smc_fid, /* Helper to enter a Secure Partition */ uint64_t spm_sp_call(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3); +#endif /* SPM_DEPRECATED */ + #endif /* __ASSEMBLY__ */ #endif /* SPM_SVC_H */ diff --git a/services/std_svc/spm/README.rst b/services/std_svc/spm/README.rst new file mode 100644 index 000000000..63406a3bb --- /dev/null +++ b/services/std_svc/spm/README.rst @@ -0,0 +1,3 @@ +This is a prototype loosely based on the SPCI Alpha and SPRT pre-alpha +specifications. Any interface / platform API introduced for this is subject to +change as it evolves. diff --git a/services/std_svc/spm/spm_main.c b/services/std_svc/spm/spm_main.c index d80775fde..460d1fb31 100644 --- a/services/std_svc/spm/spm_main.c +++ b/services/std_svc/spm/spm_main.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -356,53 +355,3 @@ int32_t spm_setup(void) return 0; } - -/******************************************************************************* - * Secure Partition Manager SMC handler. - ******************************************************************************/ -uint64_t spm_smc_handler(uint32_t smc_fid, - uint64_t x1, - uint64_t x2, - uint64_t x3, - uint64_t x4, - void *cookie, - void *handle, - uint64_t flags) -{ - unsigned int ns; - - /* Determine which security state this SMC originated from */ - ns = is_caller_non_secure(flags); - - if (ns == SMC_FROM_SECURE) { - - /* Handle SMCs from Secure world. */ - - assert(handle == cm_get_context(SECURE)); - - /* Make next ERET jump to S-EL0 instead of S-EL1. */ - cm_set_elr_spsr_el3(SECURE, read_elr_el1(), read_spsr_el1()); - - switch (smc_fid) { - - case SPM_VERSION_AARCH32: - SMC_RET1(handle, SPM_VERSION_COMPILED); - - default: - break; - } - } else { - - /* Handle SMCs from Non-secure world. */ - - assert(handle == cm_get_context(NON_SECURE)); - - switch (smc_fid) { - - default: - break; - } - } - - SMC_RET1(handle, SMC_UNK); -} diff --git a/services/std_svc/std_svc_setup.c b/services/std_svc/std_svc_setup.c index 1a81a0a34..86ecdf7b8 100644 --- a/services/std_svc/std_svc_setup.c +++ b/services/std_svc/std_svc_setup.c @@ -102,7 +102,7 @@ static uintptr_t std_svc_smc_handler(uint32_t smc_fid, SMC_RET1(handle, ret); } -#if ENABLE_SPM +#if ENABLE_SPM && SPM_DEPRECATED /* * Dispatch SPM calls to SPM SMC handler and return its return * value -- GitLab