diff options
author | Jeenu Viswambharan <jeenu.viswambharan@arm.com> | 2014-02-06 10:36:15 +0000 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2014-02-17 18:51:44 +0000 |
commit | caa84939a4d8b1189dea8619ccc57bdb3026b125 (patch) | |
tree | a7eb5e977cc9971c051ef469877fc3d00cba24ad /include/context.h | |
parent | 07f4e078b6871e5c74f6cb38f2726a2cfcb2b746 (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 'include/context.h')
-rw-r--r-- | include/context.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/context.h b/include/context.h index 1c1a3a2..082e511 100644 --- a/include/context.h +++ b/include/context.h @@ -193,7 +193,7 @@ * callee saved registers if used by the C runtime and the assembler * does not touch the remaining. */ -DEFINE_REG_STRUCT(gp_regs_next, CTX_GPREG_ALL); +DEFINE_REG_STRUCT(gp_regs, CTX_GPREG_ALL); /* * AArch64 EL1 system register context structure for preserving the @@ -233,7 +233,7 @@ DEFINE_REG_STRUCT(el3_state, CTX_EL3STATE_ALL); * correspond to either the secure or the non-secure state. */ typedef struct { - gp_regs_next gpregs_ctx; + gp_regs gpregs_ctx; el3_state el3state_ctx; el1_sys_regs sysregs_ctx; fp_regs fpregs_ctx; |