Upstream fork of ATF with a couple of rk3399 patches to remove HDCP blob and increase BAUD_RATE.
Go to file
Anthony Steinhauser f461fe346b Prevent speculative execution past ERET
Even though ERET always causes a jump to another address, aarch64 CPUs
speculatively execute following instructions as if the ERET
instruction was not a jump instruction.
The speculative execution does not cross privilege-levels (to the jump
target as one would expect), but it continues on the kernel privilege
level as if the ERET instruction did not change the control flow -
thus execution anything that is accidentally linked after the ERET
instruction. Later, the results of this speculative execution are
always architecturally discarded, however they can leak data using
microarchitectural side channels. This speculative execution is very
reliable (seems to be unconditional) and it manages to complete even
relatively performance-heavy operations (e.g. multiple dependent
fetches from uncached memory).

This was fixed in Linux, FreeBSD, OpenBSD and Optee OS:
679db70801
29fb48ace4
3a08873ece
abfd092aa1

It is demonstrated in a SafeSide example:
https://github.com/google/safeside/blob/master/demos/eret_hvc_smc_wrapper.cc
https://github.com/google/safeside/blob/master/kernel_modules/kmod_eret_hvc_smc/eret_hvc_smc_module.c

Signed-off-by: Anthony Steinhauser <asteinhauser@google.com>
Change-Id: Iead39b0b9fb4b8d8b5609daaa8be81497ba63a0f
2020-01-22 21:42:51 +00:00
bl1 Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
bl2 Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
bl2u Reduce space lost to object alignment 2019-12-04 02:59:30 -06:00
bl31 Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
bl32 Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
common FDT helper functions: Fix MISRA issues 2020-01-22 07:52:18 +00:00
docs Merge changes from topic "add-versal-soc-support" into integration 2020-01-22 11:12:07 +00:00
drivers spi: stm32_qspi: Add QSPI support 2020-01-20 11:32:59 +01:00
fdts Merge "Replace dts includes with C preprocessor syntax" into integration 2020-01-21 21:06:16 +00:00
include Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
lib Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
make_helpers Replace dts includes with C preprocessor syntax 2020-01-14 10:30:38 +01:00
plat Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
services Prevent speculative execution past ERET 2020-01-22 21:42:51 +00:00
tools cert_create: Remove some unused header files inclusions 2020-01-14 17:51:23 +01:00
.checkpatch.conf Re-apply GIT_COMMIT_ID check for checkpatch 2019-07-12 11:06:24 +01:00
.editorconfig doc: Final, pre-release fixes and updates 2019-10-22 13:15:02 +00:00
.gitignore meson: Rename platform directory to amlogic 2019-09-05 10:39:25 +01:00
Makefile Merge "Set lld as the default linker for Clang builds" into integration 2020-01-22 07:58:48 +00:00
dco.txt Drop requirement for CLA in contribution.md 2016-09-27 21:52:03 +01:00
license.rst doc: De-duplicate readme and license files 2019-10-08 16:36:15 +00:00
readme.rst doc: Formatting fixes for readme.rst 2019-10-09 15:37:59 +00:00

readme.rst

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> </head>

Trusted Firmware-A

Trusted Firmware-A (TF-A) is a reference implementation of secure world software for Arm A-Profile architectures (Armv8-A and Armv7-A), including an Exception Level 3 (EL3) Secure Monitor. It provides a suitable starting point for productization of secure world boot and runtime firmware, in either the AArch32 or AArch64 execution states.

TF-A implements Arm interface standards, including:

The code is designed to be portable and reusable across hardware platforms and software models that are based on the Armv8-A and Armv7-A architectures.

In collaboration with interested parties, we will continue to enhance TF-A with reference implementations of Arm standards to benefit developers working with Armv7-A and Armv8-A TrustZone technology.

Users are encouraged to do their own security validation, including penetration testing, on any secure world code derived from TF-A.

More Info and Documentation

To find out more about Trusted Firmware-A, please view the full documentation that is available through trustedfirmware.org.


Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.

</html>