Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / Documentation / arch / arm64 / silicon-errata.rst
blob77db10e944f039a8920a3e8dd9cfff7757b56f32
1 =======================================
2 Silicon Errata and Software Workarounds
3 =======================================
5 Author: Will Deacon <will.deacon@arm.com>
7 Date  : 27 November 2015
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:
14   ==========  ========================================================
15   Category A  A critical error without a viable workaround.
16   Category B  A significant or critical error with an acceptable
17               workaround.
18   Category C  A minor error that is not expected to occur under normal
19               operation.
20   ==========  ========================================================
22 For more information, consult one of the "Software Developers Errata
23 Notice" documents available on infocenter.arm.com (registration
24 required).
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).
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 With the exception of workarounds for errata deemed "rare" by Arm, these
39 are enabled by default and patched in at runtime when an affected CPU is
40 detected. For less-intrusive workarounds, a Kconfig option is not
41 available and the code is structured (preferably with a comment) in such
42 a way that the erratum will not be hit.
44 This approach can make it slightly onerous to determine exactly which
45 errata are worked around in an arbitrary kernel source tree, so this
46 file acts as a registry of software workarounds in the Linux Kernel and
47 will be updated when new workarounds are committed and backported to
48 stable kernels.
50 +----------------+-----------------+-----------------+-----------------------------+
51 | Implementor    | Component       | Erratum ID      | Kconfig                     |
52 +================+=================+=================+=============================+
53 | Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
54 +----------------+-----------------+-----------------+-----------------------------+
55 +----------------+-----------------+-----------------+-----------------------------+
56 | Ampere         | AmpereOne       | AC03_CPU_38     | AMPERE_ERRATUM_AC03_CPU_38  |
57 +----------------+-----------------+-----------------+-----------------------------+
58 | Ampere         | AmpereOne AC04  | AC04_CPU_10     | AMPERE_ERRATUM_AC03_CPU_38  |
59 +----------------+-----------------+-----------------+-----------------------------+
60 +----------------+-----------------+-----------------+-----------------------------+
61 | ARM            | Cortex-A510     | #2457168        | ARM64_ERRATUM_2457168       |
62 +----------------+-----------------+-----------------+-----------------------------+
63 | ARM            | Cortex-A510     | #2064142        | ARM64_ERRATUM_2064142       |
64 +----------------+-----------------+-----------------+-----------------------------+
65 | ARM            | Cortex-A510     | #2038923        | ARM64_ERRATUM_2038923       |
66 +----------------+-----------------+-----------------+-----------------------------+
67 | ARM            | Cortex-A510     | #1902691        | ARM64_ERRATUM_1902691       |
68 +----------------+-----------------+-----------------+-----------------------------+
69 | ARM            | Cortex-A510     | #2051678        | ARM64_ERRATUM_2051678       |
70 +----------------+-----------------+-----------------+-----------------------------+
71 | ARM            | Cortex-A510     | #2077057        | ARM64_ERRATUM_2077057       |
72 +----------------+-----------------+-----------------+-----------------------------+
73 | ARM            | Cortex-A510     | #2441009        | ARM64_ERRATUM_2441009       |
74 +----------------+-----------------+-----------------+-----------------------------+
75 | ARM            | Cortex-A510     | #2658417        | ARM64_ERRATUM_2658417       |
76 +----------------+-----------------+-----------------+-----------------------------+
77 | ARM            | Cortex-A510     | #3117295        | ARM64_ERRATUM_3117295       |
78 +----------------+-----------------+-----------------+-----------------------------+
79 | ARM            | Cortex-A520     | #2966298        | ARM64_ERRATUM_2966298       |
80 +----------------+-----------------+-----------------+-----------------------------+
81 | ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319        |
82 +----------------+-----------------+-----------------+-----------------------------+
83 | ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319        |
84 +----------------+-----------------+-----------------+-----------------------------+
85 | ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069        |
86 +----------------+-----------------+-----------------+-----------------------------+
87 | ARM            | Cortex-A53      | #819472         | ARM64_ERRATUM_819472        |
88 +----------------+-----------------+-----------------+-----------------------------+
89 | ARM            | Cortex-A53      | #845719         | ARM64_ERRATUM_845719        |
90 +----------------+-----------------+-----------------+-----------------------------+
91 | ARM            | Cortex-A53      | #843419         | ARM64_ERRATUM_843419        |
92 +----------------+-----------------+-----------------+-----------------------------+
93 | ARM            | Cortex-A55      | #1024718        | ARM64_ERRATUM_1024718       |
94 +----------------+-----------------+-----------------+-----------------------------+
95 | ARM            | Cortex-A55      | #1530923        | ARM64_ERRATUM_1530923       |
96 +----------------+-----------------+-----------------+-----------------------------+
97 | ARM            | Cortex-A55      | #2441007        | ARM64_ERRATUM_2441007       |
98 +----------------+-----------------+-----------------+-----------------------------+
99 | ARM            | Cortex-A57      | #832075         | ARM64_ERRATUM_832075        |
100 +----------------+-----------------+-----------------+-----------------------------+
101 | ARM            | Cortex-A57      | #852523         | N/A                         |
102 +----------------+-----------------+-----------------+-----------------------------+
103 | ARM            | Cortex-A57      | #834220         | ARM64_ERRATUM_834220        |
104 +----------------+-----------------+-----------------+-----------------------------+
105 | ARM            | Cortex-A57      | #1319537        | ARM64_ERRATUM_1319367       |
106 +----------------+-----------------+-----------------+-----------------------------+
107 | ARM            | Cortex-A57      | #1742098        | ARM64_ERRATUM_1742098       |
108 +----------------+-----------------+-----------------+-----------------------------+
109 | ARM            | Cortex-A72      | #853709         | N/A                         |
110 +----------------+-----------------+-----------------+-----------------------------+
111 | ARM            | Cortex-A72      | #1319367        | ARM64_ERRATUM_1319367       |
112 +----------------+-----------------+-----------------+-----------------------------+
113 | ARM            | Cortex-A72      | #1655431        | ARM64_ERRATUM_1742098       |
114 +----------------+-----------------+-----------------+-----------------------------+
115 | ARM            | Cortex-A73      | #858921         | ARM64_ERRATUM_858921        |
116 +----------------+-----------------+-----------------+-----------------------------+
117 | ARM            | Cortex-A76      | #1188873,1418040| ARM64_ERRATUM_1418040       |
118 +----------------+-----------------+-----------------+-----------------------------+
119 | ARM            | Cortex-A76      | #1165522        | ARM64_ERRATUM_1165522       |
120 +----------------+-----------------+-----------------+-----------------------------+
121 | ARM            | Cortex-A76      | #1286807        | ARM64_ERRATUM_1286807       |
122 +----------------+-----------------+-----------------+-----------------------------+
123 | ARM            | Cortex-A76      | #1463225        | ARM64_ERRATUM_1463225       |
124 +----------------+-----------------+-----------------+-----------------------------+
125 | ARM            | Cortex-A76      | #1490853        | N/A                         |
126 +----------------+-----------------+-----------------+-----------------------------+
127 | ARM            | Cortex-A76      | #3324349        | ARM64_ERRATUM_3194386       |
128 +----------------+-----------------+-----------------+-----------------------------+
129 | ARM            | Cortex-A77      | #1491015        | N/A                         |
130 +----------------+-----------------+-----------------+-----------------------------+
131 | ARM            | Cortex-A77      | #1508412        | ARM64_ERRATUM_1508412       |
132 +----------------+-----------------+-----------------+-----------------------------+
133 | ARM            | Cortex-A77      | #3324348        | ARM64_ERRATUM_3194386       |
134 +----------------+-----------------+-----------------+-----------------------------+
135 | ARM            | Cortex-A78      | #3324344        | ARM64_ERRATUM_3194386       |
136 +----------------+-----------------+-----------------+-----------------------------+
137 | ARM            | Cortex-A78C     | #3324346,3324347| ARM64_ERRATUM_3194386       |
138 +----------------+-----------------+-----------------+-----------------------------+
139 | ARM            | Cortex-A710     | #2119858        | ARM64_ERRATUM_2119858       |
140 +----------------+-----------------+-----------------+-----------------------------+
141 | ARM            | Cortex-A710     | #2054223        | ARM64_ERRATUM_2054223       |
142 +----------------+-----------------+-----------------+-----------------------------+
143 | ARM            | Cortex-A710     | #2224489        | ARM64_ERRATUM_2224489       |
144 +----------------+-----------------+-----------------+-----------------------------+
145 | ARM            | Cortex-A710     | #3324338        | ARM64_ERRATUM_3194386       |
146 +----------------+-----------------+-----------------+-----------------------------+
147 | ARM            | Cortex-A715     | #2645198        | ARM64_ERRATUM_2645198       |
148 +----------------+-----------------+-----------------+-----------------------------+
149 | ARM            | Cortex-A715     | #3456084        | ARM64_ERRATUM_3194386       |
150 +----------------+-----------------+-----------------+-----------------------------+
151 | ARM            | Cortex-A720     | #3456091        | ARM64_ERRATUM_3194386       |
152 +----------------+-----------------+-----------------+-----------------------------+
153 | ARM            | Cortex-A725     | #3456106        | ARM64_ERRATUM_3194386       |
154 +----------------+-----------------+-----------------+-----------------------------+
155 | ARM            | Cortex-X1       | #1502854        | N/A                         |
156 +----------------+-----------------+-----------------+-----------------------------+
157 | ARM            | Cortex-X1       | #3324344        | ARM64_ERRATUM_3194386       |
158 +----------------+-----------------+-----------------+-----------------------------+
159 | ARM            | Cortex-X1C      | #3324346        | ARM64_ERRATUM_3194386       |
160 +----------------+-----------------+-----------------+-----------------------------+
161 | ARM            | Cortex-X2       | #2119858        | ARM64_ERRATUM_2119858       |
162 +----------------+-----------------+-----------------+-----------------------------+
163 | ARM            | Cortex-X2       | #2224489        | ARM64_ERRATUM_2224489       |
164 +----------------+-----------------+-----------------+-----------------------------+
165 | ARM            | Cortex-X2       | #3324338        | ARM64_ERRATUM_3194386       |
166 +----------------+-----------------+-----------------+-----------------------------+
167 | ARM            | Cortex-X3       | #3324335        | ARM64_ERRATUM_3194386       |
168 +----------------+-----------------+-----------------+-----------------------------+
169 | ARM            | Cortex-X4       | #3194386        | ARM64_ERRATUM_3194386       |
170 +----------------+-----------------+-----------------+-----------------------------+
171 | ARM            | Cortex-X925     | #3324334        | ARM64_ERRATUM_3194386       |
172 +----------------+-----------------+-----------------+-----------------------------+
173 | ARM            | Neoverse-N1     | #1188873,1418040| ARM64_ERRATUM_1418040       |
174 +----------------+-----------------+-----------------+-----------------------------+
175 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
176 +----------------+-----------------+-----------------+-----------------------------+
177 | ARM            | Neoverse-N1     | #1490853        | N/A                         |
178 +----------------+-----------------+-----------------+-----------------------------+
179 | ARM            | Neoverse-N1     | #1542419        | ARM64_ERRATUM_1542419       |
180 +----------------+-----------------+-----------------+-----------------------------+
181 | ARM            | Neoverse-N1     | #3324349        | ARM64_ERRATUM_3194386       |
182 +----------------+-----------------+-----------------+-----------------------------+
183 | ARM            | Neoverse-N2     | #2139208        | ARM64_ERRATUM_2139208       |
184 +----------------+-----------------+-----------------+-----------------------------+
185 | ARM            | Neoverse-N2     | #2067961        | ARM64_ERRATUM_2067961       |
186 +----------------+-----------------+-----------------+-----------------------------+
187 | ARM            | Neoverse-N2     | #2253138        | ARM64_ERRATUM_2253138       |
188 +----------------+-----------------+-----------------+-----------------------------+
189 | ARM            | Neoverse-N2     | #3324339        | ARM64_ERRATUM_3194386       |
190 +----------------+-----------------+-----------------+-----------------------------+
191 | ARM            | Neoverse-N3     | #3456111        | ARM64_ERRATUM_3194386       |
192 +----------------+-----------------+-----------------+-----------------------------+
193 | ARM            | Neoverse-V1     | #1619801        | N/A                         |
194 +----------------+-----------------+-----------------+-----------------------------+
195 | ARM            | Neoverse-V1     | #3324341        | ARM64_ERRATUM_3194386       |
196 +----------------+-----------------+-----------------+-----------------------------+
197 | ARM            | Neoverse-V2     | #3324336        | ARM64_ERRATUM_3194386       |
198 +----------------+-----------------+-----------------+-----------------------------+
199 | ARM            | Neoverse-V3     | #3312417        | ARM64_ERRATUM_3194386       |
200 +----------------+-----------------+-----------------+-----------------------------+
201 | ARM            | MMU-500         | #841119,826419  | N/A                         |
202 +----------------+-----------------+-----------------+-----------------------------+
203 | ARM            | MMU-600         | #1076982,1209401| N/A                         |
204 +----------------+-----------------+-----------------+-----------------------------+
205 | ARM            | MMU-700         | #2268618,2812531| N/A                         |
206 +----------------+-----------------+-----------------+-----------------------------+
207 +----------------+-----------------+-----------------+-----------------------------+
208 | ARM            | GIC-700         | #2941627        | ARM64_ERRATUM_2941627       |
209 +----------------+-----------------+-----------------+-----------------------------+
210 +----------------+-----------------+-----------------+-----------------------------+
211 | Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_845719        |
212 +----------------+-----------------+-----------------+-----------------------------+
213 | Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_843419        |
214 +----------------+-----------------+-----------------+-----------------------------+
215 +----------------+-----------------+-----------------+-----------------------------+
216 | Cavium         | ThunderX ITS    | #22375,24313    | CAVIUM_ERRATUM_22375        |
217 +----------------+-----------------+-----------------+-----------------------------+
218 | Cavium         | ThunderX ITS    | #23144          | CAVIUM_ERRATUM_23144        |
219 +----------------+-----------------+-----------------+-----------------------------+
220 | Cavium         | ThunderX GICv3  | #23154,38545    | CAVIUM_ERRATUM_23154        |
221 +----------------+-----------------+-----------------+-----------------------------+
222 | Cavium         | ThunderX GICv3  | #38539          | N/A                         |
223 +----------------+-----------------+-----------------+-----------------------------+
224 | Cavium         | ThunderX Core   | #27456          | CAVIUM_ERRATUM_27456        |
225 +----------------+-----------------+-----------------+-----------------------------+
226 | Cavium         | ThunderX Core   | #30115          | CAVIUM_ERRATUM_30115        |
227 +----------------+-----------------+-----------------+-----------------------------+
228 | Cavium         | ThunderX SMMUv2 | #27704          | N/A                         |
229 +----------------+-----------------+-----------------+-----------------------------+
230 | Cavium         | ThunderX2 SMMUv3| #74             | N/A                         |
231 +----------------+-----------------+-----------------+-----------------------------+
232 | Cavium         | ThunderX2 SMMUv3| #126            | N/A                         |
233 +----------------+-----------------+-----------------+-----------------------------+
234 | Cavium         | ThunderX2 Core  | #219            | CAVIUM_TX2_ERRATUM_219      |
235 +----------------+-----------------+-----------------+-----------------------------+
236 +----------------+-----------------+-----------------+-----------------------------+
237 | Marvell        | ARM-MMU-500     | #582743         | N/A                         |
238 +----------------+-----------------+-----------------+-----------------------------+
239 +----------------+-----------------+-----------------+-----------------------------+
240 | NVIDIA         | Carmel Core     | N/A             | NVIDIA_CARMEL_CNP_ERRATUM   |
241 +----------------+-----------------+-----------------+-----------------------------+
242 | NVIDIA         | T241 GICv3/4.x  | T241-FABRIC-4   | N/A                         |
243 +----------------+-----------------+-----------------+-----------------------------+
244 +----------------+-----------------+-----------------+-----------------------------+
245 | Freescale/NXP  | LS2080A/LS1043A | A-008585        | FSL_ERRATUM_A008585         |
246 +----------------+-----------------+-----------------+-----------------------------+
247 +----------------+-----------------+-----------------+-----------------------------+
248 | Hisilicon      | Hip0{5,6,7}     | #161010101      | HISILICON_ERRATUM_161010101 |
249 +----------------+-----------------+-----------------+-----------------------------+
250 | Hisilicon      | Hip0{6,7}       | #161010701      | N/A                         |
251 +----------------+-----------------+-----------------+-----------------------------+
252 | Hisilicon      | Hip0{6,7}       | #161010803      | N/A                         |
253 +----------------+-----------------+-----------------+-----------------------------+
254 | Hisilicon      | Hip07           | #161600802      | HISILICON_ERRATUM_161600802 |
255 +----------------+-----------------+-----------------+-----------------------------+
256 | Hisilicon      | Hip08 SMMU PMCG | #162001800      | N/A                         |
257 +----------------+-----------------+-----------------+-----------------------------+
258 | Hisilicon      | Hip{08,09,10,10C| #162001900      | N/A                         |
259 |                | ,11} SMMU PMCG  |                 |                             |
260 +----------------+-----------------+-----------------+-----------------------------+
261 | Hisilicon      | Hip09           | #162100801      | HISILICON_ERRATUM_162100801 |
262 +----------------+-----------------+-----------------+-----------------------------+
263 +----------------+-----------------+-----------------+-----------------------------+
264 | Qualcomm Tech. | Kryo/Falkor v1  | E1003           | QCOM_FALKOR_ERRATUM_1003    |
265 +----------------+-----------------+-----------------+-----------------------------+
266 | Qualcomm Tech. | Kryo/Falkor v1  | E1009           | QCOM_FALKOR_ERRATUM_1009    |
267 +----------------+-----------------+-----------------+-----------------------------+
268 | Qualcomm Tech. | QDF2400 ITS     | E0065           | QCOM_QDF2400_ERRATUM_0065   |
269 +----------------+-----------------+-----------------+-----------------------------+
270 | Qualcomm Tech. | Falkor v{1,2}   | E1041           | QCOM_FALKOR_ERRATUM_1041    |
271 +----------------+-----------------+-----------------+-----------------------------+
272 | Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1463225       |
273 +----------------+-----------------+-----------------+-----------------------------+
274 | Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1418040       |
275 +----------------+-----------------+-----------------+-----------------------------+
276 | Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1530923       |
277 +----------------+-----------------+-----------------+-----------------------------+
278 | Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1024718       |
279 +----------------+-----------------+-----------------+-----------------------------+
280 | Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1286807       |
281 +----------------+-----------------+-----------------+-----------------------------+
282 +----------------+-----------------+-----------------+-----------------------------+
283 | Rockchip       | RK3588          | #3588001        | ROCKCHIP_ERRATUM_3588001    |
284 +----------------+-----------------+-----------------+-----------------------------+
285 +----------------+-----------------+-----------------+-----------------------------+
286 | Fujitsu        | A64FX           | E#010001        | FUJITSU_ERRATUM_010001      |
287 +----------------+-----------------+-----------------+-----------------------------+
288 +----------------+-----------------+-----------------+-----------------------------+
289 | ASR            | ASR8601         | #8601001        | N/A                         |
290 +----------------+-----------------+-----------------+-----------------------------+
291 +----------------+-----------------+-----------------+-----------------------------+
292 | Microsoft      | Azure Cobalt 100| #2139208        | ARM64_ERRATUM_2139208       |
293 +----------------+-----------------+-----------------+-----------------------------+
294 | Microsoft      | Azure Cobalt 100| #2067961        | ARM64_ERRATUM_2067961       |
295 +----------------+-----------------+-----------------+-----------------------------+
296 | Microsoft      | Azure Cobalt 100| #2253138        | ARM64_ERRATUM_2253138       |
297 +----------------+-----------------+-----------------+-----------------------------+
298 | Microsoft      | Azure Cobalt 100| #3324339        | ARM64_ERRATUM_3194386       |
299 +----------------+-----------------+-----------------+-----------------------------+