cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

silicon-errata.rst (14872B)


      1=======================================
      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+----------------+-----------------+-----------------+-----------------------------+
     55| ARM            | Cortex-A510     | #2064142        | ARM64_ERRATUM_2064142       |
     56+----------------+-----------------+-----------------+-----------------------------+
     57| ARM            | Cortex-A510     | #2038923        | ARM64_ERRATUM_2038923       |
     58+----------------+-----------------+-----------------+-----------------------------+
     59| ARM            | Cortex-A510     | #1902691        | ARM64_ERRATUM_1902691       |
     60+----------------+-----------------+-----------------+-----------------------------+
     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+----------------+-----------------+-----------------+-----------------------------+
     73| ARM            | Cortex-A55      | #1024718        | ARM64_ERRATUM_1024718       |
     74+----------------+-----------------+-----------------+-----------------------------+
     75| ARM            | Cortex-A55      | #1530923        | ARM64_ERRATUM_1530923       |
     76+----------------+-----------------+-----------------+-----------------------------+
     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+----------------+-----------------+-----------------+-----------------------------+
     83| ARM            | Cortex-A57      | #1319537        | ARM64_ERRATUM_1319367       |
     84+----------------+-----------------+-----------------+-----------------------------+
     85| ARM            | Cortex-A72      | #853709         | N/A                         |
     86+----------------+-----------------+-----------------+-----------------------------+
     87| ARM            | Cortex-A72      | #1319367        | ARM64_ERRATUM_1319367       |
     88+----------------+-----------------+-----------------+-----------------------------+
     89| ARM            | Cortex-A73      | #858921         | ARM64_ERRATUM_858921        |
     90+----------------+-----------------+-----------------+-----------------------------+
     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+----------------+-----------------+-----------------+-----------------------------+
     99| ARM            | Cortex-A77      | #1508412        | ARM64_ERRATUM_1508412       |
    100+----------------+-----------------+-----------------+-----------------------------+
    101| ARM            | Cortex-A510     | #2051678        | ARM64_ERRATUM_2051678       |
    102+----------------+-----------------+-----------------+-----------------------------+
    103| ARM            | Cortex-A510     | #2077057        | ARM64_ERRATUM_2077057       |
    104+----------------+-----------------+-----------------+-----------------------------+
    105| ARM            | Cortex-A710     | #2119858        | ARM64_ERRATUM_2119858       |
    106+----------------+-----------------+-----------------+-----------------------------+
    107| ARM            | Cortex-A710     | #2054223        | ARM64_ERRATUM_2054223       |
    108+----------------+-----------------+-----------------+-----------------------------+
    109| ARM            | Cortex-A710     | #2224489        | ARM64_ERRATUM_2224489       |
    110+----------------+-----------------+-----------------+-----------------------------+
    111| ARM            | Cortex-X2       | #2119858        | ARM64_ERRATUM_2119858       |
    112+----------------+-----------------+-----------------+-----------------------------+
    113| ARM            | Cortex-X2       | #2224489        | ARM64_ERRATUM_2224489       |
    114+----------------+-----------------+-----------------+-----------------------------+
    115| ARM            | Neoverse-N1     | #1188873,1418040| ARM64_ERRATUM_1418040       |
    116+----------------+-----------------+-----------------+-----------------------------+
    117| ARM            | Neoverse-N1     | #1349291        | N/A                         |
    118+----------------+-----------------+-----------------+-----------------------------+
    119| ARM            | Neoverse-N1     | #1542419        | ARM64_ERRATUM_1542419       |
    120+----------------+-----------------+-----------------+-----------------------------+
    121| ARM            | Neoverse-N2     | #2139208        | ARM64_ERRATUM_2139208       |
    122+----------------+-----------------+-----------------+-----------------------------+
    123| ARM            | Neoverse-N2     | #2067961        | ARM64_ERRATUM_2067961       |
    124+----------------+-----------------+-----------------+-----------------------------+
    125| ARM            | Neoverse-N2     | #2253138        | ARM64_ERRATUM_2253138       |
    126+----------------+-----------------+-----------------+-----------------------------+
    127| ARM            | MMU-500         | #841119,826419  | N/A                         |
    128+----------------+-----------------+-----------------+-----------------------------+
    129+----------------+-----------------+-----------------+-----------------------------+
    130| Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_845719        |
    131+----------------+-----------------+-----------------+-----------------------------+
    132| Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_843419        |
    133+----------------+-----------------+-----------------+-----------------------------+
    134+----------------+-----------------+-----------------+-----------------------------+
    135| Cavium         | ThunderX ITS    | #22375,24313    | CAVIUM_ERRATUM_22375        |
    136+----------------+-----------------+-----------------+-----------------------------+
    137| Cavium         | ThunderX ITS    | #23144          | CAVIUM_ERRATUM_23144        |
    138+----------------+-----------------+-----------------+-----------------------------+
    139| Cavium         | ThunderX GICv3  | #23154,38545    | CAVIUM_ERRATUM_23154        |
    140+----------------+-----------------+-----------------+-----------------------------+
    141| Cavium         | ThunderX GICv3  | #38539          | N/A                         |
    142+----------------+-----------------+-----------------+-----------------------------+
    143| Cavium         | ThunderX Core   | #27456          | CAVIUM_ERRATUM_27456        |
    144+----------------+-----------------+-----------------+-----------------------------+
    145| Cavium         | ThunderX Core   | #30115          | CAVIUM_ERRATUM_30115        |
    146+----------------+-----------------+-----------------+-----------------------------+
    147| Cavium         | ThunderX SMMUv2 | #27704          | N/A                         |
    148+----------------+-----------------+-----------------+-----------------------------+
    149| Cavium         | ThunderX2 SMMUv3| #74             | N/A                         |
    150+----------------+-----------------+-----------------+-----------------------------+
    151| Cavium         | ThunderX2 SMMUv3| #126            | N/A                         |
    152+----------------+-----------------+-----------------+-----------------------------+
    153| Cavium         | ThunderX2 Core  | #219            | CAVIUM_TX2_ERRATUM_219      |
    154+----------------+-----------------+-----------------+-----------------------------+
    155+----------------+-----------------+-----------------+-----------------------------+
    156| Marvell        | ARM-MMU-500     | #582743         | N/A                         |
    157+----------------+-----------------+-----------------+-----------------------------+
    158+----------------+-----------------+-----------------+-----------------------------+
    159| NVIDIA         | Carmel Core     | N/A             | NVIDIA_CARMEL_CNP_ERRATUM   |
    160+----------------+-----------------+-----------------+-----------------------------+
    161+----------------+-----------------+-----------------+-----------------------------+
    162| Freescale/NXP  | LS2080A/LS1043A | A-008585        | FSL_ERRATUM_A008585         |
    163+----------------+-----------------+-----------------+-----------------------------+
    164+----------------+-----------------+-----------------+-----------------------------+
    165| Hisilicon      | Hip0{5,6,7}     | #161010101      | HISILICON_ERRATUM_161010101 |
    166+----------------+-----------------+-----------------+-----------------------------+
    167| Hisilicon      | Hip0{6,7}       | #161010701      | N/A                         |
    168+----------------+-----------------+-----------------+-----------------------------+
    169| Hisilicon      | Hip0{6,7}       | #161010803      | N/A                         |
    170+----------------+-----------------+-----------------+-----------------------------+
    171| Hisilicon      | Hip07           | #161600802      | HISILICON_ERRATUM_161600802 |
    172+----------------+-----------------+-----------------+-----------------------------+
    173| Hisilicon      | Hip08 SMMU PMCG | #162001800      | N/A                         |
    174+----------------+-----------------+-----------------+-----------------------------+
    175+----------------+-----------------+-----------------+-----------------------------+
    176| Qualcomm Tech. | Kryo/Falkor v1  | E1003           | QCOM_FALKOR_ERRATUM_1003    |
    177+----------------+-----------------+-----------------+-----------------------------+
    178| Qualcomm Tech. | Kryo/Falkor v1  | E1009           | QCOM_FALKOR_ERRATUM_1009    |
    179+----------------+-----------------+-----------------+-----------------------------+
    180| Qualcomm Tech. | QDF2400 ITS     | E0065           | QCOM_QDF2400_ERRATUM_0065   |
    181+----------------+-----------------+-----------------+-----------------------------+
    182| Qualcomm Tech. | Falkor v{1,2}   | E1041           | QCOM_FALKOR_ERRATUM_1041    |
    183+----------------+-----------------+-----------------+-----------------------------+
    184| Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1463225       |
    185+----------------+-----------------+-----------------+-----------------------------+
    186| Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1418040       |
    187+----------------+-----------------+-----------------+-----------------------------+
    188| Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1530923       |
    189+----------------+-----------------+-----------------+-----------------------------+
    190| Qualcomm Tech. | Kryo4xx Silver  | N/A             | ARM64_ERRATUM_1024718       |
    191+----------------+-----------------+-----------------+-----------------------------+
    192| Qualcomm Tech. | Kryo4xx Gold    | N/A             | ARM64_ERRATUM_1286807       |
    193+----------------+-----------------+-----------------+-----------------------------+
    194
    195+----------------+-----------------+-----------------+-----------------------------+
    196| Fujitsu        | A64FX           | E#010001        | FUJITSU_ERRATUM_010001      |
    197+----------------+-----------------+-----------------+-----------------------------+