arm-trusted-firmware/bl31
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
..
aarch64 fix: pass SMCCCv1.3 SVE hint to internal flags 2023-06-16 15:03:36 +02:00
bl31.ld.S chore(bl): add UNALIGNED symbols for TEXT/RODATA 2023-06-12 12:50:08 +02:00
bl31.mk Merge changes from topic "srm/Errata_ABI_El3" into integration 2023-05-09 21:15:54 +02:00
bl31_context_mgmt.c feat(rme): add context management changes for FEAT_RME 2021-10-05 18:41:35 +02:00
bl31_main.c refactor(cm): introduce a real manage_extensions_nonsecure() 2023-06-29 09:59:06 +01:00
bl31_traps.c feat(el3-runtime): handle traps for IMPDEF registers accesses 2023-04-30 11:04:59 +01:00
ehf.c fix(bl31): allow use of EHF with S-EL2 SPMC 2022-08-30 08:29:25 -07:00
interrupt_mgmt.c Use correct type when reading SCR register 2020-01-28 11:10:48 +00:00