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>
WIP_v2.3-LS
master
v2.2-LS
v2.4-LS
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.3
v2.2-rc2
v2.2-rc1
v2.2-rc0
v2.2
v2.1-rc1
v2.1-rc0
v2.1
v2.0-rc0
v2.0
v1.6-rc1
v1.6-rc0
v1.6
v1.5-rc3
v1.5-rc2
v1.5-rc1
v1.5-rc0
v1.5
v1.4-rc0
v1.4
v1.3_rc2
v1.3_rc1
v1.3-rc0
v1.3
v1.2-rc0
v1.2
v1.1-rc3
v1.1-rc2
v1.1-rc1
v1.1-rc0
v1.1-Juno-0.1
v1.1
v1.0-rc0
v1.0
v0.4-rc2
v0.4-rc1
v0.4-Juno-0.6-rc1
v0.4-Juno-0.6-rc0
v0.4-Juno-0.5-rc1
v0.4-Juno-0.5-rc0
v0.4-Juno-0.5
v0.4-Juno-0.4-rc0
v0.4-Juno-0.4
v0.4
v0.3-Juno-0.3
v0.3-Juno-0.2
v0.3-Juno
v0.3
for-v0.4/05.22
for-v0.4/05.21
for-v0.4/05.20
for-v0.4-rc0
|
---|
|
bl31/aarch64/bl31_entrypoint.S |
---|
bl31/aarch64/exception_handlers.c 100644 → 0 |
---|
bl31/aarch64/runtime_exceptions.S |
---|
bl31/aarch64/runtime_exceptions_next.S 100644 → 0 |
---|
bl31/bl31.mk |
---|
bl31/bl31_main.c |
---|
bl31/context_mgmt.c |
---|
common/psci/psci_common.c |
---|
common/psci/psci_entry.S |
---|
common/psci/psci_main.c |
---|
common/psci/psci_private.h |
---|
common/psci/psci_setup.c |
---|
common/runtime_svc.c |
---|
include/aarch64/arch.h |
---|
include/asm_macros.S |
---|
include/context.h |
---|
include/context_mgmt.h |
---|
include/runtime_svc.h |
---|
lib/arch/aarch64/misc_helpers.S |
---|