arm-trusted-firmware/lib/extensions
Boyan Karatotev 73d98e3759 fix(trbe): add a tsb before context switching
Just like for SPE, we need to synchronize TRBE samples before we change
the context to ensure everything goes where it was intended to. If that
is not done, the in-flight entries might use any piece of now incorrect
context as there are no implicit ordering requirements.

Prior to root context, the buffer drain hooks would have done that. But
now that must happen much earlier. So add a tsb to prepare_el3_entry as
well.

Annoyingly, the barrier can be reordered relative to other instructions
by default (rule RCKVWP). So add an isb after the psb/tsb to assure that
they are ordered, at least as far as context is concerned.

Then, drop the buffer draining hooks. Everything they need to do is
already done by now. There's a notable difference in that there are no
dsb-s now. Since EL3 does not access the buffers or the feature
specific context, we don't need to wait for them to finish.

Finally, drop a stray isb in the context saving macro. It is now
absorbed into root context, but was missed.

Change-Id: I30797a40ac7f91d0bb71ad271a1597e85092ccd5
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2024-12-16 15:14:30 +00:00
..
amu refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
brbe fix(brbe): allow RME builds with BRBE 2024-10-18 11:30:34 +01:00
debug feat(debugv8p9): add support for FEAT_Debugv8p9 2024-07-18 13:49:43 -05:00
fgt feat(fgt2): add support for FEAT_FGT2 2024-07-18 13:49:43 -05:00
fpmr feat(fpmr): disable FPMR trap 2024-12-12 10:03:23 -06:00
mpam refactor(cm): move MPAM3_EL3 reg to per world context 2023-12-21 12:37:21 +00:00
pauth chore(pauth): remove redundant pauth_disable_el3() call 2023-04-28 08:09:14 +01:00
pmuv3 refactor(cm): remove el1 context when SPMD_SPM_AT_SEL2=1 2024-08-21 16:35:27 +01:00
ras chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
sme refactor(cpufeat): add macro to simplify is_feat_xx_present 2024-05-02 12:16:16 -05:00
spe fix(trbe): add a tsb before context switching 2024-12-16 15:14:30 +00:00
sve refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
sys_reg_trace refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
sysreg128 feat(d128): add support for FEAT_D128 2024-10-24 14:51:55 -05:00
tcr feat(cm): handle asymmetry for FEAT_TCR2 2024-09-05 16:28:23 +01:00
trbe fix(trbe): add a tsb before context switching 2024-12-16 15:14:30 +00:00
trf feat(cm): context switch MDCR_EL3 register 2024-06-25 13:50:32 +01:00