Merge tag 'nfsd-5.4' of git://linux-nfs.org/~bfields/linux
[linux-2.6-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+----------------+-----------------+-----------------+-----------------------------+
6e01398f 55| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
b693d0b3 56+----------------+-----------------+-----------------+-----------------------------+
6e01398f 57| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
b693d0b3 58+----------------+-----------------+-----------------+-----------------------------+
6e01398f 59| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
b693d0b3 60+----------------+-----------------+-----------------+-----------------------------+
6e01398f 61| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
b693d0b3 62+----------------+-----------------+-----------------+-----------------------------+
6e01398f 63| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
b693d0b3 64+----------------+-----------------+-----------------+-----------------------------+
6e01398f 65| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
b693d0b3 66+----------------+-----------------+-----------------+-----------------------------+
6e01398f 67| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
b693d0b3 68+----------------+-----------------+-----------------+-----------------------------+
6e01398f 69| ARM | Cortex-A57 | #852523 | N/A |
b693d0b3 70+----------------+-----------------+-----------------+-----------------------------+
6e01398f 71| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
b693d0b3 72+----------------+-----------------+-----------------+-----------------------------+
6e01398f 73| ARM | Cortex-A72 | #853709 | N/A |
b693d0b3 74+----------------+-----------------+-----------------+-----------------------------+
eeb1efbc 75| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
b693d0b3 76+----------------+-----------------+-----------------+-----------------------------+
ece1397c 77| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
b693d0b3 78+----------------+-----------------+-----------------+-----------------------------+
a5325089 79| ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
b693d0b3 80+----------------+-----------------+-----------------+-----------------------------+
a457b0f7 81| ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
b693d0b3 82+----------------+-----------------+-----------------+-----------------------------+
ce8c80c5 83| ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
b693d0b3 84+----------------+-----------------+-----------------+-----------------------------+
969f5ea6 85| ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
b693d0b3 86+----------------+-----------------+-----------------+-----------------------------+
a5325089 87| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
b693d0b3 88+----------------+-----------------+-----------------+-----------------------------+
3276cc24 89| ARM | Neoverse-N1 | #1349291 | N/A |
39d7530d 90+----------------+-----------------+-----------------+-----------------------------+
a5325089 91| ARM | MMU-500 | #841119,826419 | N/A |
b693d0b3
MCC
92+----------------+-----------------+-----------------+-----------------------------+
93+----------------+-----------------+-----------------+-----------------------------+
a5325089 94| Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
b693d0b3 95+----------------+-----------------+-----------------+-----------------------------+
6e01398f 96| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
b693d0b3 97+----------------+-----------------+-----------------+-----------------------------+
6e01398f 98| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
b693d0b3 99+----------------+-----------------+-----------------+-----------------------------+
6e01398f 100| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
b693d0b3 101+----------------+-----------------+-----------------+-----------------------------+
690a3415 102| Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
b693d0b3 103+----------------+-----------------+-----------------+-----------------------------+
6e01398f 104| Cavium | ThunderX SMMUv2 | #27704 | N/A |
b693d0b3 105+----------------+-----------------+-----------------+-----------------------------+
e5b829de 106| Cavium | ThunderX2 SMMUv3| #74 | N/A |
b693d0b3 107+----------------+-----------------+-----------------+-----------------------------+
f935448a 108| Cavium | ThunderX2 SMMUv3| #126 | N/A |
b693d0b3
MCC
109+----------------+-----------------+-----------------+-----------------------------+
110+----------------+-----------------+-----------------+-----------------------------+
6e01398f 111| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
b693d0b3
MCC
112+----------------+-----------------+-----------------+-----------------------------+
113+----------------+-----------------+-----------------+-----------------------------+
6e01398f 114| Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
b693d0b3 115+----------------+-----------------+-----------------+-----------------------------+
99caf177 116| Hisilicon | Hip0{6,7} | #161010701 | N/A |
b693d0b3 117+----------------+-----------------+-----------------+-----------------------------+
7f2481b3
MZ
118| Hisilicon | Hip0{6,7} | #161010803 | N/A |
119+----------------+-----------------+-----------------+-----------------------------+
5c9a882e 120| Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
b693d0b3 121+----------------+-----------------+-----------------+-----------------------------+
24062fe8 122| Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
b693d0b3
MCC
123+----------------+-----------------+-----------------+-----------------------------+
124+----------------+-----------------+-----------------+-----------------------------+
bb487118 125| Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
b693d0b3 126+----------------+-----------------+-----------------+-----------------------------+
6e01398f 127| Qualcomm Tech. | Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
b693d0b3 128+----------------+-----------------+-----------------+-----------------------------+
90922a2d 129| Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
b693d0b3 130+----------------+-----------------+-----------------+-----------------------------+
932b50c7 131| Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
b693d0b3
MCC
132+----------------+-----------------+-----------------+-----------------------------+
133+----------------+-----------------+-----------------+-----------------------------+
3e32131a 134| Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
b693d0b3 135+----------------+-----------------+-----------------+-----------------------------+