arm-trusted-firmware/include/lib
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
..
bl_aux_params style(docs): fix typo s/flase/false/ 2023-03-21 13:41:39 +01:00
cpus feat(cpus): add support for hermes cpu 2023-06-27 10:49:38 -05:00
el3_runtime refactor(cm): introduce a real manage_extensions_nonsecure() 2023-06-29 09:59:06 +01:00
extensions feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED 2023-03-28 17:19:13 +02:00
fconf feat(fconf): rename 'ns-load-address' to 'secondary-load-address' 2023-02-07 11:26:38 +00:00
gpt_rme fix(gpt_rme): rework delegating/undelegating sequence 2022-03-09 16:08:42 +01:00
libc feat(lib): implement memcpy_s in lib 2023-06-13 11:25:48 +08:00
libfdt feat(libfdt): upgrade libfdt source files 2022-10-19 14:07:46 +01:00
mpmm feat(mpmm): add support for MPMM 2021-10-26 12:15:42 +01:00
pmf build: always prefix section names with . 2023-02-20 18:29:33 +00:00
psa fix(measured-boot): don't strip last non-0 char 2023-05-31 16:40:43 +02:00
psci fix(psci): add optional pwr_domain_validate_suspend to plat_psci_ops_t 2023-05-31 23:54:19 -07:00
xlat_mpu fvp_r: load, auth, and transfer from BL1 to BL33 2021-09-30 17:07:11 +01:00
xlat_tables build: always prefix section names with . 2023-02-20 18:29:33 +00:00
zlib Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bakery_lock.h build: always prefix section names with . 2023-02-20 18:29:33 +00:00
cassert.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
coreboot.h feat(optee): add device tree for coreboot table 2023-05-11 10:46:57 +02:00
debugfs.h debugfs: add SMC channel 2019-12-18 09:59:12 +01:00
mmio.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
object_pool.h fconf: Fix misra issues 2020-02-27 16:14:07 +00:00
optee_utils.h feat(optee): add loading OP-TEE image via an SMC 2023-01-31 10:38:16 -08:00
runtime_instr.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
semihosting.h qemu: Implement qemu_system_off via semihosting. 2020-01-23 10:53:45 +00:00
smccc.h chore(smccc): bump up SMCCC version to 1.4 2023-06-16 13:06:16 +01:00
spinlock.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
utils.h arm: gicv3: Fix compiler dependent behavior 2019-12-10 15:53:44 -06:00
utils_def.h fix: add parenthesis for tests in MIN, MAX and CLAMP macros 2022-12-07 14:16:03 +01:00