summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2016-04-21 02:06:17 +0100
committerAndre Przywara <andre.przywara@arm.com>2016-06-02 01:29:19 +0100
commit20333e9e50cda606b48432ef1310d645b4b2e6f9 (patch)
tree7d3a1dd9f5a4194c70af9071d234cea61b27d37f
parent15899f2c4c35fb64744a685c310be97dba5a4f0d (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.c9
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