arm-trusted-firmware/include/lib/el3_runtime
Boyan Karatotev 24a70738b2 refactor(cm): introduce a real manage_extensions_nonsecure()
manage_extensions_nonsecure() is problematic because it updates both
context and in-place registers (unlike its secure/realm counterparts).
The in-place register updates make it particularly tricky, as those
never change for the lifetime of TF-A. However, they are only set when
exiting to NS world. As such, all of TF-A's execution before that
operates under a different context. This is inconsistent and could cause
problems.

This patch Introduce a real manage_extensions_nonsecure() which only
operates on the context structure. It also introduces a
cm_manage_extensions_el3() which only operates on register in-place that
are not context switched. It is called in BL31's entrypoints so that all
of TF-A executes with the same environment once all features have been
converted.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Ic579f86c41026d2054863ef44893e0ba4c591da9
2023-06-29 09:59:06 +01:00
..
aarch32 style: remove useless trailing semicolon and line continuations 2023-03-09 14:59:08 +01:00
aarch64 refactor(cpufeat): enable FEAT_RAS for FEAT_STATE_CHECKED 2023-05-09 13:20:01 +01:00
context_mgmt.h refactor(cm): introduce a real manage_extensions_nonsecure() 2023-06-29 09:59:06 +01:00
cpu_data.h feat(rme): add context management changes for FEAT_RME 2021-10-05 18:41:35 +02:00
pubsub.h build: always prefix section names with . 2023-02-20 18:29:33 +00:00
pubsub_events.h Switch AARCH32/AARCH64 to __aarch64__ 2019-08-01 13:45:03 -07:00