arm-trusted-firmware/lib
Boyan Karatotev f808873372 fix(spe): add a psb before updating context and remove context saving
In the chapter about FEAT_SPE (D16.4 specifically) it is stated that
"Sampling is always disabled at EL3". That means that disabling sampling
(writing PMBLIMITR_EL1.E to 0) is redundant and can be removed. The only
reason we save/restore SPE context is because of that disable, so those
can be removed too.

There's the issue of draining the profiling buffer though. No new
samples will have been generated since entering EL3. However, old
samples might still be in-flight. Unless synchronised by a psb csync,
those might be affected by our extensive context mutation. Adding a psb
in prepare_el3_entry should cater for that. Note that prior to the
introduction of root context this was not a problem as context remained
unchanged and the hooks took care of the rest.

Then, the only time we care about the buffer actually making it to
memory is when we exit coherency. On HW_ASSISTED_COHERENCY systems we
don't have to do anything, it should be handled for us. Systems without
it need a dsb to wait for them to complete. There should be one already
in each cpu's powerdown hook which should work.

While on the topic of barriers, the esb barrier is no longer used.
Remove it.

Change-Id: I9736fc7d109702c63e7d403dc9e2a4272828afb2
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2024-12-16 15:14:30 +00:00
..
aarch32 chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
aarch64 feat(gpt): add support for large GPT mappings 2024-05-14 10:36:42 +02:00
bl_aux_params chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
compiler-rt chore(compiler-rt): update compiler-rt source files 2024-05-10 11:24:49 +02:00
coreboot chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
cpus fix(cpus): workaround for Cortex-X4 erratum 2923985 2024-12-11 16:09:20 -06:00
debugfs chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
el3_runtime fix(spe): add a psb before updating context and remove context saving 2024-12-16 15:14:30 +00:00
extensions fix(spe): add a psb before updating context and remove context saving 2024-12-16 15:14:30 +00:00
fconf feat(fconf): support signing-key in root cert node 2024-01-18 13:18:09 -06:00
gpt_rme chore(gpt): fix typo in comment 2024-09-17 18:16:00 +02:00
hob feat(lib): introduce Hob creation library 2024-12-06 13:26:31 +00:00
libc fix(libc): memset inclusion to libc makefiles 2024-02-02 09:49:01 +01:00
libfdt build(libfdt): introduce include guards 2024-05-10 11:58:45 +00:00
locks feat(locks): add bitlock 2024-04-15 12:14:16 +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 feat((smccc): add version FID for PMF 2024-05-06 09:42:11 -05:00
psa feat(psa): introduce generic library for CCA attestation 2024-06-07 11:40:08 +01:00
psci fix(spe): add a psb before updating context and remove context saving 2024-12-16 15:14:30 +00:00
romlib fix(romlib): romlib build without MbedTLS 2024-12-05 17:35:57 +00: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): fix register convention r1/x1 value on transfer list 2024-07-22 15:54:44 +01:00
utils chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
xlat_mpu refactor(cpufeat): add macro to simplify is_feat_xx_present 2024-05-02 12:16:16 -05:00
xlat_tables feat(d128): add support for FEAT_D128 2024-10-24 14:51:55 -05:00
xlat_tables_v2 feat(d128): add support for FEAT_D128 2024-10-24 14:51:55 -05:00
zlib chore(zlib): update zlib to version 1.3 2023-11-06 21:13:38 +00:00