arm-trusted-firmware/lib
Manish Pandey d04c04a4e8 feat(el3-runtime): modify vector entry paths
Vector entries in EL3 from lower ELs, first check for any pending
async EAs from lower EL before handling the original exception.
This happens when there is an error (EA) in the system which is not
yet signaled to PE while executing at lower EL. During entry into EL3
the errors (EA) are synchronized causing async EA to pend at EL3.

On detecting the pending EA (via ISR_EL1.A) EL3 either reflects it back
to lower EL (KFH) or handles it in EL3 (FFH) based on EA routing model.

In case of Firmware First handling mode (FFH), EL3 handles the pended
EA first before returing back to handle the original exception.

While in case of Kernel First handling mode (KFH), EL3 will return back
to lower EL without handling the original exception. On returing to
lower EL, EA will be pended. In KFH mode there is a risk of back and
forth between EL3 and lower EL if the EA is masked at lower EL or
priority of EA is lower than that of original exception. This is a
limitation in current architecture but can be solved in future if EL3
gets a capability to inject virtual SError.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I3a2a31de7cf454d9d690b1ef769432a5b24f6c11
2023-11-01 11:11:21 +00:00
..
aarch32 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
aarch64 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
bl_aux_params chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
compiler-rt chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
coreboot chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
cpus Merge "feat(cpus): add support for Travis CPU" into integration 2023-10-27 15:49:40 +02:00
debugfs chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
el3_runtime feat(el3-runtime): modify vector entry paths 2023-11-01 11:11:21 +00:00
extensions refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
fconf chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
gpt_rme fix(gpt_rme): fix compilation error for gpt_rme.c 2022-12-09 11:27:14 +00:00
libc chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
libfdt chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
locks chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
mpmm fix(errata): workaround for Cortex-A510 erratum 2250311 2022-02-24 23:30:41 +02:00
optee chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
pmf chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
psa refactor(fvp): do not use RSS platform token and attestation key APIs 2023-10-26 21:01:00 +02:00
psci chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
romlib chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
semihosting chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
stack_protector chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
transfer_list feat(handoff): introduce firmware handoff library 2023-09-22 10:56:51 +01:00
utils chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
xlat_mpu chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
xlat_tables chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
xlat_tables_v2 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
zlib chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00