diff options
author | Andre Przywara <andre.przywara@arm.com> | 2016-04-21 02:06:17 +0100 |
---|---|---|
committer | Andre Przywara <andre.przywara@arm.com> | 2016-06-02 01:29:19 +0100 |
commit | 20333e9e50cda606b48432ef1310d645b4b2e6f9 (patch) | |
tree | 7d3a1dd9f5a4194c70af9071d234cea61b27d37f | |
parent | 15899f2c4c35fb64744a685c310be97dba5a4f0d (diff) |
sun50i: smc calls: remove (in)secure register read/write service calls
There are two SMC calls that allowed non-secure software to read and
write _every_ "register", in fact memory locations.
This breaks the whole secure/non-secure separation scheme and thus
has to go.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r-- | services/arm/arm_svc_setup.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/services/arm/arm_svc_setup.c b/services/arm/arm_svc_setup.c index 9e1ebc8..da9b675 100644 --- a/services/arm/arm_svc_setup.c +++ b/services/arm/arm_svc_setup.c @@ -41,15 +41,13 @@ #include <arisc.h> #include <mmio.h> -#define ARM_NUM_CALLS 6 +#define ARM_NUM_CALLS 4 #define ARM_SVC_CALL_COUNT 0x8000ff00 #define ARM_SVC_UID 0x8000ff01 //0x8000ff02 reserved #define ARM_SVC_VERSION 0x8000ff03 #define ARM_SVC_RUNNSOS 0x8000ff04 -#define ARM_SVC_READ_SEC_REG 0x8000ff05 -#define ARM_SVC_WRITE_SEC_REG 0x8000ff06 #define ARM_SVC_ARISC_STARTUP 0x8000ff10 #define ARM_SVC_ARISC_WAIT_READY 0x8000ff11 @@ -123,11 +121,6 @@ uint64_t arm_svc_smc_handler(uint32_t smc_fid, case ARM_SVC_RUNNSOS: prepare_nonsec_os_entry((uint32_t)x1,(uint32_t)x2); SMC_RET0(handle); - case ARM_SVC_READ_SEC_REG: - SMC_RET1(handle, mmio_read_32((uintptr_t)x1)); - case ARM_SVC_WRITE_SEC_REG: - mmio_write_32((uintptr_t)x1,(uint32_t)x2); - SMC_RET0(handle); //arise cmd begin //arise aa32 cmd |