arm-trusted-firmware/include/lib
Jeenu Viswambharan 21b818c05f BL31: Introduce Exception Handling Framework
EHF is a framework that allows dispatching of EL3 interrupts to their
respective handlers in EL3.

This framework facilitates the firmware-first error handling policy in
which asynchronous exceptions may be routed to EL3. Such exceptions may
be handed over to respective exception handlers. Individual handlers
might further delegate exception handling to lower ELs.

The framework associates the delegated execution to lower ELs with a
priority value. For interrupts, this corresponds to the priorities
programmed in GIC; for other types of exceptions, viz. SErrors or
Synchronous External Aborts, individual dispatchers shall explicitly
associate delegation to a secure priority. In order to prevent lower
priority interrupts from preempting higher priority execution, the
framework provides helpers to control preemption by virtue of
programming Priority Mask register in the interrupt controller.

This commit allows for handling interrupts targeted at EL3. Exception
handlers own interrupts by assigning them a range of secure priorities,
and registering handlers for each priority range it owns.

Support for exception handling in BL31 image is enabled by setting the
build option EL3_EXCEPTION_HANDLING=1.

Documentation to follow.

NOTE: The framework assumes the priority scheme supported by platform
interrupt controller is compliant with that of ARM GIC architecture (v2
or later).

Change-Id: I7224337e4cea47c6ca7d7a4ca22a3716939f7e42
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-11-13 07:49:30 +00:00
..
aarch32 Merge pull request #1130 from jeenu-arm/gic-patches 2017-10-21 22:18:48 +01:00
aarch64 SPM: Introduce Secure Partition Manager 2017-11-08 18:05:14 +00:00
cpus Cortex-A72: Implement workaround for erratum 859971 2017-09-07 14:22:02 +01:00
el3_runtime BL31: Introduce Exception Handling Framework 2017-11-13 07:49:30 +00:00
libfdt libfdt: Replace v1.4.1 by v1.4.2 2017-01-16 17:26:04 +00:00
pmf Fix order of #includes 2017-07-12 14:45:31 +01:00
psci Update PSCI version to 1.1 2017-10-13 12:39:08 +01:00
stdlib Fix stdlib defines for AArch32 2017-06-09 14:47:52 +01:00
xlat_tables Merge pull request #1148 from antonio-nino-diaz-arm/an/spm 2017-11-09 22:38:37 +00:00
bakery_lock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
cassert.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
mmio.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
optee_utils.h Add Trusted OS extra image parsing support for ARM standard platforms 2017-08-09 18:06:05 +08:00
runtime_instr.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
semihosting.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
smcc.h include: add U()/ULL() macros for constants 2017-06-14 17:00:30 -07:00
spinlock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
utils.h Add mem_region utility functions 2017-09-25 13:32:20 +01:00
utils_def.h GICv3: add functions for save and restore 2017-10-05 16:47:53 +01:00