arm-trusted-firmware/include/common
Dimitris Papastamos 7343505d96 sp_min: Implement workaround for CVE-2017-5715
This patch introduces two workarounds for ARMv7 systems.  The
workarounds need to be applied prior to any `branch` instruction in
secure world.  This is achieved using a custom vector table where each
entry is an `add sp, sp, #1` instruction.

On entry to monitor mode, once the sequence of `ADD` instructions is
executed, the branch target buffer (BTB) is invalidated.  The bottom
bits of `SP` are then used to decode the exception entry type.

A side effect of this change is that the exception vectors are
installed before the CPU specific reset function.  This is now
consistent with how it is done on AArch64.

Note, on AArch32 systems, the exception vectors are typically tightly
integrated with the secure payload (e.g. the Trusted OS).  This
workaround will need porting to each secure payload that requires it.

The patch to modify the AArch32 per-cpu vbar to the corresponding
workaround vector table according to the CPU type will be done in a
later patch.

Change-Id: I5786872497d359e496ebe0757e8017fa98f753fa
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
2018-01-18 10:36:18 +00:00
..
aarch32 sp_min: Implement workaround for CVE-2017-5715 2018-01-18 10:36:18 +00:00
aarch64 Workaround for CVE-2017-5715 on Cortex A57 and A72 2018-01-11 10:26:15 +00:00
tbbr Support Trusted OS firmware extra images in TF tools 2017-08-09 18:06:05 +08:00
asm_macros_common.S asm_macros: set the default assembly code alignment to 4 byte 2017-08-31 18:45:19 +09:00
bl_common.h Unify cache flush code path after image load 2017-12-05 16:04:45 +00:00
debug.h Implement log framework 2017-09-11 15:37:24 +01:00
desc_image_load.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
ep_info.h Fully initialise essential control registers 2017-06-21 17:57:54 +01:00
interrupt_props.h GIC: Allow specifying interrupt properties 2017-10-16 16:50:02 +01:00
param_header.h SPM: Introduce Secure Partition Manager 2017-11-08 18:05:14 +00:00
runtime_svc.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00