summaryrefslogtreecommitdiff
path: root/common/runtime_svc.c
diff options
context:
space:
mode:
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>2014-02-06 10:36:15 +0000
committerDan Handley <dan.handley@arm.com>2014-02-17 18:51:44 +0000
commitcaa84939a4d8b1189dea8619ccc57bdb3026b125 (patch)
treea7eb5e977cc9971c051ef469877fc3d00cba24ad /common/runtime_svc.c
parent07f4e078b6871e5c74f6cb38f2726a2cfcb2b746 (diff)
Add support for handling runtime service requests
This patch uses the reworked exception handling support to handle runtime service requests through SMCs following the SMC calling convention. This is a giant commit since all the changes are inter-related. It does the following: 1. Replace the old exception handling mechanism with the new one 2. Enforce that SP_EL0 is used C runtime stacks. 3. Ensures that the cold and warm boot paths use the 'cpu_context' structure to program an ERET into the next lower EL. 4. Ensures that SP_EL3 always points to the next 'cpu_context' structure prior to an ERET into the next lower EL 5. Introduces a PSCI SMC handler which completes the use of PSCI as a runtime service Change-Id: I661797f834c0803d2c674d20f504df1b04c2b852 Co-authored-by: Achin Gupta <achin.gupta@arm.com>
Diffstat (limited to 'common/runtime_svc.c')
-rw-r--r--common/runtime_svc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common/runtime_svc.c b/common/runtime_svc.c
index 0ea1bf55..6e8a1bb0 100644
--- a/common/runtime_svc.c
+++ b/common/runtime_svc.c
@@ -41,6 +41,7 @@
#include <runtime_svc.h>
#include <context.h>
#include <debug.h>
+#include <context_mgmt.h>
/*******************************************************************************
* The 'rt_svc_descs' array holds the runtime service descriptors exported by
@@ -146,7 +147,7 @@ error:
void fault_handler(void *handle)
{
- gp_regs_next *gpregs_ctx = get_gpregs_ctx(handle);
+ gp_regs *gpregs_ctx = get_gpregs_ctx(handle);
ERROR("Unhandled synchronous fault. Register dump @ 0x%x \n",
gpregs_ctx);
panic();