Skip to content

Commit 603afdc

Browse files
Marc Zyngierwilldeacon
authored andcommitted
arm64: Allow CAVIUM_TX2_ERRATUM_219 to be selected
Allow the user to select the workaround for TX2-219, and update the silicon-errata.rst file to reflect this. Cc: <[email protected]> Signed-off-by: Marc Zyngier <[email protected]> Signed-off-by: Will Deacon <[email protected]>
1 parent 9405447 commit 603afdc

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Documentation/arm64/silicon-errata.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ stable kernels.
107107
+----------------+-----------------+-----------------+-----------------------------+
108108
| Cavium | ThunderX2 SMMUv3| #126 | N/A |
109109
+----------------+-----------------+-----------------+-----------------------------+
110+
| Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 |
111+
+----------------+-----------------+-----------------+-----------------------------+
110112
+----------------+-----------------+-----------------+-----------------------------+
111113
| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
112114
+----------------+-----------------+-----------------+-----------------------------+

arch/arm64/Kconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,23 @@ config CAVIUM_ERRATUM_30115
617617

618618
If unsure, say Y.
619619

620+
config CAVIUM_TX2_ERRATUM_219
621+
bool "Cavium ThunderX2 erratum 219: PRFM between TTBR change and ISB fails"
622+
default y
623+
help
624+
On Cavium ThunderX2, a load, store or prefetch instruction between a
625+
TTBR update and the corresponding context synchronizing operation can
626+
cause a spurious Data Abort to be delivered to any hardware thread in
627+
the CPU core.
628+
629+
Work around the issue by avoiding the problematic code sequence and
630+
trapping KVM guest TTBRx_EL1 writes to EL2 when SMT is enabled. The
631+
trap handler performs the corresponding register access, skips the
632+
instruction and ensures context synchronization by virtue of the
633+
exception return.
634+
635+
If unsure, say Y.
636+
620637
config QCOM_FALKOR_ERRATUM_1003
621638
bool "Falkor E1003: Incorrect translation due to ASID change"
622639
default y

0 commit comments

Comments
 (0)