arm-trusted-firmware/include
Madhukar Pappireddy c2d32a5f85 Fix exception handlers in BL31: Use DSB to synchronize pending EA
For SoCs which do not implement RAS, use DSB as a barrier to
synchronize pending external aborts at the entry and exit of
exception handlers. This is needed to isolate the SErrors to
appropriate context.

However, this introduces an unintended side effect as discussed
in the https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/3440
A summary of the side effect and a quick workaround is provided as
part of this patch and summarized here:

The explicit DSB at the entry of various exception vectors in BL31
for handling exceptions from lower ELs can inadvertently trigger an
SError exception in EL3 due to pending asyncrhonouus aborts in lower
ELs. This will end up being handled by serror_sp_elx in EL3 which will
ultimately panic and die.

The way to workaround is to update a flag to indicate if the exception
truly came from EL3. This flag is allocated in the cpu_context
structure. This is not a bullet proof solution to the problem at hand
because we assume the instructions following "isb" that help to update
the flag (lines 100-102 & 139-141) execute without causing further
exceptions.

Change-Id: I4d345b07d746a727459435ddd6abb37fda24a9bf
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2021-01-29 10:30:18 -06:00
..
arch Define registers for FEAT_RNG support 2021-01-15 15:18:02 +00:00
bl1 Specify signed-ness of constants 2020-08-14 11:36:05 +00:00
bl2 BL2_AT_EL3: Enable pointer authentication support 2019-02-27 11:58:09 +00:00
bl2u Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bl31 Use correct type when reading SCR register 2020-01-28 11:10:48 +00:00
bl32 spd: tlkd: support new TLK SMCs for RPMB service 2020-03-21 19:00:05 -07:00
common Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
drivers Merge changes from topic "scmi-msg" into integration 2021-01-27 15:14:46 +00:00
dt-bindings fdts: stm32mp1: realign device tree with kernel 2020-09-24 09:07:57 +02:00
export Increase type widths to satisfy width requirements 2020-10-12 10:55:03 -05:00
lib Fix exception handlers in BL31: Use DSB to synchronize pending EA 2021-01-29 10:30:18 -06:00
plat plat: arm: Increase SP max size 2020-12-14 11:50:10 +00:00
services SPMC: manifest changes to support multicore boot 2020-08-20 18:06:06 +01:00
tools_share lib: fconf: Implement a parser to populate CoT 2020-09-15 16:13:26 +01:00