Commit | Line | Data |
---|---|---|
b693d0b3 MCC |
1 | ======================================= |
2 | Silicon Errata and Software Workarounds | |
3 | ======================================= | |
9cb9c9e5 WD |
4 | |
5 | Author: Will Deacon <will.deacon@arm.com> | |
b693d0b3 | 6 | |
9cb9c9e5 WD |
7 | Date : 27 November 2015 |
8 | ||
9 | It is an unfortunate fact of life that hardware is often produced with | |
10 | so-called "errata", which can cause it to deviate from the architecture | |
11 | under specific circumstances. For hardware produced by ARM, these | |
12 | errata 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 | |
22 | For more information, consult one of the "Software Developers Errata | |
23 | Notice" documents available on infocenter.arm.com (registration | |
24 | required). | |
25 | ||
26 | As far as Linux is concerned, Category B errata may require some special | |
27 | treatment in the operating system. For example, avoiding a particular | |
28 | sequence of code, or configuring the processor in a particular way. A | |
29 | less common situation may require similar actions in order to declassify | |
30 | a Category A erratum into a Category C erratum. These are collectively | |
31 | known as "software workarounds" and are only required in the minority of | |
32 | cases (e.g. those cases that both require a non-secure workaround *and* | |
33 | can be triggered by Linux). | |
34 | ||
35 | For software workarounds that may adversely impact systems unaffected by | |
36 | the erratum in question, a Kconfig entry is added under "Kernel | |
37 | Features" -> "ARM errata workarounds via the alternatives framework". | |
38 | These are enabled by default and patched in at runtime when an affected | |
39 | CPU is detected. For less-intrusive workarounds, a Kconfig option is not | |
40 | available and the code is structured (preferably with a comment) in such | |
41 | a way that the erratum will not be hit. | |
42 | ||
43 | This approach can make it slightly onerous to determine exactly which | |
44 | errata are worked around in an arbitrary kernel source tree, so this | |
45 | file acts as a registry of software workarounds in the Linux Kernel and | |
46 | will be updated when new workarounds are committed and backported to | |
47 | stable 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 | +----------------+-----------------+-----------------+-----------------------------+ | |
6df696cd OU |
55 | | Ampere | AmpereOne | AC03_CPU_38 | AMPERE_ERRATUM_AC03_CPU_38 | |
56 | +----------------+-----------------+-----------------+-----------------------------+ | |
57 | +----------------+-----------------+-----------------+-----------------------------+ | |
e89d120c IV |
58 | | ARM | Cortex-A510 | #2457168 | ARM64_ERRATUM_2457168 | |
59 | +----------------+-----------------+-----------------+-----------------------------+ | |
607a9afa AK |
60 | | ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 | |
61 | +----------------+-----------------+-----------------+-----------------------------+ | |
3bd94a87 AK |
62 | | ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 | |
63 | +----------------+-----------------+-----------------+-----------------------------+ | |
708e8af4 AK |
64 | | ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 | |
65 | +----------------+-----------------+-----------------+-----------------------------+ | |
cce8365f RH |
66 | | ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 | |
67 | +----------------+-----------------+-----------------+-----------------------------+ | |
68 | | ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 | | |
69 | +----------------+-----------------+-----------------+-----------------------------+ | |
70 | | ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 | | |
71 | +----------------+-----------------+-----------------+-----------------------------+ | |
72 | | ARM | Cortex-A510 | #2658417 | ARM64_ERRATUM_2658417 | | |
73 | +----------------+-----------------+-----------------+-----------------------------+ | |
f827bcda RH |
74 | | ARM | Cortex-A510 | #3117295 | ARM64_ERRATUM_3117295 | |
75 | +----------------+-----------------+-----------------+-----------------------------+ | |
471470bc RH |
76 | | ARM | Cortex-A520 | #2966298 | ARM64_ERRATUM_2966298 | |
77 | +----------------+-----------------+-----------------+-----------------------------+ | |
6e01398f | 78 | | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 | |
b693d0b3 | 79 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 80 | | ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 | |
b693d0b3 | 81 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 82 | | ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 | |
b693d0b3 | 83 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 84 | | ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 | |
b693d0b3 | 85 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 86 | | ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 | |
b693d0b3 | 87 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 88 | | ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 | |
b693d0b3 | 89 | +----------------+-----------------+-----------------+-----------------------------+ |
184dbc15 RH |
90 | | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 | |
91 | +----------------+-----------------+-----------------+-----------------------------+ | |
92 | | ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 | | |
93 | +----------------+-----------------+-----------------+-----------------------------+ | |
171df580 JM |
94 | | ARM | Cortex-A55 | #2441007 | ARM64_ERRATUM_2441007 | |
95 | +----------------+-----------------+-----------------+-----------------------------+ | |
6e01398f | 96 | | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | |
b693d0b3 | 97 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 98 | | ARM | Cortex-A57 | #852523 | N/A | |
b693d0b3 | 99 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 100 | | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | |
b693d0b3 | 101 | +----------------+-----------------+-----------------+-----------------------------+ |
c2cc62d8 MZ |
102 | | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 | |
103 | +----------------+-----------------+-----------------+-----------------------------+ | |
44b3834b JM |
104 | | ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 | |
105 | +----------------+-----------------+-----------------+-----------------------------+ | |
6e01398f | 106 | | ARM | Cortex-A72 | #853709 | N/A | |
b693d0b3 | 107 | +----------------+-----------------+-----------------+-----------------------------+ |
c2cc62d8 MZ |
108 | | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 | |
109 | +----------------+-----------------+-----------------+-----------------------------+ | |
44b3834b JM |
110 | | ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 | |
111 | +----------------+-----------------+-----------------+-----------------------------+ | |
eeb1efbc | 112 | | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 | |
b693d0b3 | 113 | +----------------+-----------------+-----------------+-----------------------------+ |
a5325089 | 114 | | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 | |
b693d0b3 | 115 | +----------------+-----------------+-----------------+-----------------------------+ |
a457b0f7 | 116 | | ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 | |
b693d0b3 | 117 | +----------------+-----------------+-----------------+-----------------------------+ |
ce8c80c5 | 118 | | ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 | |
b693d0b3 | 119 | +----------------+-----------------+-----------------+-----------------------------+ |
969f5ea6 | 120 | | ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 | |
b693d0b3 | 121 | +----------------+-----------------+-----------------+-----------------------------+ |
4aff040b AK |
122 | | ARM | Cortex-A76 | #1490853 | N/A | |
123 | +----------------+-----------------+-----------------+-----------------------------+ | |
124 | | ARM | Cortex-A77 | #1491015 | N/A | | |
125 | +----------------+-----------------+-----------------+-----------------------------+ | |
96d389ca RH |
126 | | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 | |
127 | +----------------+-----------------+-----------------+-----------------------------+ | |
b9d216fc SP |
128 | | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | |
129 | +----------------+-----------------+-----------------+-----------------------------+ | |
fa82d0b4 SP |
130 | | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 | |
131 | +----------------+-----------------+-----------------+-----------------------------+ | |
8d81b2a3 SP |
132 | | ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 | |
133 | +----------------+-----------------+-----------------+-----------------------------+ | |
5db568e7 AK |
134 | | ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 | |
135 | +----------------+-----------------+-----------------+-----------------------------+ | |
4aff040b AK |
136 | | ARM | Cortex-X1 | #1502854 | N/A | |
137 | +----------------+-----------------+-----------------+-----------------------------+ | |
eb30d838 AK |
138 | | ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 | |
139 | +----------------+-----------------+-----------------+-----------------------------+ | |
140 | | ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 | | |
141 | +----------------+-----------------+-----------------+-----------------------------+ | |
a5325089 | 142 | | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 | |
b693d0b3 | 143 | +----------------+-----------------+-----------------+-----------------------------+ |
3276cc24 | 144 | | ARM | Neoverse-N1 | #1349291 | N/A | |
39d7530d | 145 | +----------------+-----------------+-----------------+-----------------------------+ |
4aff040b AK |
146 | | ARM | Neoverse-N1 | #1490853 | N/A | |
147 | +----------------+-----------------+-----------------+-----------------------------+ | |
05460849 JM |
148 | | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 | |
149 | +----------------+-----------------+-----------------+-----------------------------+ | |
b9d216fc SP |
150 | | ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 | |
151 | +----------------+-----------------+-----------------+-----------------------------+ | |
fa82d0b4 SP |
152 | | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 | |
153 | +----------------+-----------------+-----------------+-----------------------------+ | |
8d81b2a3 SP |
154 | | ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 | |
155 | +----------------+-----------------+-----------------+-----------------------------+ | |
4aff040b AK |
156 | | ARM | Neoverse-V1 | #1619801 | N/A | |
157 | +----------------+-----------------+-----------------+-----------------------------+ | |
a5325089 | 158 | | ARM | MMU-500 | #841119,826419 | N/A | |
b693d0b3 | 159 | +----------------+-----------------+-----------------+-----------------------------+ |
0bfbfc52 | 160 | | ARM | MMU-600 | #1076982,1209401| N/A | |
f322e8af | 161 | +----------------+-----------------+-----------------+-----------------------------+ |
0bfbfc52 | 162 | | ARM | MMU-700 | #2268618,2812531| N/A | |
309a15cb | 163 | +----------------+-----------------+-----------------+-----------------------------+ |
b693d0b3 | 164 | +----------------+-----------------+-----------------+-----------------------------+ |
6fe5c68e LP |
165 | | ARM | GIC-700 | #2941627 | ARM64_ERRATUM_2941627 | |
166 | +----------------+-----------------+-----------------+-----------------------------+ | |
167 | +----------------+-----------------+-----------------+-----------------------------+ | |
bfc97f9f DB |
168 | | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 | |
169 | +----------------+-----------------+-----------------+-----------------------------+ | |
1cf45b8f FF |
170 | | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 | |
171 | +----------------+-----------------+-----------------+-----------------------------+ | |
bfc97f9f | 172 | +----------------+-----------------+-----------------+-----------------------------+ |
a5325089 | 173 | | Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 | |
b693d0b3 | 174 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 175 | | Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 | |
b693d0b3 | 176 | +----------------+-----------------+-----------------+-----------------------------+ |
24a147bc | 177 | | Cavium | ThunderX GICv3 | #23154,38545 | CAVIUM_ERRATUM_23154 | |
b693d0b3 | 178 | +----------------+-----------------+-----------------+-----------------------------+ |
d01fd161 MZ |
179 | | Cavium | ThunderX GICv3 | #38539 | N/A | |
180 | +----------------+-----------------+-----------------+-----------------------------+ | |
6e01398f | 181 | | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 | |
b693d0b3 | 182 | +----------------+-----------------+-----------------+-----------------------------+ |
690a3415 | 183 | | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 | |
b693d0b3 | 184 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 185 | | Cavium | ThunderX SMMUv2 | #27704 | N/A | |
b693d0b3 | 186 | +----------------+-----------------+-----------------+-----------------------------+ |
e5b829de | 187 | | Cavium | ThunderX2 SMMUv3| #74 | N/A | |
b693d0b3 | 188 | +----------------+-----------------+-----------------+-----------------------------+ |
f935448a | 189 | | Cavium | ThunderX2 SMMUv3| #126 | N/A | |
b693d0b3 | 190 | +----------------+-----------------+-----------------+-----------------------------+ |
603afdc9 MZ |
191 | | Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 | |
192 | +----------------+-----------------+-----------------+-----------------------------+ | |
b693d0b3 | 193 | +----------------+-----------------+-----------------+-----------------------------+ |
f2d9848a HH |
194 | | Marvell | ARM-MMU-500 | #582743 | N/A | |
195 | +----------------+-----------------+-----------------+-----------------------------+ | |
196 | +----------------+-----------------+-----------------+-----------------------------+ | |
20109a85 RW |
197 | | NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM | |
198 | +----------------+-----------------+-----------------+-----------------------------+ | |
35727af2 SD |
199 | | NVIDIA | T241 GICv3/4.x | T241-FABRIC-4 | N/A | |
200 | +----------------+-----------------+-----------------+-----------------------------+ | |
20109a85 | 201 | +----------------+-----------------+-----------------+-----------------------------+ |
6e01398f | 202 | | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 | |
b693d0b3 MCC |
203 | +----------------+-----------------+-----------------+-----------------------------+ |
204 | +----------------+-----------------+-----------------+-----------------------------+ | |
6e01398f | 205 | | Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 | |
b693d0b3 | 206 | +----------------+-----------------+-----------------+-----------------------------+ |
99caf177 | 207 | | Hisilicon | Hip0{6,7} | #161010701 | N/A | |
b693d0b3 | 208 | +----------------+-----------------+-----------------+-----------------------------+ |
7f2481b3 MZ |
209 | | Hisilicon | Hip0{6,7} | #161010803 | N/A | |
210 | +----------------+-----------------+-----------------+-----------------------------+ | |
5c9a882e | 211 | | Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 | |
b693d0b3 | 212 | +----------------+-----------------+-----------------+-----------------------------+ |
24062fe8 | 213 | | Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A | |
b693d0b3 | 214 | +----------------+-----------------+-----------------+-----------------------------+ |
0242737d YY |
215 | | Hisilicon | Hip08 SMMU PMCG | #162001900 | N/A | |
216 | | | Hip09 SMMU PMCG | | | | |
217 | +----------------+-----------------+-----------------+-----------------------------+ | |
b693d0b3 | 218 | +----------------+-----------------+-----------------+-----------------------------+ |
bb487118 | 219 | | Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 | |
b693d0b3 | 220 | +----------------+-----------------+-----------------+-----------------------------+ |
36c602dc | 221 | | Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 | |
b693d0b3 | 222 | +----------------+-----------------+-----------------+-----------------------------+ |
90922a2d | 223 | | Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 | |
b693d0b3 | 224 | +----------------+-----------------+-----------------+-----------------------------+ |
932b50c7 | 225 | | Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 | |
b693d0b3 | 226 | +----------------+-----------------+-----------------+-----------------------------+ |
a9e821b8 SPR |
227 | | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 | |
228 | +----------------+-----------------+-----------------+-----------------------------+ | |
229 | | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 | | |
230 | +----------------+-----------------+-----------------+-----------------------------+ | |
9b23d95c SPR |
231 | | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 | |
232 | +----------------+-----------------+-----------------+-----------------------------+ | |
233 | | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 | | |
234 | +----------------+-----------------+-----------------+-----------------------------+ | |
51f559d6 S |
235 | | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1286807 | |
236 | +----------------+-----------------+-----------------+-----------------------------+ | |
a8707f55 SR |
237 | +----------------+-----------------+-----------------+-----------------------------+ |
238 | | Rockchip | RK3588 | #3588001 | ROCKCHIP_ERRATUM_3588001 | | |
239 | +----------------+-----------------+-----------------+-----------------------------+ | |
b693d0b3 | 240 | +----------------+-----------------+-----------------+-----------------------------+ |
3e32131a | 241 | | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 | |
b693d0b3 | 242 | +----------------+-----------------+-----------------+-----------------------------+ |
b4d81fab | 243 | +----------------+-----------------+-----------------+-----------------------------+ |
244 | | ASR | ASR8601 | #8601001 | N/A | | |
245 | +----------------+-----------------+-----------------+-----------------------------+ | |
fb091ff3 EH |
246 | +----------------+-----------------+-----------------+-----------------------------+ |
247 | | Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 | | |
248 | +----------------+-----------------+-----------------+-----------------------------+ | |
249 | | Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 | | |
250 | +----------------+-----------------+-----------------+-----------------------------+ | |
251 | | Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | | |
252 | +----------------+-----------------+-----------------+-----------------------------+ |