Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 1 | ======================================= |
| 2 | Silicon Errata and Software Workarounds |
| 3 | ======================================= |
| 4 | |
| 5 | Author: Will Deacon <will.deacon@arm.com> |
| 6 | |
| 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 | |
| 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 | |
| 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 | |
| 49 | +----------------+-----------------+-----------------+-----------------------------+ |
| 50 | | Implementor | Component | Erratum ID | Kconfig | |
| 51 | +================+=================+=================+=============================+ |
| 52 | | Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 | |
| 53 | +----------------+-----------------+-----------------+-----------------------------+ |
| 54 | +----------------+-----------------+-----------------+-----------------------------+ |
Anshuman Khandual | 607a9af | 2022-01-25 19:50:32 +0530 | [diff] [blame] | 55 | | ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 | |
| 56 | +----------------+-----------------+-----------------+-----------------------------+ |
Anshuman Khandual | 3bd94a8 | 2022-01-25 19:50:33 +0530 | [diff] [blame] | 57 | | ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 | |
| 58 | +----------------+-----------------+-----------------+-----------------------------+ |
Anshuman Khandual | 708e8af | 2022-01-25 19:50:34 +0530 | [diff] [blame] | 59 | | ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 | |
| 60 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 61 | | 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 Herring | 184dbc1 | 2020-04-29 14:19:21 -0500 | [diff] [blame] | 73 | | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 | |
| 74 | +----------------+-----------------+-----------------+-----------------------------+ |
| 75 | | ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 | |
| 76 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 77 | | 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 Zyngier | c2cc62d8 | 2019-01-09 14:36:34 +0000 | [diff] [blame] | 83 | | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 | |
| 84 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 85 | | ARM | Cortex-A72 | #853709 | N/A | |
| 86 | +----------------+-----------------+-----------------+-----------------------------+ |
Marc Zyngier | c2cc62d8 | 2019-01-09 14:36:34 +0000 | [diff] [blame] | 87 | | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 | |
| 88 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 89 | | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 | |
| 90 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 91 | | 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 Herring | 96d389ca | 2020-10-28 13:28:39 -0500 | [diff] [blame] | 99 | | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 | |
| 100 | +----------------+-----------------+-----------------+-----------------------------+ |
James Morse | 297ae1e | 2022-01-25 15:40:40 +0000 | [diff] [blame] | 101 | | ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 | |
| 102 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | b9d216f | 2021-10-19 17:31:40 +0100 | [diff] [blame] | 103 | | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | |
| 104 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | fa82d0b | 2021-10-19 17:31:41 +0100 | [diff] [blame] | 105 | | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 | |
| 106 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | 8d81b2a | 2021-10-19 17:31:42 +0100 | [diff] [blame] | 107 | | ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 | |
| 108 | +----------------+-----------------+-----------------+-----------------------------+ |
Anshuman Khandual | eb30d83 | 2022-01-24 08:45:38 +0530 | [diff] [blame] | 109 | | ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 | |
| 110 | +----------------+-----------------+-----------------+-----------------------------+ |
| 111 | | ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 | |
| 112 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 113 | | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 | |
| 114 | +----------------+-----------------+-----------------+-----------------------------+ |
Linus Torvalds | 39d7530 | 2019-07-12 15:35:14 -0700 | [diff] [blame] | 115 | | ARM | Neoverse-N1 | #1349291 | N/A | |
| 116 | +----------------+-----------------+-----------------+-----------------------------+ |
James Morse | 0546084 | 2019-10-17 18:42:58 +0100 | [diff] [blame] | 117 | | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 | |
| 118 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | b9d216f | 2021-10-19 17:31:40 +0100 | [diff] [blame] | 119 | | ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 | |
| 120 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | fa82d0b | 2021-10-19 17:31:41 +0100 | [diff] [blame] | 121 | | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 | |
| 122 | +----------------+-----------------+-----------------+-----------------------------+ |
Suzuki K Poulose | 8d81b2a | 2021-10-19 17:31:42 +0100 | [diff] [blame] | 123 | | ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 | |
| 124 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 125 | | ARM | MMU-500 | #841119,826419 | N/A | |
| 126 | +----------------+-----------------+-----------------+-----------------------------+ |
| 127 | +----------------+-----------------+-----------------+-----------------------------+ |
Doug Berger | bfc97f9 | 2019-10-31 14:47:23 -0700 | [diff] [blame] | 128 | | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 | |
| 129 | +----------------+-----------------+-----------------+-----------------------------+ |
Florian Fainelli | 1cf45b8 | 2019-10-31 14:47:25 -0700 | [diff] [blame] | 130 | | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 | |
| 131 | +----------------+-----------------+-----------------+-----------------------------+ |
Doug Berger | bfc97f9 | 2019-10-31 14:47:23 -0700 | [diff] [blame] | 132 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 133 | | 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 Zyngier | d01fd16 | 2020-03-11 11:56:49 +0000 | [diff] [blame] | 139 | | Cavium | ThunderX GICv3 | #38539 | N/A | |
| 140 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 141 | | 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 Zyngier | 603afdc | 2019-09-13 10:57:50 +0100 | [diff] [blame] | 151 | | Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 | |
| 152 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 153 | +----------------+-----------------+-----------------+-----------------------------+ |
Hanna Hawa | f2d9848 | 2020-07-15 09:06:47 +0200 | [diff] [blame] | 154 | | Marvell | ARM-MMU-500 | #582743 | N/A | |
| 155 | +----------------+-----------------+-----------------+-----------------------------+ |
| 156 | +----------------+-----------------+-----------------+-----------------------------+ |
Rich Wiley | 20109a8 | 2021-03-23 17:28:09 -0700 | [diff] [blame] | 157 | | NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM | |
| 158 | +----------------+-----------------+-----------------+-----------------------------+ |
| 159 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 160 | | 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 Zyngier | 7f2481b | 2019-07-31 17:29:33 +0100 | [diff] [blame] | 167 | | Hisilicon | Hip0{6,7} | #161010803 | N/A | |
| 168 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 169 | | 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 Andersson | 36c602d | 2019-10-29 16:27:38 -0700 | [diff] [blame] | 176 | | Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 | |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 177 | +----------------+-----------------+-----------------+-----------------------------+ |
| 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 Ranjan | a9e821b | 2020-06-30 23:30:54 +0530 | [diff] [blame] | 182 | | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 | |
| 183 | +----------------+-----------------+-----------------+-----------------------------+ |
| 184 | | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 | |
| 185 | +----------------+-----------------+-----------------+-----------------------------+ |
Sai Prakash Ranjan | 9b23d95 | 2020-06-30 23:30:55 +0530 | [diff] [blame] | 186 | | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 | |
| 187 | +----------------+-----------------+-----------------+-----------------------------+ |
| 188 | | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 | |
| 189 | +----------------+-----------------+-----------------+-----------------------------+ |
Mauro Carvalho Chehab | b693d0b | 2019-06-12 14:52:38 -0300 | [diff] [blame] | 190 | +----------------+-----------------+-----------------+-----------------------------+ |
| 191 | | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 | |
| 192 | +----------------+-----------------+-----------------+-----------------------------+ |