arm-trusted-firmware/lib/cpus/aarch64
Alexei Fedorov 9fc59639e6 Add support for Branch Target Identification
This patch adds the functionality needed for platforms to provide
Branch Target Identification (BTI) extension, introduced to AArch64
in Armv8.5-A by adding BTI instruction used to mark valid targets
for indirect branches. The patch sets new GP bit [50] to the stage 1
Translation Table Block and Page entries to denote guarded EL3 code
pages which will cause processor to trap instructions in protected
pages trying to perform an indirect branch to any instruction other
than BTI.
BTI feature is selected by BRANCH_PROTECTION option which supersedes
the previous ENABLE_PAUTH used for Armv8.3-A Pointer Authentication
and is disabled by default. Enabling BTI requires compiler support
and was tested with GCC versions 9.0.0, 9.0.1 and 10.0.0.
The assembly macros and helpers are modified to accommodate the BTI
instruction.
This is an experimental feature.
Note. The previous ENABLE_PAUTH build option to enable PAuth in EL3
is now made as an internal flag and BRANCH_PROTECTION flag should be
used instead to enable Pointer Authentication.
Note. USE_LIBROM=1 option is currently not supported.

Change-Id: Ifaf4438609b16647dc79468b70cd1f47a623362e
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
2019-05-24 14:44:45 +01:00
..
aem_generic.S Make errata reporting mandatory for CPU files 2018-10-29 09:54:32 +00:00
cortex_a35.S Cortex-A35: Implement workaround for errata 855472 2019-04-17 13:46:43 +01:00
cortex_a53.S Cortex-A53: Fix reporting of missing errata when not needed 2019-04-25 09:26:17 -04:00
cortex_a55.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
cortex_a57.S Cortex-A57: Implement workaround for erratum 817169 2019-02-28 09:56:58 +00:00
cortex_a72.S cpulib: Add ISBs or comment why they are unneeded 2018-06-19 10:34:51 +01:00
cortex_a73.S Cortex-A73: Implement workaround for errata 852427 2019-02-28 12:01:13 +00:00
cortex_a75.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
cortex_a75_pubsub.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
cortex_a76.S Merge changes from topic "sm/fix_a76_errata" into integration 2019-05-07 14:31:25 +00:00
cortex_a76ae.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
cortex_deimos.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
cpu_helpers.S Tegra: Support for scatterfile for the BL31 image 2019-02-27 08:33:35 -08:00
cpuamu.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
cpuamu_helpers.S Add support for Branch Target Identification 2019-05-24 14:44:45 +01:00
denver.S cpus: denver: Implement static workaround for CVE-2018-3639 2018-09-04 17:34:08 -07:00
dsu_helpers.S DSU: Implement workaround for errata 798953 2019-04-17 13:46:43 +01:00
neoverse_e1.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
neoverse_n1.S Disable speculative loads only if SSBS is supported 2019-05-14 15:57:10 +01:00
neoverse_n1_pubsub.c Rename Cortex-Ares to Neoverse N1 2019-02-19 13:50:07 +00:00
neoverse_zeus.S Add compile-time errors for HW_ASSISTED_COHERENCY flag 2019-05-03 14:23:55 +01:00
wa_cve_2017_5715_bpiall.S Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
wa_cve_2017_5715_mmu.S Sanitise includes across codebase 2019-01-04 10:43:17 +00:00