blob: 0ec7b7f1524b1263dfc80c8bc21aa698fed4b3de [file] [log] [blame]
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -03001=======================================
2Silicon Errata and Software Workarounds
3=======================================
4
5Author: Will Deacon <will.deacon@arm.com>
6
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
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 ========== ========================================================
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
49+----------------+-----------------+-----------------+-----------------------------+
50| Implementor | Component | Erratum ID | Kconfig |
51+================+=================+=================+=============================+
52| Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
53+----------------+-----------------+-----------------+-----------------------------+
54+----------------+-----------------+-----------------+-----------------------------+
Anshuman Khandual607a9af2022-01-25 19:50:32 +053055| ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 |
56+----------------+-----------------+-----------------+-----------------------------+
Anshuman Khandual3bd94a82022-01-25 19:50:33 +053057| ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 |
58+----------------+-----------------+-----------------+-----------------------------+
Anshuman Khandual708e8af2022-01-25 19:50:34 +053059| ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 |
60+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -030061| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
62+----------------+-----------------+-----------------+-----------------------------+
63| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
64+----------------+-----------------+-----------------+-----------------------------+
65| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
66+----------------+-----------------+-----------------+-----------------------------+
67| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
68+----------------+-----------------+-----------------+-----------------------------+
69| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
70+----------------+-----------------+-----------------+-----------------------------+
71| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
72+----------------+-----------------+-----------------+-----------------------------+
Rob Herring184dbc12020-04-29 14:19:21 -050073| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
74+----------------+-----------------+-----------------+-----------------------------+
75| ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 |
76+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -030077| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
78+----------------+-----------------+-----------------+-----------------------------+
79| ARM | Cortex-A57 | #852523 | N/A |
80+----------------+-----------------+-----------------+-----------------------------+
81| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
82+----------------+-----------------+-----------------+-----------------------------+
Marc Zyngierc2cc62d82019-01-09 14:36:34 +000083| ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 |
84+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -030085| ARM | Cortex-A72 | #853709 | N/A |
86+----------------+-----------------+-----------------+-----------------------------+
Marc Zyngierc2cc62d82019-01-09 14:36:34 +000087| ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 |
88+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -030089| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
90+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -030091| ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
92+----------------+-----------------+-----------------+-----------------------------+
93| ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
94+----------------+-----------------+-----------------+-----------------------------+
95| ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
96+----------------+-----------------+-----------------+-----------------------------+
97| ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
98+----------------+-----------------+-----------------+-----------------------------+
Rob Herring96d389ca2020-10-28 13:28:39 -050099| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
100+----------------+-----------------+-----------------+-----------------------------+
James Morse297ae1e2022-01-25 15:40:40 +0000101| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
102+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Pouloseb9d216f2021-10-19 17:31:40 +0100103| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
104+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Poulosefa82d0b2021-10-19 17:31:41 +0100105| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
106+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Poulose8d81b2a2021-10-19 17:31:42 +0100107| ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 |
108+----------------+-----------------+-----------------+-----------------------------+
Anshuman Khandualeb30d832022-01-24 08:45:38 +0530109| ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 |
110+----------------+-----------------+-----------------+-----------------------------+
111| ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 |
112+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300113| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
114+----------------+-----------------+-----------------+-----------------------------+
Linus Torvalds39d75302019-07-12 15:35:14 -0700115| ARM | Neoverse-N1 | #1349291 | N/A |
116+----------------+-----------------+-----------------+-----------------------------+
James Morse05460842019-10-17 18:42:58 +0100117| ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
118+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Pouloseb9d216f2021-10-19 17:31:40 +0100119| ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 |
120+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Poulosefa82d0b2021-10-19 17:31:41 +0100121| ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
122+----------------+-----------------+-----------------+-----------------------------+
Suzuki K Poulose8d81b2a2021-10-19 17:31:42 +0100123| ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 |
124+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300125| ARM | MMU-500 | #841119,826419 | N/A |
126+----------------+-----------------+-----------------+-----------------------------+
127+----------------+-----------------+-----------------+-----------------------------+
Doug Bergerbfc97f92019-10-31 14:47:23 -0700128| Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 |
129+----------------+-----------------+-----------------+-----------------------------+
Florian Fainelli1cf45b82019-10-31 14:47:25 -0700130| Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 |
131+----------------+-----------------+-----------------+-----------------------------+
Doug Bergerbfc97f92019-10-31 14:47:23 -0700132+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300133| Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
134+----------------+-----------------+-----------------+-----------------------------+
135| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
136+----------------+-----------------+-----------------+-----------------------------+
137| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
138+----------------+-----------------+-----------------+-----------------------------+
Marc Zyngierd01fd162020-03-11 11:56:49 +0000139| Cavium | ThunderX GICv3 | #38539 | N/A |
140+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300141| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
142+----------------+-----------------+-----------------+-----------------------------+
143| Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
144+----------------+-----------------+-----------------+-----------------------------+
145| Cavium | ThunderX SMMUv2 | #27704 | N/A |
146+----------------+-----------------+-----------------+-----------------------------+
147| Cavium | ThunderX2 SMMUv3| #74 | N/A |
148+----------------+-----------------+-----------------+-----------------------------+
149| Cavium | ThunderX2 SMMUv3| #126 | N/A |
150+----------------+-----------------+-----------------+-----------------------------+
Marc Zyngier603afdc2019-09-13 10:57:50 +0100151| Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 |
152+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300153+----------------+-----------------+-----------------+-----------------------------+
Hanna Hawaf2d98482020-07-15 09:06:47 +0200154| Marvell | ARM-MMU-500 | #582743 | N/A |
155+----------------+-----------------+-----------------+-----------------------------+
156+----------------+-----------------+-----------------+-----------------------------+
Rich Wiley20109a82021-03-23 17:28:09 -0700157| NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM |
158+----------------+-----------------+-----------------+-----------------------------+
159+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300160| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
161+----------------+-----------------+-----------------+-----------------------------+
162+----------------+-----------------+-----------------+-----------------------------+
163| Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
164+----------------+-----------------+-----------------+-----------------------------+
165| Hisilicon | Hip0{6,7} | #161010701 | N/A |
166+----------------+-----------------+-----------------+-----------------------------+
Marc Zyngier7f2481b2019-07-31 17:29:33 +0100167| Hisilicon | Hip0{6,7} | #161010803 | N/A |
168+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300169| Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
170+----------------+-----------------+-----------------+-----------------------------+
171| Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
172+----------------+-----------------+-----------------+-----------------------------+
173+----------------+-----------------+-----------------+-----------------------------+
174| Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
175+----------------+-----------------+-----------------+-----------------------------+
Bjorn Andersson36c602d2019-10-29 16:27:38 -0700176| Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300177+----------------+-----------------+-----------------+-----------------------------+
178| Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
179+----------------+-----------------+-----------------+-----------------------------+
180| Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
181+----------------+-----------------+-----------------+-----------------------------+
Sai Prakash Ranjana9e821b2020-06-30 23:30:54 +0530182| Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 |
183+----------------+-----------------+-----------------+-----------------------------+
184| Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 |
185+----------------+-----------------+-----------------+-----------------------------+
Sai Prakash Ranjan9b23d952020-06-30 23:30:55 +0530186| Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 |
187+----------------+-----------------+-----------------+-----------------------------+
188| Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 |
189+----------------+-----------------+-----------------+-----------------------------+
Mauro Carvalho Chehabb693d0b2019-06-12 14:52:38 -0300190+----------------+-----------------+-----------------+-----------------------------+
191| Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
192+----------------+-----------------+-----------------+-----------------------------+