^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) Silicon Errata and Software Workarounds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) =======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Author: Will Deacon <will.deacon@arm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Date : 27 November 2015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) It is an unfortunate fact of life that hardware is often produced with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) so-called "errata", which can cause it to deviate from the architecture
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) under specific circumstances. For hardware produced by ARM, these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) errata are broadly classified into the following categories:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ========== ========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) Category A A critical error without a viable workaround.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Category B A significant or critical error with an acceptable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) workaround.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Category C A minor error that is not expected to occur under normal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) operation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ========== ========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) For more information, consult one of the "Software Developers Errata
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) Notice" documents available on infocenter.arm.com (registration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) required).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) As far as Linux is concerned, Category B errata may require some special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) treatment in the operating system. For example, avoiding a particular
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) sequence of code, or configuring the processor in a particular way. A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) less common situation may require similar actions in order to declassify
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) a Category A erratum into a Category C erratum. These are collectively
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) known as "software workarounds" and are only required in the minority of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) cases (e.g. those cases that both require a non-secure workaround *and*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) can be triggered by Linux).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) For software workarounds that may adversely impact systems unaffected by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) the erratum in question, a Kconfig entry is added under "Kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Features" -> "ARM errata workarounds via the alternatives framework".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) These are enabled by default and patched in at runtime when an affected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) CPU is detected. For less-intrusive workarounds, a Kconfig option is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) available and the code is structured (preferably with a comment) in such
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) a way that the erratum will not be hit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) This approach can make it slightly onerous to determine exactly which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) errata are worked around in an arbitrary kernel source tree, so this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) file acts as a registry of software workarounds in the Linux Kernel and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) will be updated when new workarounds are committed and backported to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) stable kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) | Implementor | Component | Erratum ID | Kconfig |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) +================+=================+=================+=============================+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) | Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) | ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) | ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) | ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) | ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) | ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) | ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) | ARM | Cortex-A57 | #852523 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) | ARM | Cortex-A72 | #853709 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) | ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) | ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) | ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) | ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) | ARM | Neoverse-N1 | #1349291 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) | ARM | MMU-500 | #841119,826419 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) | Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) | Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) | Cavium | ThunderX GICv3 | #38539 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) | Cavium | ThunderX SMMUv2 | #27704 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) | Cavium | ThunderX2 SMMUv3| #74 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) | Cavium | ThunderX2 SMMUv3| #126 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) | Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) | Marvell | ARM-MMU-500 | #582743 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) | Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) | Hisilicon | Hip0{6,7} | #161010701 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) | Hisilicon | Hip0{6,7} | #161010803 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) | Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) | Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) | Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) | Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) | Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) | Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) +----------------+-----------------+-----------------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) +----------------+-----------------+-----------------+-----------------------------+