arm-trusted-firmware/include/lib
Jayanth Dodderi Chidanand f74cb0be8a fix(amu): fault handling on EL2 context switch
The HAFGRTR_EL2 register is UNDEFINED unless the CPU supports both
FEAT_FGT and FEAT_AMUv1. FEAT_FGT is mandatory for v8.6-A and upwards,
but FEAT_AMUv1 is optional (from v8.4-A upwards), and as such any
8.6-A cores today without support for FEAT_AMUv1 will trigger an
undefined instruction exception on accessing this register.

Currently ARM_ARCH_AT_LEAST macro has been used to associate with an
architecture extension allowing to access HAFGRTR_EL2 register. This
condition should be replaced with macros specific to individual
features. This patch adds a new set of macros "ENABLE_FEAT_FGT,
ENABLE_FEAT_AMUv1, ENABLE_FEAT_ECV" under build options to provide
controlled access to the HAFGRTR_EL2 register.

Further to ensure that the the build options passed comply
with the given hardware implementation, a feature detection mechanism,
checking whether build options match with the architecture is required
at bootime. This will be implemented and pushed later in a separate
patch.

Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Change-Id: Ie390f4babe233b8b09455290277edbddecd33ead
2021-12-10 12:33:51 +00:00
..
bl_aux_params Factor out cross-BL API into export headers suitable for 3rd party code 2019-07-23 20:25:34 -07:00
cpus fix(errata): workaround for Neoverse-N2 erratum 2242400 2021-11-04 12:51:26 -07:00
el3_runtime fix(amu): fault handling on EL2 context switch 2021-12-10 12:33:51 +00:00
extensions feat(sme): enable SME functionality 2021-11-12 10:38:00 -06:00
fconf feat(mpmm): add support for MPMM 2021-10-26 12:15:42 +01:00
gpt_rme refactor(gpt): productize and refactor GPT library 2021-10-05 16:24:57 -05:00
libc fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
libfdt libfdt: Upgrade libfdt source files 2020-10-02 12:15:48 +00:00
mpmm feat(mpmm): add support for MPMM 2021-10-26 12:15:42 +01:00
pmf Increase type widths to satisfy width requirements 2020-10-12 10:55:03 -05:00
psci psci: utility api to invoke stop for other cores 2020-09-03 09:29:22 +00:00
xlat_mpu fvp_r: load, auth, and transfer from BL1 to BL33 2021-09-30 17:07:11 +01:00
xlat_tables feat(rme): add xlat table library changes for FEAT_RME 2021-10-04 14:09:23 -05:00
zlib Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bakery_lock.h Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
cassert.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
coreboot.h Update in coreboot_get_memory_type API to include size as well 2020-10-16 02:23:35 +05:30
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(lib/optee): introduce optee_header_is_valid() 2021-09-06 13:21:54 +02: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 feat(rme): add Realm security state definition 2021-10-01 16:54:44 -05: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 NXP: Timer API added to enable ARM generic timer 2021-03-24 09:49:31 +05:30