arm-trusted-firmware/bl31
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
..
aarch64 feat(el3-runtime): modify vector entry paths 2023-11-01 11:11:21 +00:00
bl31.ld.S feat(bl31): reuse SPM_MM specific defines for SPMC_AT_EL3 2023-10-12 10:44:34 +01:00
bl31.mk fix(mpam): refine MPAM initialization and enablement process 2023-10-25 09:04:29 -05:00
bl31_context_mgmt.c feat(rme): add context management changes for FEAT_RME 2021-10-05 18:41:35 +02:00
bl31_main.c refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
bl31_traps.c feat(el3-runtime): handle traps for IMPDEF registers accesses 2023-04-30 11:04:59 +01:00
ehf.c refactor(el3-runtime): plat_ic_has_interrupt_type returns bool 2023-09-25 17:09:15 -05:00
interrupt_mgmt.c refactor(el3-runtime): plat_ic_has_interrupt_type returns bool 2023-09-25 17:09:15 -05:00