arm-trusted-firmware/lib/el3_runtime
Manish Pandey 1cbe42a510 fix(el3_runtime): allow SErrors when executing in EL3
SCR_EL3.EA is set to 1 in BL31 initialization and is cleared before
entering to lower ELs(except for RAS FFH case "HANDLE_EA_EL3_FIRST_NS").
The cleared value persist even during run time when execution comes
back to EL3.

When SCR_EL3.EA is 0 and execution state is EL3, Async EAs(delivered
as SErrors) are implicitly masked and hence any Async EA by EL3 will
remain pending and will trap at the exception level EA is targeted
to and unmasked when entering lower EL.
This causes unexpected EA at lower EL. This is a very rare
to get SError in EL3 until unless there is any programming error.

This patch sets SCR_EL3.EA to 1 when entering EL3 from lower EL.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ibb593369edb034f670fd85ee79adc9829b900a83
2022-12-14 15:47:34 +01:00
..
aarch32 refactor(context mgmt): add cm_prepare_el3_exit_ns function 2022-04-12 17:42:11 +02:00
aarch64 fix(el3_runtime): allow SErrors when executing in EL3 2022-12-14 15:47:34 +01:00
cpu_data_array.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00