arm-trusted-firmware/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
..
aarch32 fix(pie): do not skip __RW_END__ address during relocation 2021-12-01 17:35:27 +01:00
aarch64 fix(pie): align fixup_gdt_reloc() for aarch64 2021-12-01 17:35:33 +01:00
bl_aux_params fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
compiler-rt compiler_rt: Import popcountdi2.c and popcountsi2.c files 2020-01-20 11:32:59 +01:00
coreboot Update in coreboot_get_memory_type API to include size as well 2020-10-16 02:23:35 +05:30
cpus fix(errata): workaround for Neoverse V1 erratum 2216392 2021-11-05 23:10:58 +01:00
debugfs DebugFS: Check channel index before calling clone function 2021-01-21 15:25:23 +00: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 fix(rme): fixes a shift by 64 bits bug in the RME GPT library 2021-11-16 17:41:43 +01:00
libc libc: memset: Fix MISRA issues 2021-02-24 09:33:59 +00:00
libfdt libfdt: Upgrade libfdt source files 2020-10-02 12:15:48 +00:00
locks locks: bakery: use is_dcache_enabled() helper 2020-04-07 09:33:13 +02:00
mpmm feat(mpmm): add support for MPMM 2021-10-26 12:15:42 +01:00
optee fix(lib/optee): correct signedness comparison 2021-10-07 18:08:01 +02:00
pmf Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
psci feat(psci): require validate_power_state to expose CPU_SUSPEND 2021-10-15 14:13:54 +02:00
romlib Use abspath to dereference $BUILD_BASE 2020-08-04 18:02:02 +01:00
semihosting MISRA cleanup in mem_region and semihosting files 2020-08-07 19:11:23 -05:00
stack_protector Disable stack protection explicitly 2019-10-20 14:59:09 -04:00
utils MISRA cleanup in mem_region and semihosting files 2020-08-07 19:11:23 -05:00
xlat_mpu refactor(fvp_r): remove unused files and clean up makefiles 2021-10-29 09:43:19 -05:00
xlat_tables chore: fvp_r: Initial No-EL3 and MPU Implementation 2021-09-30 17:05:59 +01:00
xlat_tables_v2 fix(xlat): fix bug on VERBOSE trace 2021-12-03 10:31:17 +00:00
zlib feat(sw_crc32): add software CRC32 support 2021-08-02 17:15:41 +01:00