Merge branches 'pm-cpuidle', 'pm-core' and 'pm-sleep'
[linux-block.git] / Documentation / arm64 / silicon-errata.rst
CommitLineData
b693d0b3
MCC
1=======================================
2Silicon Errata and Software Workarounds
3=======================================
9cb9c9e5
WD
4
5Author: Will Deacon <will.deacon@arm.com>
b693d0b3 6
9cb9c9e5
WD
7Date : 27 November 2015
8
9It is an unfortunate fact of life that hardware is often produced with
10so-called "errata", which can cause it to deviate from the architecture
11under specific circumstances. For hardware produced by ARM, these
12errata are broadly classified into the following categories:
13
b693d0b3
MCC
14 ========== ========================================================
15 Category A A critical error without a viable workaround.
16 Category B A significant or critical error with an acceptable
9cb9c9e5 17 workaround.
b693d0b3 18 Category C A minor error that is not expected to occur under normal
9cb9c9e5 19 operation.
b693d0b3 20 ========== ========================================================
9cb9c9e5
WD
21
22For more information, consult one of the "Software Developers Errata
23Notice" documents available on infocenter.arm.com (registration
24required).
25
26As far as Linux is concerned, Category B errata may require some special
27treatment in the operating system. For example, avoiding a particular
28sequence of code, or configuring the processor in a particular way. A
29less common situation may require similar actions in order to declassify
30a Category A erratum into a Category C erratum. These are collectively
31known as "software workarounds" and are only required in the minority of
32cases (e.g. those cases that both require a non-secure workaround *and*
33can be triggered by Linux).
34
35For software workarounds that may adversely impact systems unaffected by
36the erratum in question, a Kconfig entry is added under "Kernel
37Features" -> "ARM errata workarounds via the alternatives framework".
38These are enabled by default and patched in at runtime when an affected
39CPU is detected. For less-intrusive workarounds, a Kconfig option is not
40available and the code is structured (preferably with a comment) in such
41a way that the erratum will not be hit.
42
43This approach can make it slightly onerous to determine exactly which
44errata are worked around in an arbitrary kernel source tree, so this
45file acts as a registry of software workarounds in the Linux Kernel and
46will be updated when new workarounds are committed and backported to
47stable kernels.
48
6e01398f 49+----------------+-----------------+-----------------+-----------------------------+
b693d0b3
MCC
50| Implementor | Component | Erratum ID | Kconfig |
51+================+=================+=================+=============================+
c950ca8c 52| Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
b693d0b3
MCC
53+----------------+-----------------+-----------------+-----------------------------+
54+----------------+-----------------+-----------------+-----------------------------+
e89d120c
IV
55| ARM | Cortex-A510 | #2457168 | ARM64_ERRATUM_2457168 |
56+----------------+-----------------+-----------------+-----------------------------+
607a9afa
AK
57| ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 |
58+----------------+-----------------+-----------------+-----------------------------+
3bd94a87
AK
59| ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 |
60+----------------+-----------------+-----------------+-----------------------------+
708e8af4
AK
61| ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 |
62+----------------+-----------------+-----------------+-----------------------------+
6e01398f 63| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
b693d0b3 64+----------------+-----------------+-----------------+-----------------------------+
6e01398f 65| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
b693d0b3 66+----------------+-----------------+-----------------+-----------------------------+
6e01398f 67| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
b693d0b3 68+----------------+-----------------+-----------------+-----------------------------+
6e01398f 69| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
b693d0b3 70+----------------+-----------------+-----------------+-----------------------------+
6e01398f 71| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
b693d0b3 72+----------------+-----------------+-----------------+-----------------------------+
6e01398f 73| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
b693d0b3 74+----------------+-----------------+-----------------+-----------------------------+
184dbc15
RH
75| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
76+----------------+-----------------+-----------------+-----------------------------+
77| ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 |
78+----------------+-----------------+-----------------+-----------------------------+
171df580
JM
79| ARM | Cortex-A55 | #2441007 | ARM64_ERRATUM_2441007 |
80+----------------+-----------------+-----------------+-----------------------------+
6e01398f 81| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
b693d0b3 82+----------------+-----------------+-----------------+-----------------------------+
6e01398f 83| ARM | Cortex-A57 | #852523 | N/A |
b693d0b3 84+----------------+-----------------+-----------------+-----------------------------+
6e01398f 85| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
b693d0b3 86+----------------+-----------------+-----------------+-----------------------------+
c2cc62d8
MZ
87| ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 |
88+----------------+-----------------+-----------------+-----------------------------+
44b3834b
JM
89| ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 |
90+----------------+-----------------+-----------------+-----------------------------+
6e01398f 91| ARM | Cortex-A72 | #853709 | N/A |
b693d0b3 92+----------------+-----------------+-----------------+-----------------------------+
c2cc62d8
MZ
93| ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 |
94+----------------+-----------------+-----------------+-----------------------------+
44b3834b
JM
95| ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 |
96+----------------+-----------------+-----------------+-----------------------------+
eeb1efbc 97| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
b693d0b3 98+----------------+-----------------+-----------------+-----------------------------+
a5325089 99| ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
b693d0b3 100+----------------+-----------------+-----------------+-----------------------------+
a457b0f7 101| ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
b693d0b3 102+----------------+-----------------+-----------------+-----------------------------+
ce8c80c5 103| ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
b693d0b3 104+----------------+-----------------+-----------------+-----------------------------+
969f5ea6 105| ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
b693d0b3 106+----------------+-----------------+-----------------+-----------------------------+
96d389ca
RH
107| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
108+----------------+-----------------+-----------------+-----------------------------+
297ae1eb
JM
109| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
110+----------------+-----------------+-----------------+-----------------------------+
1dd498e5
JM
111| ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 |
112+----------------+-----------------+-----------------+-----------------------------+
39fdb65f
JM
113| ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 |
114+----------------+-----------------+-----------------+-----------------------------+
1bdb0fbb
JM
115| ARM | Cortex-A510 | #2658417 | ARM64_ERRATUM_2658417 |
116+----------------+-----------------+-----------------+-----------------------------+
b9d216fc
SP
117| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
118+----------------+-----------------+-----------------+-----------------------------+
fa82d0b4
SP
119| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
120+----------------+-----------------+-----------------+-----------------------------+
8d81b2a3
SP
121| ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 |
122+----------------+-----------------+-----------------+-----------------------------+
5db568e7
AK
123| ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
124+----------------+-----------------+-----------------+-----------------------------+
eb30d838
AK
125| ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 |
126+----------------+-----------------+-----------------+-----------------------------+
127| ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 |
128+----------------+-----------------+-----------------+-----------------------------+
a5325089 129| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
b693d0b3 130+----------------+-----------------+-----------------+-----------------------------+
3276cc24 131| ARM | Neoverse-N1 | #1349291 | N/A |
39d7530d 132+----------------+-----------------+-----------------+-----------------------------+
05460849
JM
133| ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
134+----------------+-----------------+-----------------+-----------------------------+
b9d216fc
SP
135| ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 |
136+----------------+-----------------+-----------------+-----------------------------+
fa82d0b4
SP
137| ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
138+----------------+-----------------+-----------------+-----------------------------+
8d81b2a3
SP
139| ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 |
140+----------------+-----------------+-----------------+-----------------------------+
a5325089 141| ARM | MMU-500 | #841119,826419 | N/A |
b693d0b3
MCC
142+----------------+-----------------+-----------------+-----------------------------+
143+----------------+-----------------+-----------------+-----------------------------+
bfc97f9f
DB
144| Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 |
145+----------------+-----------------+-----------------+-----------------------------+
1cf45b8f
FF
146| Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 |
147+----------------+-----------------+-----------------+-----------------------------+
bfc97f9f 148+----------------+-----------------+-----------------+-----------------------------+
a5325089 149| Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
b693d0b3 150+----------------+-----------------+-----------------+-----------------------------+
6e01398f 151| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
b693d0b3 152+----------------+-----------------+-----------------+-----------------------------+
24a147bc 153| Cavium | ThunderX GICv3 | #23154,38545 | CAVIUM_ERRATUM_23154 |
b693d0b3 154+----------------+-----------------+-----------------+-----------------------------+
d01fd161
MZ
155| Cavium | ThunderX GICv3 | #38539 | N/A |
156+----------------+-----------------+-----------------+-----------------------------+
6e01398f 157| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
b693d0b3 158+----------------+-----------------+-----------------+-----------------------------+
690a3415 159| Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
b693d0b3 160+----------------+-----------------+-----------------+-----------------------------+
6e01398f 161| Cavium | ThunderX SMMUv2 | #27704 | N/A |
b693d0b3 162+----------------+-----------------+-----------------+-----------------------------+
e5b829de 163| Cavium | ThunderX2 SMMUv3| #74 | N/A |
b693d0b3 164+----------------+-----------------+-----------------+-----------------------------+
f935448a 165| Cavium | ThunderX2 SMMUv3| #126 | N/A |
b693d0b3 166+----------------+-----------------+-----------------+-----------------------------+
603afdc9
MZ
167| Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 |
168+----------------+-----------------+-----------------+-----------------------------+
b693d0b3 169+----------------+-----------------+-----------------+-----------------------------+
f2d9848a
HH
170| Marvell | ARM-MMU-500 | #582743 | N/A |
171+----------------+-----------------+-----------------+-----------------------------+
172+----------------+-----------------+-----------------+-----------------------------+
20109a85
RW
173| NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM |
174+----------------+-----------------+-----------------+-----------------------------+
175+----------------+-----------------+-----------------+-----------------------------+
6e01398f 176| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
b693d0b3
MCC
177+----------------+-----------------+-----------------+-----------------------------+
178+----------------+-----------------+-----------------+-----------------------------+
6e01398f 179| Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
b693d0b3 180+----------------+-----------------+-----------------+-----------------------------+
99caf177 181| Hisilicon | Hip0{6,7} | #161010701 | N/A |
b693d0b3 182+----------------+-----------------+-----------------+-----------------------------+
7f2481b3
MZ
183| Hisilicon | Hip0{6,7} | #161010803 | N/A |
184+----------------+-----------------+-----------------+-----------------------------+
5c9a882e 185| Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
b693d0b3 186+----------------+-----------------+-----------------+-----------------------------+
24062fe8 187| Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
b693d0b3
MCC
188+----------------+-----------------+-----------------+-----------------------------+
189+----------------+-----------------+-----------------+-----------------------------+
bb487118 190| Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
b693d0b3 191+----------------+-----------------+-----------------+-----------------------------+
36c602dc 192| Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
b693d0b3 193+----------------+-----------------+-----------------+-----------------------------+
90922a2d 194| Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
b693d0b3 195+----------------+-----------------+-----------------+-----------------------------+
932b50c7 196| Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
b693d0b3 197+----------------+-----------------+-----------------+-----------------------------+
a9e821b8
SPR
198| Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 |
199+----------------+-----------------+-----------------+-----------------------------+
200| Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 |
201+----------------+-----------------+-----------------+-----------------------------+
9b23d95c
SPR
202| Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 |
203+----------------+-----------------+-----------------+-----------------------------+
204| Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 |
205+----------------+-----------------+-----------------+-----------------------------+
51f559d6
S
206| Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1286807 |
207+----------------+-----------------+-----------------+-----------------------------+
208
b693d0b3 209+----------------+-----------------+-----------------+-----------------------------+
3e32131a 210| Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
b693d0b3 211+----------------+-----------------+-----------------+-----------------------------+