arm-trusted-firmware/include
Manish V Badarkhe 45aecff003 Implement workaround for AT speculative behaviour
During context switching from higher EL (EL2 or higher)
to lower EL can cause incorrect translation in TLB due to
speculative execution of AT instruction using out-of-context
translation regime.

Workaround is implemented as below during EL's (EL1 or EL2)
"context_restore" operation:
1. Disable page table walk using SCTLR.M and TCR.EPD0 & EPD1
   bits for EL1 or EL2 (stage1 and stage2 disabled)
2. Save all system registers except TCR and SCTLR (for EL1 and EL2)
3. Do memory barrier operation (isb) to ensure all
   system register writes are done.
4. Restore TCR and SCTLR registers (for EL1 and EL2)

Errata details are available for various CPUs as below:
Cortex-A76: 1165522
Cortex-A72: 1319367
Cortex-A57: 1319537
Cortex-A55: 1530923
Cortex-A53: 1530924

More details can be found in mail-chain:
https://lists.trustedfirmware.org/pipermail/tf-a/2020-April/000445.html

Currently, Workaround is implemented as build option which is default
disabled.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: If8545e61f782cb0c2dda7ffbaf50681c825bd2f0
2020-05-14 13:08:54 +00:00
..
arch Implement workaround for AT speculative behaviour 2020-05-14 13:08:54 +00:00
bl1 coverity: fix MISRA violations 2020-02-18 10:47:46 -06:00
bl2 BL2_AT_EL3: Enable pointer authentication support 2019-02-27 11:58:09 +00:00
bl2u Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bl31 Use correct type when reading SCR register 2020-01-28 11:10:48 +00:00
bl32 spd: tlkd: support new TLK SMCs for RPMB service 2020-03-21 19:00:05 -07:00
common fdt/wrappers: Introduce code to find UART DT node 2020-05-05 15:36:51 +01:00
drivers plat/stm32: Use generic fdt_read_uint32_array() implementation 2020-04-28 15:56:31 +01:00
dt-bindings stm32mp1: update device tree files 2019-01-18 15:45:08 +01:00
export TBB: Add an IO abstraction layer to load encrypted firmwares 2020-03-06 16:40:37 +05:30
lib coreboot: Add memory range parsing 2020-04-07 07:35:26 +00:00
plat SPMD: extract SPMC DTB header size from SPMD 2020-05-13 08:08:39 +02:00
services SPMD: code/comments cleanup 2020-05-13 08:08:39 +02:00
tools_share Merge changes from topic "sb/dualroot" into integration 2020-03-10 13:47:47 +00:00