1*91f16700SchasingluluArm CPU Specific Build Macros 2*91f16700Schasinglulu============================= 3*91f16700Schasinglulu 4*91f16700SchasingluluThis document describes the various build options present in the CPU specific 5*91f16700Schasingluluoperations framework to enable errata workarounds and to enable optimizations 6*91f16700Schasinglulufor a specific CPU on a platform. 7*91f16700Schasinglulu 8*91f16700SchasingluluSecurity Vulnerability Workarounds 9*91f16700Schasinglulu---------------------------------- 10*91f16700Schasinglulu 11*91f16700SchasingluluTF-A exports a series of build flags which control which security 12*91f16700Schasingluluvulnerability workarounds should be applied at runtime. 13*91f16700Schasinglulu 14*91f16700Schasinglulu- ``WORKAROUND_CVE_2017_5715``: Enables the security workaround for 15*91f16700Schasinglulu `CVE-2017-5715`_. This flag can be set to 0 by the platform if none 16*91f16700Schasinglulu of the PEs in the system need the workaround. Setting this flag to 0 provides 17*91f16700Schasinglulu no performance benefit for non-affected platforms, it just helps to comply 18*91f16700Schasinglulu with the recommendation in the spec regarding workaround discovery. 19*91f16700Schasinglulu Defaults to 1. 20*91f16700Schasinglulu 21*91f16700Schasinglulu- ``WORKAROUND_CVE_2018_3639``: Enables the security workaround for 22*91f16700Schasinglulu `CVE-2018-3639`_. Defaults to 1. The TF-A project recommends to keep 23*91f16700Schasinglulu the default value of 1 even on platforms that are unaffected by 24*91f16700Schasinglulu CVE-2018-3639, in order to comply with the recommendation in the spec 25*91f16700Schasinglulu regarding workaround discovery. 26*91f16700Schasinglulu 27*91f16700Schasinglulu- ``DYNAMIC_WORKAROUND_CVE_2018_3639``: Enables dynamic mitigation for 28*91f16700Schasinglulu `CVE-2018-3639`_. This build option should be set to 1 if the target 29*91f16700Schasinglulu platform contains at least 1 CPU that requires dynamic mitigation. 30*91f16700Schasinglulu Defaults to 0. 31*91f16700Schasinglulu 32*91f16700Schasinglulu- ``WORKAROUND_CVE_2022_23960``: Enables mitigation for `CVE-2022-23960`_. 33*91f16700Schasinglulu This build option should be set to 1 if the target platform contains at 34*91f16700Schasinglulu least 1 CPU that requires this mitigation. Defaults to 1. 35*91f16700Schasinglulu 36*91f16700Schasinglulu.. _arm_cpu_macros_errata_workarounds: 37*91f16700Schasinglulu 38*91f16700SchasingluluCPU Errata Workarounds 39*91f16700Schasinglulu---------------------- 40*91f16700Schasinglulu 41*91f16700SchasingluluTF-A exports a series of build flags which control the errata workarounds that 42*91f16700Schasingluluare applied to each CPU by the reset handler. The errata details can be found 43*91f16700Schasingluluin the CPU specific errata documents published by Arm: 44*91f16700Schasinglulu 45*91f16700Schasinglulu- `Cortex-A53 MPCore Software Developers Errata Notice`_ 46*91f16700Schasinglulu- `Cortex-A57 MPCore Software Developers Errata Notice`_ 47*91f16700Schasinglulu- `Cortex-A72 MPCore Software Developers Errata Notice`_ 48*91f16700Schasinglulu 49*91f16700SchasingluluThe errata workarounds are implemented for a particular revision or a set of 50*91f16700Schasingluluprocessor revisions. This is checked by the reset handler at runtime. Each 51*91f16700Schasingluluerrata workaround is identified by its ``ID`` as specified in the processor's 52*91f16700Schasingluluerrata notice document. The format of the define used to enable/disable the 53*91f16700Schasingluluerrata workaround is ``ERRATA_<Processor name>_<ID>``, where the ``Processor name`` 54*91f16700Schasingluluis for example ``A57`` for the ``Cortex_A57`` CPU. 55*91f16700Schasinglulu 56*91f16700SchasingluluRefer to :ref:`firmware_design_cpu_errata_implementation` for information on how to 57*91f16700Schasingluluwrite errata workaround functions. 58*91f16700Schasinglulu 59*91f16700SchasingluluAll workarounds are disabled by default. The platform is responsible for 60*91f16700Schasingluluenabling these workarounds according to its requirement by defining the 61*91f16700Schasingluluerrata workaround build flags in the platform specific makefile. In case 62*91f16700Schasingluluthese workarounds are enabled for the wrong CPU revision then the errata 63*91f16700Schasingluluworkaround is not applied. In the DEBUG build, this is indicated by 64*91f16700Schasingluluprinting a warning to the crash console. 65*91f16700Schasinglulu 66*91f16700SchasingluluIn the current implementation, a platform which has more than 1 variant 67*91f16700Schasingluluwith different revisions of a processor has no runtime mechanism available 68*91f16700Schasinglulufor it to specify which errata workarounds should be enabled or not. 69*91f16700Schasinglulu 70*91f16700SchasingluluThe value of the build flags is 0 by default, that is, disabled. A value of 1 71*91f16700Schasingluluwill enable it. 72*91f16700Schasinglulu 73*91f16700SchasingluluFor Cortex-A9, the following errata build flags are defined : 74*91f16700Schasinglulu 75*91f16700Schasinglulu- ``ERRATA_A9_794073``: This applies errata 794073 workaround to Cortex-A9 76*91f16700Schasinglulu CPU. This needs to be enabled for all revisions of the CPU. 77*91f16700Schasinglulu 78*91f16700SchasingluluFor Cortex-A15, the following errata build flags are defined : 79*91f16700Schasinglulu 80*91f16700Schasinglulu- ``ERRATA_A15_816470``: This applies errata 816470 workaround to Cortex-A15 81*91f16700Schasinglulu CPU. This needs to be enabled only for revision >= r3p0 of the CPU. 82*91f16700Schasinglulu 83*91f16700Schasinglulu- ``ERRATA_A15_827671``: This applies errata 827671 workaround to Cortex-A15 84*91f16700Schasinglulu CPU. This needs to be enabled only for revision >= r3p0 of the CPU. 85*91f16700Schasinglulu 86*91f16700SchasingluluFor Cortex-A17, the following errata build flags are defined : 87*91f16700Schasinglulu 88*91f16700Schasinglulu- ``ERRATA_A17_852421``: This applies errata 852421 workaround to Cortex-A17 89*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p2 of the CPU. 90*91f16700Schasinglulu 91*91f16700Schasinglulu- ``ERRATA_A17_852423``: This applies errata 852423 workaround to Cortex-A17 92*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p2 of the CPU. 93*91f16700Schasinglulu 94*91f16700SchasingluluFor Cortex-A35, the following errata build flags are defined : 95*91f16700Schasinglulu 96*91f16700Schasinglulu- ``ERRATA_A35_855472``: This applies errata 855472 workaround to Cortex-A35 97*91f16700Schasinglulu CPUs. This needs to be enabled only for revision r0p0 of Cortex-A35. 98*91f16700Schasinglulu 99*91f16700SchasingluluFor Cortex-A53, the following errata build flags are defined : 100*91f16700Schasinglulu 101*91f16700Schasinglulu- ``ERRATA_A53_819472``: This applies errata 819472 workaround to all 102*91f16700Schasinglulu CPUs. This needs to be enabled only for revision <= r0p1 of Cortex-A53. 103*91f16700Schasinglulu 104*91f16700Schasinglulu- ``ERRATA_A53_824069``: This applies errata 824069 workaround to all 105*91f16700Schasinglulu CPUs. This needs to be enabled only for revision <= r0p2 of Cortex-A53. 106*91f16700Schasinglulu 107*91f16700Schasinglulu- ``ERRATA_A53_826319``: This applies errata 826319 workaround to Cortex-A53 108*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p2 of the CPU. 109*91f16700Schasinglulu 110*91f16700Schasinglulu- ``ERRATA_A53_827319``: This applies errata 827319 workaround to all 111*91f16700Schasinglulu CPUs. This needs to be enabled only for revision <= r0p2 of Cortex-A53. 112*91f16700Schasinglulu 113*91f16700Schasinglulu- ``ERRATA_A53_835769``: This applies erratum 835769 workaround at compile and 114*91f16700Schasinglulu link time to Cortex-A53 CPU. This needs to be enabled for some variants of 115*91f16700Schasinglulu revision <= r0p4. This workaround can lead the linker to create ``*.stub`` 116*91f16700Schasinglulu sections. 117*91f16700Schasinglulu 118*91f16700Schasinglulu- ``ERRATA_A53_836870``: This applies errata 836870 workaround to Cortex-A53 119*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p3 of the CPU. From 120*91f16700Schasinglulu r0p4 and onwards, this errata is enabled by default in hardware. Identical to 121*91f16700Schasinglulu ``A53_DISABLE_NON_TEMPORAL_HINT``. 122*91f16700Schasinglulu 123*91f16700Schasinglulu- ``ERRATA_A53_843419``: This applies erratum 843419 workaround at link time 124*91f16700Schasinglulu to Cortex-A53 CPU. This needs to be enabled for some variants of revision 125*91f16700Schasinglulu <= r0p4. This workaround can lead the linker to emit ``*.stub`` sections 126*91f16700Schasinglulu which are 4kB aligned. 127*91f16700Schasinglulu 128*91f16700Schasinglulu- ``ERRATA_A53_855873``: This applies errata 855873 workaround to Cortex-A53 129*91f16700Schasinglulu CPUs. Though the erratum is present in every revision of the CPU, 130*91f16700Schasinglulu this workaround is only applied to CPUs from r0p3 onwards, which feature 131*91f16700Schasinglulu a chicken bit in CPUACTLR_EL1 to enable a hardware workaround. 132*91f16700Schasinglulu Earlier revisions of the CPU have other errata which require the same 133*91f16700Schasinglulu workaround in software, so they should be covered anyway. 134*91f16700Schasinglulu 135*91f16700Schasinglulu- ``ERRATA_A53_1530924``: This applies errata 1530924 workaround to all 136*91f16700Schasinglulu revisions of Cortex-A53 CPU. 137*91f16700Schasinglulu 138*91f16700SchasingluluFor Cortex-A55, the following errata build flags are defined : 139*91f16700Schasinglulu 140*91f16700Schasinglulu- ``ERRATA_A55_768277``: This applies errata 768277 workaround to Cortex-A55 141*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 142*91f16700Schasinglulu 143*91f16700Schasinglulu- ``ERRATA_A55_778703``: This applies errata 778703 workaround to Cortex-A55 144*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 145*91f16700Schasinglulu 146*91f16700Schasinglulu- ``ERRATA_A55_798797``: This applies errata 798797 workaround to Cortex-A55 147*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 148*91f16700Schasinglulu 149*91f16700Schasinglulu- ``ERRATA_A55_846532``: This applies errata 846532 workaround to Cortex-A55 150*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p1 of the CPU. 151*91f16700Schasinglulu 152*91f16700Schasinglulu- ``ERRATA_A55_903758``: This applies errata 903758 workaround to Cortex-A55 153*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p1 of the CPU. 154*91f16700Schasinglulu 155*91f16700Schasinglulu- ``ERRATA_A55_1221012``: This applies errata 1221012 workaround to Cortex-A55 156*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 157*91f16700Schasinglulu 158*91f16700Schasinglulu- ``ERRATA_A55_1530923``: This applies errata 1530923 workaround to all 159*91f16700Schasinglulu revisions of Cortex-A55 CPU. 160*91f16700Schasinglulu 161*91f16700SchasingluluFor Cortex-A57, the following errata build flags are defined : 162*91f16700Schasinglulu 163*91f16700Schasinglulu- ``ERRATA_A57_806969``: This applies errata 806969 workaround to Cortex-A57 164*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 165*91f16700Schasinglulu 166*91f16700Schasinglulu- ``ERRATA_A57_813419``: This applies errata 813419 workaround to Cortex-A57 167*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 168*91f16700Schasinglulu 169*91f16700Schasinglulu- ``ERRATA_A57_813420``: This applies errata 813420 workaround to Cortex-A57 170*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 171*91f16700Schasinglulu 172*91f16700Schasinglulu- ``ERRATA_A57_814670``: This applies errata 814670 workaround to Cortex-A57 173*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 174*91f16700Schasinglulu 175*91f16700Schasinglulu- ``ERRATA_A57_817169``: This applies errata 817169 workaround to Cortex-A57 176*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p1 of the CPU. 177*91f16700Schasinglulu 178*91f16700Schasinglulu- ``ERRATA_A57_826974``: This applies errata 826974 workaround to Cortex-A57 179*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p1 of the CPU. 180*91f16700Schasinglulu 181*91f16700Schasinglulu- ``ERRATA_A57_826977``: This applies errata 826977 workaround to Cortex-A57 182*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p1 of the CPU. 183*91f16700Schasinglulu 184*91f16700Schasinglulu- ``ERRATA_A57_828024``: This applies errata 828024 workaround to Cortex-A57 185*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p1 of the CPU. 186*91f16700Schasinglulu 187*91f16700Schasinglulu- ``ERRATA_A57_829520``: This applies errata 829520 workaround to Cortex-A57 188*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p2 of the CPU. 189*91f16700Schasinglulu 190*91f16700Schasinglulu- ``ERRATA_A57_833471``: This applies errata 833471 workaround to Cortex-A57 191*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p2 of the CPU. 192*91f16700Schasinglulu 193*91f16700Schasinglulu- ``ERRATA_A57_859972``: This applies errata 859972 workaround to Cortex-A57 194*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p3 of the CPU. 195*91f16700Schasinglulu 196*91f16700Schasinglulu- ``ERRATA_A57_1319537``: This applies errata 1319537 workaround to all 197*91f16700Schasinglulu revisions of Cortex-A57 CPU. 198*91f16700Schasinglulu 199*91f16700SchasingluluFor Cortex-A72, the following errata build flags are defined : 200*91f16700Schasinglulu 201*91f16700Schasinglulu- ``ERRATA_A72_859971``: This applies errata 859971 workaround to Cortex-A72 202*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p3 of the CPU. 203*91f16700Schasinglulu 204*91f16700Schasinglulu- ``ERRATA_A72_1319367``: This applies errata 1319367 workaround to all 205*91f16700Schasinglulu revisions of Cortex-A72 CPU. 206*91f16700Schasinglulu 207*91f16700SchasingluluFor Cortex-A73, the following errata build flags are defined : 208*91f16700Schasinglulu 209*91f16700Schasinglulu- ``ERRATA_A73_852427``: This applies errata 852427 workaround to Cortex-A73 210*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 211*91f16700Schasinglulu 212*91f16700Schasinglulu- ``ERRATA_A73_855423``: This applies errata 855423 workaround to Cortex-A73 213*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r0p1 of the CPU. 214*91f16700Schasinglulu 215*91f16700SchasingluluFor Cortex-A75, the following errata build flags are defined : 216*91f16700Schasinglulu 217*91f16700Schasinglulu- ``ERRATA_A75_764081``: This applies errata 764081 workaround to Cortex-A75 218*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 219*91f16700Schasinglulu 220*91f16700Schasinglulu- ``ERRATA_A75_790748``: This applies errata 790748 workaround to Cortex-A75 221*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 of the CPU. 222*91f16700Schasinglulu 223*91f16700SchasingluluFor Cortex-A76, the following errata build flags are defined : 224*91f16700Schasinglulu 225*91f16700Schasinglulu- ``ERRATA_A76_1073348``: This applies errata 1073348 workaround to Cortex-A76 226*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 227*91f16700Schasinglulu 228*91f16700Schasinglulu- ``ERRATA_A76_1130799``: This applies errata 1130799 workaround to Cortex-A76 229*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 230*91f16700Schasinglulu 231*91f16700Schasinglulu- ``ERRATA_A76_1220197``: This applies errata 1220197 workaround to Cortex-A76 232*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 233*91f16700Schasinglulu 234*91f16700Schasinglulu- ``ERRATA_A76_1257314``: This applies errata 1257314 workaround to Cortex-A76 235*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 236*91f16700Schasinglulu 237*91f16700Schasinglulu- ``ERRATA_A76_1262606``: This applies errata 1262606 workaround to Cortex-A76 238*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 239*91f16700Schasinglulu 240*91f16700Schasinglulu- ``ERRATA_A76_1262888``: This applies errata 1262888 workaround to Cortex-A76 241*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 242*91f16700Schasinglulu 243*91f16700Schasinglulu- ``ERRATA_A76_1275112``: This applies errata 1275112 workaround to Cortex-A76 244*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 245*91f16700Schasinglulu 246*91f16700Schasinglulu- ``ERRATA_A76_1791580``: This applies errata 1791580 workaround to Cortex-A76 247*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r4p0 of the CPU. 248*91f16700Schasinglulu 249*91f16700Schasinglulu- ``ERRATA_A76_1165522``: This applies errata 1165522 workaround to all 250*91f16700Schasinglulu revisions of Cortex-A76 CPU. This errata is fixed in r3p0 but due to 251*91f16700Schasinglulu limitation of errata framework this errata is applied to all revisions 252*91f16700Schasinglulu of Cortex-A76 CPU. 253*91f16700Schasinglulu 254*91f16700Schasinglulu- ``ERRATA_A76_1868343``: This applies errata 1868343 workaround to Cortex-A76 255*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r4p0 of the CPU. 256*91f16700Schasinglulu 257*91f16700Schasinglulu- ``ERRATA_A76_1946160``: This applies errata 1946160 workaround to Cortex-A76 258*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r3p0 - r4p1 of the CPU. 259*91f16700Schasinglulu 260*91f16700Schasinglulu- ``ERRATA_A76_2743102``: This applies errata 2743102 workaround to Cortex-A76 261*91f16700Schasinglulu CPU. This needs to be enabled for all revisions <= r4p1 of the CPU and is 262*91f16700Schasinglulu still open. 263*91f16700Schasinglulu 264*91f16700SchasingluluFor Cortex-A77, the following errata build flags are defined : 265*91f16700Schasinglulu 266*91f16700Schasinglulu- ``ERRATA_A77_1508412``: This applies errata 1508412 workaround to Cortex-A77 267*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 268*91f16700Schasinglulu 269*91f16700Schasinglulu- ``ERRATA_A77_1925769``: This applies errata 1925769 workaround to Cortex-A77 270*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p1 of the CPU. 271*91f16700Schasinglulu 272*91f16700Schasinglulu- ``ERRATA_A77_1946167``: This applies errata 1946167 workaround to Cortex-A77 273*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p1 of the CPU. 274*91f16700Schasinglulu 275*91f16700Schasinglulu- ``ERRATA_A77_1791578``: This applies errata 1791578 workaround to Cortex-A77 276*91f16700Schasinglulu CPU. This needs to be enabled for r0p0, r1p0, and r1p1, it is still open. 277*91f16700Schasinglulu 278*91f16700Schasinglulu- ``ERRATA_A77_2356587``: This applies errata 2356587 workaround to Cortex-A77 279*91f16700Schasinglulu CPU. This needs to be enabled for r0p0, r1p0, and r1p1, it is still open. 280*91f16700Schasinglulu 281*91f16700Schasinglulu - ``ERRATA_A77_1800714``: This applies errata 1800714 workaround to Cortex-A77 282*91f16700Schasinglulu CPU. This needs to be enabled for revisions <= r1p1 of the CPU. 283*91f16700Schasinglulu 284*91f16700Schasinglulu - ``ERRATA_A77_2743100``: This applies errata 2743100 workaround to Cortex-A77 285*91f16700Schasinglulu CPU. This needs to be enabled for r0p0, r1p0, and r1p1, it is still open. 286*91f16700Schasinglulu 287*91f16700SchasingluluFor Cortex-A78, the following errata build flags are defined : 288*91f16700Schasinglulu 289*91f16700Schasinglulu- ``ERRATA_A78_1688305``: This applies errata 1688305 workaround to Cortex-A78 290*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 - r1p0 of the CPU. 291*91f16700Schasinglulu 292*91f16700Schasinglulu- ``ERRATA_A78_1941498``: This applies errata 1941498 workaround to Cortex-A78 293*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, and r1p1 of the CPU. 294*91f16700Schasinglulu 295*91f16700Schasinglulu- ``ERRATA_A78_1951500``: This applies errata 1951500 workaround to Cortex-A78 296*91f16700Schasinglulu CPU. This needs to be enabled for revisions r1p0 and r1p1, r0p0 has the same 297*91f16700Schasinglulu issue but there is no workaround for that revision. 298*91f16700Schasinglulu 299*91f16700Schasinglulu- ``ERRATA_A78_1821534``: This applies errata 1821534 workaround to Cortex-A78 300*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0 and r1p0. 301*91f16700Schasinglulu 302*91f16700Schasinglulu- ``ERRATA_A78_1952683``: This applies errata 1952683 workaround to Cortex-A78 303*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0, it is fixed in r1p0. 304*91f16700Schasinglulu 305*91f16700Schasinglulu- ``ERRATA_A78_2132060``: This applies errata 2132060 workaround to Cortex-A78 306*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, and r1p2. It 307*91f16700Schasinglulu is still open. 308*91f16700Schasinglulu 309*91f16700Schasinglulu- ``ERRATA_A78_2242635``: This applies errata 2242635 workaround to Cortex-A78 310*91f16700Schasinglulu CPU. This needs to be enabled for revisions r1p0, r1p1, and r1p2. The issue 311*91f16700Schasinglulu is present in r0p0 but there is no workaround. It is still open. 312*91f16700Schasinglulu 313*91f16700Schasinglulu- ``ERRATA_A78_2376745``: This applies errata 2376745 workaround to Cortex-A78 314*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, and r1p2, and 315*91f16700Schasinglulu it is still open. 316*91f16700Schasinglulu 317*91f16700Schasinglulu- ``ERRATA_A78_2395406``: This applies errata 2395406 workaround to Cortex-A78 318*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, and r1p2, and 319*91f16700Schasinglulu it is still open. 320*91f16700Schasinglulu 321*91f16700Schasinglulu- ``ERRATA_A78_2712571``: This applies erratum 2712571 workaround to Cortex-A78 322*91f16700Schasinglulu CPU, this erratum affects system configurations that do not use an ARM 323*91f16700Schasinglulu interconnect IP. This needs to be enabled for revisions r0p0, r1p0, r1p1 324*91f16700Schasinglulu and r1p2 and it is still open. 325*91f16700Schasinglulu 326*91f16700Schasinglulu- ``ERRATA_A78_2742426``: This applies erratum 2742426 workaround to Cortex-A78 327*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1 and r1p2 and 328*91f16700Schasinglulu it is still open. 329*91f16700Schasinglulu 330*91f16700Schasinglulu- ``ERRATA_A78_2772019``: This applies errata 2772019 workaround to Cortex-A78 331*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, and r1p2, and 332*91f16700Schasinglulu it is still open. 333*91f16700Schasinglulu 334*91f16700Schasinglulu- ``ERRATA_A78_2779479``: This applies erratum 2779479 workaround to Cortex-A78 335*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1 and r1p2 and 336*91f16700Schasinglulu it is still open. 337*91f16700Schasinglulu 338*91f16700SchasingluluFor Cortex-A78AE, the following errata build flags are defined : 339*91f16700Schasinglulu 340*91f16700Schasinglulu- ``ERRATA_A78_AE_1941500`` : This applies errata 1941500 workaround to 341*91f16700Schasinglulu Cortex-A78AE CPU. This needs to be enabled for revisions r0p0 and r0p1. 342*91f16700Schasinglulu This erratum is still open. 343*91f16700Schasinglulu 344*91f16700Schasinglulu- ``ERRATA_A78_AE_1951502`` : This applies errata 1951502 workaround to 345*91f16700Schasinglulu Cortex-A78AE CPU. This needs to be enabled for revisions r0p0 and r0p1. This 346*91f16700Schasinglulu erratum is still open. 347*91f16700Schasinglulu 348*91f16700Schasinglulu- ``ERRATA_A78_AE_2376748`` : This applies errata 2376748 workaround to 349*91f16700Schasinglulu Cortex-A78AE CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. 350*91f16700Schasinglulu This erratum is still open. 351*91f16700Schasinglulu 352*91f16700Schasinglulu- ``ERRATA_A78_AE_2395408`` : This applies errata 2395408 workaround to 353*91f16700Schasinglulu Cortex-A78AE CPU. This needs to be enabled for revisions r0p0 and r0p1. This 354*91f16700Schasinglulu erratum is still open. 355*91f16700Schasinglulu 356*91f16700Schasinglulu- ``ERRATA_A78_AE_2712574`` : This applies erratum 2712574 workaround to 357*91f16700Schasinglulu Cortex-A78AE CPU. This erratum affects system configurations that do not use 358*91f16700Schasinglulu an ARM interconnect IP. This needs to be enabled for revisions r0p0, r0p1 and 359*91f16700Schasinglulu r0p2. This erratum is still open. 360*91f16700Schasinglulu 361*91f16700SchasingluluFor Cortex-A78C, the following errata build flags are defined : 362*91f16700Schasinglulu 363*91f16700Schasinglulu- ``ERRATA_A78C_1827430`` : This applies errata 1827430 workaround to 364*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revision r0p0. The erratum is 365*91f16700Schasinglulu fixed in r0p1. 366*91f16700Schasinglulu 367*91f16700Schasinglulu- ``ERRATA_A78C_1827440`` : This applies errata 1827440 workaround to 368*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revision r0p0. The erratum is 369*91f16700Schasinglulu fixed in r0p1. 370*91f16700Schasinglulu 371*91f16700Schasinglulu- ``ERRATA_A78C_2132064`` : This applies errata 2132064 workaround to 372*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p1, r0p2 and 373*91f16700Schasinglulu it is still open. 374*91f16700Schasinglulu 375*91f16700Schasinglulu- ``ERRATA_A78C_2242638`` : This applies errata 2242638 workaround to 376*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p1, r0p2 and 377*91f16700Schasinglulu it is still open. 378*91f16700Schasinglulu 379*91f16700Schasinglulu- ``ERRATA_A78C_2376749`` : This applies errata 2376749 workaround to 380*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p1 and r0p2. This 381*91f16700Schasinglulu erratum is still open. 382*91f16700Schasinglulu 383*91f16700Schasinglulu- ``ERRATA_A78C_2395411`` : This applies errata 2395411 workaround to 384*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p1 and r0p2. This 385*91f16700Schasinglulu erratum is still open. 386*91f16700Schasinglulu 387*91f16700Schasinglulu- ``ERRATA_A78C_2712575`` : This applies erratum 2712575 workaround to 388*91f16700Schasinglulu Cortex-A78C CPU, this erratum affects system configurations that do not use 389*91f16700Schasinglulu an ARM interconnect IP. This needs to be enabled for revisions r0p1 and r0p2 390*91f16700Schasinglulu and is still open. 391*91f16700Schasinglulu 392*91f16700Schasinglulu- ``ERRATA_A78C_2772121`` : This applies errata 2772121 workaround to 393*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. 394*91f16700Schasinglulu This erratum is still open. 395*91f16700Schasinglulu 396*91f16700Schasinglulu- ``ERRATA_A78C_2779484`` : This applies errata 2779484 workaround to 397*91f16700Schasinglulu Cortex-A78C CPU. This needs to be enabled for revisions r0p1 and r0p2. 398*91f16700Schasinglulu This erratum is still open. 399*91f16700Schasinglulu 400*91f16700SchasingluluFor Cortex-X1 CPU, the following errata build flags are defined: 401*91f16700Schasinglulu 402*91f16700Schasinglulu- ``ERRATA_X1_1821534`` : This applies errata 1821534 workaround to Cortex-X1 403*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 404*91f16700Schasinglulu 405*91f16700Schasinglulu- ``ERRATA_X1_1688305`` : This applies errata 1688305 workaround to Cortex-X1 406*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 407*91f16700Schasinglulu 408*91f16700Schasinglulu- ``ERRATA_X1_1827429`` : This applies errata 1827429 workaround to Cortex-X1 409*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r1p0 of the CPU. 410*91f16700Schasinglulu 411*91f16700SchasingluluFor Neoverse N1, the following errata build flags are defined : 412*91f16700Schasinglulu 413*91f16700Schasinglulu- ``ERRATA_N1_1073348``: This applies errata 1073348 workaround to Neoverse-N1 414*91f16700Schasinglulu CPU. This needs to be enabled only for revision r0p0 and r1p0 of the CPU. 415*91f16700Schasinglulu 416*91f16700Schasinglulu- ``ERRATA_N1_1130799``: This applies errata 1130799 workaround to Neoverse-N1 417*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 418*91f16700Schasinglulu 419*91f16700Schasinglulu- ``ERRATA_N1_1165347``: This applies errata 1165347 workaround to Neoverse-N1 420*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 421*91f16700Schasinglulu 422*91f16700Schasinglulu- ``ERRATA_N1_1207823``: This applies errata 1207823 workaround to Neoverse-N1 423*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 424*91f16700Schasinglulu 425*91f16700Schasinglulu- ``ERRATA_N1_1220197``: This applies errata 1220197 workaround to Neoverse-N1 426*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r2p0 of the CPU. 427*91f16700Schasinglulu 428*91f16700Schasinglulu- ``ERRATA_N1_1257314``: This applies errata 1257314 workaround to Neoverse-N1 429*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 430*91f16700Schasinglulu 431*91f16700Schasinglulu- ``ERRATA_N1_1262606``: This applies errata 1262606 workaround to Neoverse-N1 432*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 433*91f16700Schasinglulu 434*91f16700Schasinglulu- ``ERRATA_N1_1262888``: This applies errata 1262888 workaround to Neoverse-N1 435*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 436*91f16700Schasinglulu 437*91f16700Schasinglulu- ``ERRATA_N1_1275112``: This applies errata 1275112 workaround to Neoverse-N1 438*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 439*91f16700Schasinglulu 440*91f16700Schasinglulu- ``ERRATA_N1_1315703``: This applies errata 1315703 workaround to Neoverse-N1 441*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r3p0 of the CPU. 442*91f16700Schasinglulu 443*91f16700Schasinglulu- ``ERRATA_N1_1542419``: This applies errata 1542419 workaround to Neoverse-N1 444*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r3p0 - r4p0 of the CPU. 445*91f16700Schasinglulu 446*91f16700Schasinglulu- ``ERRATA_N1_1868343``: This applies errata 1868343 workaround to Neoverse-N1 447*91f16700Schasinglulu CPU. This needs to be enabled only for revision <= r4p0 of the CPU. 448*91f16700Schasinglulu 449*91f16700Schasinglulu- ``ERRATA_N1_1946160``: This applies errata 1946160 workaround to Neoverse-N1 450*91f16700Schasinglulu CPU. This needs to be enabled for revisions r3p0, r3p1, r4p0, and r4p1, for 451*91f16700Schasinglulu revisions r0p0, r1p0, and r2p0 there is no workaround. 452*91f16700Schasinglulu 453*91f16700Schasinglulu- ``ERRATA_N1_2743102``: This applies errata 2743102 workaround to Neoverse-N1 454*91f16700Schasinglulu CPU. This needs to be enabled for all revisions <= r4p1 of the CPU and is 455*91f16700Schasinglulu still open. 456*91f16700Schasinglulu 457*91f16700SchasingluluFor Neoverse V1, the following errata build flags are defined : 458*91f16700Schasinglulu 459*91f16700Schasinglulu- ``ERRATA_V1_1618635``: This applies errata 1618635 workaround to Neoverse-V1 460*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU, it is fixed in 461*91f16700Schasinglulu r1p0. 462*91f16700Schasinglulu 463*91f16700Schasinglulu- ``ERRATA_V1_1774420``: This applies errata 1774420 workaround to Neoverse-V1 464*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0 and r1p0, it is fixed 465*91f16700Schasinglulu in r1p1. 466*91f16700Schasinglulu 467*91f16700Schasinglulu- ``ERRATA_V1_1791573``: This applies errata 1791573 workaround to Neoverse-V1 468*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0 and r1p0, it is fixed 469*91f16700Schasinglulu in r1p1. 470*91f16700Schasinglulu 471*91f16700Schasinglulu- ``ERRATA_V1_1852267``: This applies errata 1852267 workaround to Neoverse-V1 472*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0 and r1p0, it is fixed 473*91f16700Schasinglulu in r1p1. 474*91f16700Schasinglulu 475*91f16700Schasinglulu- ``ERRATA_V1_1925756``: This applies errata 1925756 workaround to Neoverse-V1 476*91f16700Schasinglulu CPU. This needs to be enabled for r0p0, r1p0, and r1p1, it is still open. 477*91f16700Schasinglulu 478*91f16700Schasinglulu- ``ERRATA_V1_1940577``: This applies errata 1940577 workaround to Neoverse-V1 479*91f16700Schasinglulu CPU. This needs to be enabled only for revision r1p0 and r1p1 of the 480*91f16700Schasinglulu CPU. 481*91f16700Schasinglulu 482*91f16700Schasinglulu- ``ERRATA_V1_1966096``: This applies errata 1966096 workaround to Neoverse-V1 483*91f16700Schasinglulu CPU. This needs to be enabled for revisions r1p0 and r1p1 of the CPU, the 484*91f16700Schasinglulu issue is present in r0p0 as well but there is no workaround for that 485*91f16700Schasinglulu revision. It is still open. 486*91f16700Schasinglulu 487*91f16700Schasinglulu- ``ERRATA_V1_2139242``: This applies errata 2139242 workaround to Neoverse-V1 488*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, and r1p1 of the 489*91f16700Schasinglulu CPU. It is still open. 490*91f16700Schasinglulu 491*91f16700Schasinglulu- ``ERRATA_V1_2108267``: This applies errata 2108267 workaround to Neoverse-V1 492*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, and r1p1 of the CPU. 493*91f16700Schasinglulu It is still open. 494*91f16700Schasinglulu 495*91f16700Schasinglulu- ``ERRATA_V1_2216392``: This applies errata 2216392 workaround to Neoverse-V1 496*91f16700Schasinglulu CPU. This needs to be enabled for revisions r1p0 and r1p1 of the CPU, the 497*91f16700Schasinglulu issue is present in r0p0 as well but there is no workaround for that 498*91f16700Schasinglulu revision. It is still open. 499*91f16700Schasinglulu 500*91f16700Schasinglulu- ``ERRATA_V1_2294912``: This applies errata 2294912 workaround to Neoverse-V1 501*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, and r1p1 and r1p2 of 502*91f16700Schasinglulu the CPU. 503*91f16700Schasinglulu 504*91f16700Schasinglulu- ``ERRATA_V1_2372203``: This applies errata 2372203 workaround to Neoverse-V1 505*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0 and r1p1 of the CPU. 506*91f16700Schasinglulu It is still open. 507*91f16700Schasinglulu 508*91f16700Schasinglulu- ``ERRATA_V1_2701953``: This applies erratum 2701953 workaround to Neoverse-V1 509*91f16700Schasinglulu CPU, this erratum affects system configurations that do not use an ARM 510*91f16700Schasinglulu interconnect IP. This needs to be enabled for revisions r0p0, r1p0 and r1p1. 511*91f16700Schasinglulu It has been fixed in r1p2. 512*91f16700Schasinglulu 513*91f16700Schasinglulu- ``ERRATA_V1_2743093``: This applies errata 2743093 workaround to Neoverse-V1 514*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1 and r1p2 of the 515*91f16700Schasinglulu CPU. It is still open. 516*91f16700Schasinglulu 517*91f16700Schasinglulu- ``ERRATA_V1_2743233``: This applies erratum 2743233 workaround to Neoverse-V1 518*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, and r1p2 of the 519*91f16700Schasinglulu CPU. It is still open. 520*91f16700Schasinglulu 521*91f16700Schasinglulu- ``ERRATA_V1_2779461``: This applies erratum 2779461 workaround to Neoverse-V1 522*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r1p1, r1p2 of the 523*91f16700Schasinglulu CPU. It is still open. 524*91f16700Schasinglulu 525*91f16700SchasingluluFor Neoverse V2, the following errata build flags are defined : 526*91f16700Schasinglulu 527*91f16700Schasinglulu- ``ERRATA_V2_2331132``: This applies errata 2331132 workaround to Neoverse-V2 528*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. It is still 529*91f16700Schasinglulu open. 530*91f16700Schasinglulu 531*91f16700Schasinglulu- ``ERRATA_V2_2719103``: This applies errata 2719103 workaround to Neoverse-V2 532*91f16700Schasinglulu CPU, this affects system configurations that do not use and ARM interconnect 533*91f16700Schasinglulu IP. This needs to be enabled for revisions r0p0 and r0p1. It has been fixed 534*91f16700Schasinglulu in r0p2. 535*91f16700Schasinglulu 536*91f16700Schasinglulu- ``ERRATA_V2_2719105``: This applies errata 2719105 workaround to Neoverse-V2 537*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0 and r0p1. It is fixed in 538*91f16700Schasinglulu r0p2. 539*91f16700Schasinglulu 540*91f16700Schasinglulu- ``ERRATA_V2_2743011``: This applies errata 2743011 workaround to Neoverse-V2 541*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0 and r0p1. It is fixed in 542*91f16700Schasinglulu r0p2. 543*91f16700Schasinglulu 544*91f16700Schasinglulu- ``ERRATA_V2_2779510``: This applies errata 2779510 workaround to Neoverse-V2 545*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0 and r0p1. It is fixed in 546*91f16700Schasinglulu r0p2. 547*91f16700Schasinglulu 548*91f16700Schasinglulu- ``ERRATA_V2_2801372``: This applies errata 2801372 workaround to Neoverse-V2 549*91f16700Schasinglulu CPU, this affects all configurations. This needs to be enabled for revisions 550*91f16700Schasinglulu r0p0 and r0p1. It has been fixed in r0p2. 551*91f16700Schasinglulu 552*91f16700SchasingluluFor Cortex-A710, the following errata build flags are defined : 553*91f16700Schasinglulu 554*91f16700Schasinglulu- ``ERRATA_A710_1987031``: This applies errata 1987031 workaround to 555*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled only for revisions r0p0, r1p0 and 556*91f16700Schasinglulu r2p0 of the CPU. It is still open. 557*91f16700Schasinglulu 558*91f16700Schasinglulu- ``ERRATA_A710_2081180``: This applies errata 2081180 workaround to 559*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled only for revisions r0p0, r1p0 and 560*91f16700Schasinglulu r2p0 of the CPU. It is still open. 561*91f16700Schasinglulu 562*91f16700Schasinglulu- ``ERRATA_A710_2055002``: This applies errata 2055002 workaround to 563*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r1p0, r2p0 of the CPU 564*91f16700Schasinglulu and is still open. 565*91f16700Schasinglulu 566*91f16700Schasinglulu- ``ERRATA_A710_2017096``: This applies errata 2017096 workaround to 567*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 568*91f16700Schasinglulu of the CPU and is still open. 569*91f16700Schasinglulu 570*91f16700Schasinglulu- ``ERRATA_A710_2083908``: This applies errata 2083908 workaround to 571*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revision r2p0 of the CPU and 572*91f16700Schasinglulu is still open. 573*91f16700Schasinglulu 574*91f16700Schasinglulu- ``ERRATA_A710_2058056``: This applies errata 2058056 workaround to 575*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 576*91f16700Schasinglulu and r2p1 of the CPU and is still open. 577*91f16700Schasinglulu 578*91f16700Schasinglulu- ``ERRATA_A710_2267065``: This applies errata 2267065 workaround to 579*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 580*91f16700Schasinglulu of the CPU and is fixed in r2p1. 581*91f16700Schasinglulu 582*91f16700Schasinglulu- ``ERRATA_A710_2136059``: This applies errata 2136059 workaround to 583*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 584*91f16700Schasinglulu of the CPU and is fixed in r2p1. 585*91f16700Schasinglulu 586*91f16700Schasinglulu- ``ERRATA_A710_2147715``: This applies errata 2147715 workaround to 587*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revision r2p0 of the CPU 588*91f16700Schasinglulu and is fixed in r2p1. 589*91f16700Schasinglulu 590*91f16700Schasinglulu- ``ERRATA_A710_2216384``: This applies errata 2216384 workaround to 591*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 592*91f16700Schasinglulu of the CPU and is fixed in r2p1. 593*91f16700Schasinglulu 594*91f16700Schasinglulu- ``ERRATA_A710_2282622``: This applies errata 2282622 workaround to 595*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and 596*91f16700Schasinglulu r2p1 of the CPU and is still open. 597*91f16700Schasinglulu 598*91f16700Schasinglulu- ``ERRATA_A710_2291219``: This applies errata 2291219 workaround to 599*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 600*91f16700Schasinglulu of the CPU and is fixed in r2p1. 601*91f16700Schasinglulu 602*91f16700Schasinglulu- ``ERRATA_A710_2008768``: This applies errata 2008768 workaround to 603*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 604*91f16700Schasinglulu of the CPU and is fixed in r2p1. 605*91f16700Schasinglulu 606*91f16700Schasinglulu- ``ERRATA_A710_2371105``: This applies errata 2371105 workaround to 607*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 608*91f16700Schasinglulu of the CPU and is fixed in r2p1. 609*91f16700Schasinglulu 610*91f16700Schasinglulu- ``ERRATA_A710_2701952``: This applies erratum 2701952 workaround to Cortex-A710 611*91f16700Schasinglulu CPU, and applies to system configurations that do not use and ARM 612*91f16700Schasinglulu interconnect IP. This needs to be enabled for r0p0, r1p0, r2p0 and r2p1 and 613*91f16700Schasinglulu is still open. 614*91f16700Schasinglulu 615*91f16700Schasinglulu- ``ERRATA_A710_2742423``: This applies errata 2742423 workaround to 616*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and 617*91f16700Schasinglulu r2p1 of the CPU and is still open. 618*91f16700Schasinglulu 619*91f16700Schasinglulu- ``ERRATA_A710_2768515``: This applies errata 2768515 workaround to 620*91f16700Schasinglulu Cortex-A710 CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and 621*91f16700Schasinglulu r2p1 of the CPU and is still open. 622*91f16700Schasinglulu 623*91f16700SchasingluluFor Neoverse N2, the following errata build flags are defined : 624*91f16700Schasinglulu 625*91f16700Schasinglulu- ``ERRATA_N2_2002655``: This applies errata 2002655 workaround to Neoverse-N2 626*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 627*91f16700Schasinglulu 628*91f16700Schasinglulu- ``ERRATA_N2_2009478``: This applies errata 2009478 workaround to Neoverse-N2 629*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 630*91f16700Schasinglulu 631*91f16700Schasinglulu- ``ERRATA_N2_2067956``: This applies errata 2067956 workaround to Neoverse-N2 632*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 633*91f16700Schasinglulu 634*91f16700Schasinglulu- ``ERRATA_N2_2025414``: This applies errata 2025414 workaround to Neoverse-N2 635*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 636*91f16700Schasinglulu 637*91f16700Schasinglulu- ``ERRATA_N2_2189731``: This applies errata 2189731 workaround to Neoverse-N2 638*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 639*91f16700Schasinglulu 640*91f16700Schasinglulu- ``ERRATA_N2_2138956``: This applies errata 2138956 workaround to Neoverse-N2 641*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 642*91f16700Schasinglulu 643*91f16700Schasinglulu- ``ERRATA_N2_2138953``: This applies errata 2138953 workaround to Neoverse-N2 644*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1, r0p2, r0p3 and is still open. 645*91f16700Schasinglulu 646*91f16700Schasinglulu- ``ERRATA_N2_2242415``: This applies errata 2242415 workaround to Neoverse-N2 647*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 648*91f16700Schasinglulu 649*91f16700Schasinglulu- ``ERRATA_N2_2138958``: This applies errata 2138958 workaround to Neoverse-N2 650*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 651*91f16700Schasinglulu 652*91f16700Schasinglulu- ``ERRATA_N2_2242400``: This applies errata 2242400 workaround to Neoverse-N2 653*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 654*91f16700Schasinglulu 655*91f16700Schasinglulu- ``ERRATA_N2_2280757``: This applies errata 2280757 workaround to Neoverse-N2 656*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU and is fixed in r0p1. 657*91f16700Schasinglulu 658*91f16700Schasinglulu- ``ERRATA_N2_2326639``: This applies errata 2326639 workaround to Neoverse-N2 659*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU, it is fixed in 660*91f16700Schasinglulu r0p1. 661*91f16700Schasinglulu 662*91f16700Schasinglulu- ``ERRATA_N2_2340933``: This applies errata 2340933 workaround to Neoverse-N2 663*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU, it is fixed in 664*91f16700Schasinglulu r0p1. 665*91f16700Schasinglulu 666*91f16700Schasinglulu- ``ERRATA_N2_2346952``: This applies errata 2346952 workaround to Neoverse-N2 667*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2 of the CPU, 668*91f16700Schasinglulu it is fixed in r0p3. 669*91f16700Schasinglulu 670*91f16700Schasinglulu- ``ERRATA_N2_2376738``: This applies errata 2376738 workaround to Neoverse-N2 671*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0, r0p1, r0p2, r0p3 and is still open. 672*91f16700Schasinglulu 673*91f16700Schasinglulu- ``ERRATA_N2_2388450``: This applies errata 2388450 workaround to Neoverse-N2 674*91f16700Schasinglulu CPU. This needs to be enabled for revision r0p0 of the CPU, it is fixed in 675*91f16700Schasinglulu r0p1. 676*91f16700Schasinglulu 677*91f16700Schasinglulu- ``ERRATA_N2_2743014``: This applies errata 2743014 workaround to Neoverse-N2 678*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. It is fixed 679*91f16700Schasinglulu in r0p3. 680*91f16700Schasinglulu 681*91f16700Schasinglulu- ``ERRATA_N2_2743089``: This applies errata 2743089 workaround to Neoverse-N2 682*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. It is fixed 683*91f16700Schasinglulu in r0p3. 684*91f16700Schasinglulu 685*91f16700Schasinglulu- ``ERRATA_N2_2728475``: This applies erratum 2728475 workaround to Neoverse-N2 686*91f16700Schasinglulu CPU, this erratum affects system configurations that do not use and ARM 687*91f16700Schasinglulu interconnect IP. This needs to be enabled for revisions r0p0, r0p1 and r0p2. 688*91f16700Schasinglulu It is fixed in r0p3. 689*91f16700Schasinglulu 690*91f16700Schasinglulu- ``ERRATA_N2_2779511``: This applies errata 2779511 workaround to Neoverse-N2 691*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r0p1 and r0p2. It is fixed 692*91f16700Schasinglulu in r0p3. 693*91f16700Schasinglulu 694*91f16700SchasingluluFor Cortex-X2, the following errata build flags are defined : 695*91f16700Schasinglulu 696*91f16700Schasinglulu- ``ERRATA_X2_2002765``: This applies errata 2002765 workaround to Cortex-X2 697*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, and r2p0 of the CPU, 698*91f16700Schasinglulu it is still open. 699*91f16700Schasinglulu 700*91f16700Schasinglulu- ``ERRATA_X2_2058056``: This applies errata 2058056 workaround to Cortex-X2 701*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and r2p1 of the CPU, 702*91f16700Schasinglulu it is still open. 703*91f16700Schasinglulu 704*91f16700Schasinglulu- ``ERRATA_X2_2083908``: This applies errata 2083908 workaround to Cortex-X2 705*91f16700Schasinglulu CPU. This needs to be enabled for revision r2p0 of the CPU, it is still open. 706*91f16700Schasinglulu 707*91f16700Schasinglulu- ``ERRATA_X2_2017096``: This applies errata 2017096 workaround to Cortex-X2 708*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0, r1p0 and r2p0 of the 709*91f16700Schasinglulu CPU, it is fixed in r2p1. 710*91f16700Schasinglulu 711*91f16700Schasinglulu- ``ERRATA_X2_2081180``: This applies errata 2081180 workaround to Cortex-X2 712*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0, r1p0 and r2p0 of the 713*91f16700Schasinglulu CPU, it is fixed in r2p1. 714*91f16700Schasinglulu 715*91f16700Schasinglulu- ``ERRATA_X2_2216384``: This applies errata 2216384 workaround to Cortex-X2 716*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0, r1p0 and r2p0 of the 717*91f16700Schasinglulu CPU, it is fixed in r2p1. 718*91f16700Schasinglulu 719*91f16700Schasinglulu- ``ERRATA_X2_2147715``: This applies errata 2147715 workaround to Cortex-X2 720*91f16700Schasinglulu CPU. This needs to be enabled only for revision r2p0 of the CPU, it is fixed 721*91f16700Schasinglulu in r2p1. 722*91f16700Schasinglulu 723*91f16700Schasinglulu- ``ERRATA_X2_2282622``: This applies errata 2282622 workaround to Cortex-X2 724*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and r2p1 of the 725*91f16700Schasinglulu CPU and is still open. 726*91f16700Schasinglulu 727*91f16700Schasinglulu- ``ERRATA_X2_2371105``: This applies errata 2371105 workaround to Cortex-X2 728*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0 and r2p0 of the CPU 729*91f16700Schasinglulu and is fixed in r2p1. 730*91f16700Schasinglulu 731*91f16700Schasinglulu- ``ERRATA_X2_2701952``: This applies erratum 2701952 workaround to Cortex-X2 732*91f16700Schasinglulu CPU and affects system configurations that do not use an ARM interconnect IP. 733*91f16700Schasinglulu This needs to be enabled for revisions r0p0, r1p0, r2p0 and r2p1 and is 734*91f16700Schasinglulu still open. 735*91f16700Schasinglulu 736*91f16700Schasinglulu- ``ERRATA_X2_2742423``: This applies errata 2742423 workaround to Cortex-X2 737*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and r2p1 of the 738*91f16700Schasinglulu CPU and is still open. 739*91f16700Schasinglulu 740*91f16700Schasinglulu- ``ERRATA_X2_2768515``: This applies errata 2768515 workaround to Cortex-X2 741*91f16700Schasinglulu CPU. This needs to be enabled for revisions r0p0, r1p0, r2p0 and r2p1 of the 742*91f16700Schasinglulu CPU and is still open. 743*91f16700Schasinglulu 744*91f16700SchasingluluFor Cortex-X3, the following errata build flags are defined : 745*91f16700Schasinglulu 746*91f16700Schasinglulu- ``ERRATA_X3_2070301``: This applies errata 2070301 workaround to the Cortex-X3 747*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0, r1p0, r1p1 and r1p2 of 748*91f16700Schasinglulu the CPU and is still open. 749*91f16700Schasinglulu 750*91f16700Schasinglulu- ``ERRATA_X3_2313909``: This applies errata 2313909 workaround to 751*91f16700Schasinglulu Cortex-X3 CPU. This needs to be enabled only for revisions r0p0 and r1p0 752*91f16700Schasinglulu of the CPU, it is fixed in r1p1. 753*91f16700Schasinglulu 754*91f16700Schasinglulu- ``ERRATA_X3_2615812``: This applies errata 2615812 workaround to Cortex-X3 755*91f16700Schasinglulu CPU. This needs to be enabled only for revisions r0p0, r1p0 and r1p1 of the 756*91f16700Schasinglulu CPU, it is still open. 757*91f16700Schasinglulu 758*91f16700Schasinglulu- ``ERRATA_X3_2742421``: This applies errata 2742421 workaround to 759*91f16700Schasinglulu Cortex-X3 CPU. This needs to be enabled only for revisions r0p0, r1p0 and 760*91f16700Schasinglulu r1p1. It is fixed in r1p2. 761*91f16700Schasinglulu 762*91f16700SchasingluluFor Cortex-A510, the following errata build flags are defined : 763*91f16700Schasinglulu 764*91f16700Schasinglulu- ``ERRATA_A510_1922240``: This applies errata 1922240 workaround to 765*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled only for revision r0p0, it is 766*91f16700Schasinglulu fixed in r0p1. 767*91f16700Schasinglulu 768*91f16700Schasinglulu- ``ERRATA_A510_2288014``: This applies errata 2288014 workaround to 769*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled only for revisions r0p0, r0p1, 770*91f16700Schasinglulu r0p2, r0p3 and r1p0, it is fixed in r1p1. 771*91f16700Schasinglulu 772*91f16700Schasinglulu- ``ERRATA_A510_2042739``: This applies errata 2042739 workaround to 773*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled only for revisions r0p0, r0p1 and 774*91f16700Schasinglulu r0p2, it is fixed in r0p3. 775*91f16700Schasinglulu 776*91f16700Schasinglulu- ``ERRATA_A510_2041909``: This applies errata 2041909 workaround to 777*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled only for revision r0p2 and is fixed 778*91f16700Schasinglulu in r0p3. The issue is also present in r0p0 and r0p1 but there is no 779*91f16700Schasinglulu workaround for those revisions. 780*91f16700Schasinglulu 781*91f16700Schasinglulu- ``ERRATA_A510_2080326``: This applies errata 2080326 workaround to 782*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled only for revision r0p2 and is 783*91f16700Schasinglulu fixed in r0p3. This issue is also present in r0p0 and r0p1 but there is no 784*91f16700Schasinglulu workaround for those revisions. 785*91f16700Schasinglulu 786*91f16700Schasinglulu- ``ERRATA_A510_2250311``: This applies errata 2250311 workaround to 787*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled for revisions r0p0, r0p1, r0p2, 788*91f16700Schasinglulu r0p3 and r1p0, it is fixed in r1p1. This workaround disables MPMM even if 789*91f16700Schasinglulu ENABLE_MPMM=1. 790*91f16700Schasinglulu 791*91f16700Schasinglulu- ``ERRATA_A510_2218950``: This applies errata 2218950 workaround to 792*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled for revisions r0p0, r0p1, r0p2, 793*91f16700Schasinglulu r0p3 and r1p0, it is fixed in r1p1. 794*91f16700Schasinglulu 795*91f16700Schasinglulu- ``ERRATA_A510_2172148``: This applies errata 2172148 workaround to 796*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled for revisions r0p0, r0p1, r0p2, 797*91f16700Schasinglulu r0p3 and r1p0, it is fixed in r1p1. 798*91f16700Schasinglulu 799*91f16700Schasinglulu- ``ERRATA_A510_2347730``: This applies errata 2347730 workaround to 800*91f16700Schasinglulu Cortex-A510 CPU. This needs to be enabled for revisions r0p0, r0p1, r0p2, 801*91f16700Schasinglulu r0p3, r1p0 and r1p1. It is fixed in r1p2. 802*91f16700Schasinglulu 803*91f16700Schasinglulu- ``ERRATA_A510_2371937``: This applies errata 2371937 workaround to 804*91f16700Schasinglulu Cortex-A510 CPU. This needs to applied for revisions r0p0, r0p1, r0p2, 805*91f16700Schasinglulu r0p3, r1p0, r1p1, and is fixed in r1p2. 806*91f16700Schasinglulu 807*91f16700Schasinglulu- ``ERRATA_A510_2666669``: This applies errata 2666669 workaround to 808*91f16700Schasinglulu Cortex-A510 CPU. This needs to applied for revisions r0p0, r0p1, r0p2, 809*91f16700Schasinglulu r0p3, r1p0, r1p1. It is fixed in r1p2. 810*91f16700Schasinglulu 811*91f16700Schasinglulu- ``ERRATA_A510_2684597``: This applies erratum 2684597 workaround to 812*91f16700Schasinglulu Cortex-A510 CPU. This needs to be applied to revision r0p0, r0p1, r0p2, 813*91f16700Schasinglulu r0p3, r1p0, r1p1 and r1p2. It is fixed in r1p3. 814*91f16700Schasinglulu 815*91f16700SchasingluluFor Cortex-A715, the following errata build flags are defined : 816*91f16700Schasinglulu 817*91f16700Schasinglulu- ``ERRATA_A715_2701951``: This applies erratum 2701951 workaround to Cortex-A715 818*91f16700Schasinglulu CPU and affects system configurations that do not use an ARM interconnect 819*91f16700Schasinglulu IP. This needs to be applied to revisions r0p0, r1p0 and r1p1. It is fixed 820*91f16700Schasinglulu in r1p2. 821*91f16700Schasinglulu 822*91f16700SchasingluluDSU Errata Workarounds 823*91f16700Schasinglulu---------------------- 824*91f16700Schasinglulu 825*91f16700SchasingluluSimilar to CPU errata, TF-A also implements workarounds for DSU (DynamIQ 826*91f16700SchasingluluShared Unit) errata. The DSU errata details can be found in the respective Arm 827*91f16700Schasingluludocumentation: 828*91f16700Schasinglulu 829*91f16700Schasinglulu- `Arm DSU Software Developers Errata Notice`_. 830*91f16700Schasinglulu 831*91f16700SchasingluluEach erratum is identified by an ``ID``, as defined in the DSU errata notice 832*91f16700Schasingluludocument. Thus, the build flags which enable/disable the errata workarounds 833*91f16700Schasingluluhave the format ``ERRATA_DSU_<ID>``. The implementation and application logic 834*91f16700Schasingluluof DSU errata workarounds are similar to `CPU errata workarounds`_. 835*91f16700Schasinglulu 836*91f16700SchasingluluFor DSU errata, the following build flags are defined: 837*91f16700Schasinglulu 838*91f16700Schasinglulu- ``ERRATA_DSU_798953``: This applies errata 798953 workaround for the 839*91f16700Schasinglulu affected DSU configurations. This errata applies only for those DSUs that 840*91f16700Schasinglulu revision is r0p0 (on r0p1 it is fixed). However, please note that this 841*91f16700Schasinglulu workaround results in increased DSU power consumption on idle. 842*91f16700Schasinglulu 843*91f16700Schasinglulu- ``ERRATA_DSU_936184``: This applies errata 936184 workaround for the 844*91f16700Schasinglulu affected DSU configurations. This errata applies only for those DSUs that 845*91f16700Schasinglulu contain the ACP interface **and** the DSU revision is older than r2p0 (on 846*91f16700Schasinglulu r2p0 it is fixed). However, please note that this workaround results in 847*91f16700Schasinglulu increased DSU power consumption on idle. 848*91f16700Schasinglulu 849*91f16700Schasinglulu- ``ERRATA_DSU_2313941``: This applies errata 2313941 workaround for the 850*91f16700Schasinglulu affected DSU configurations. This errata applies for those DSUs with 851*91f16700Schasinglulu revisions r0p0, r1p0, r2p0, r2p1, r3p0, r3p1 and is still open. However, 852*91f16700Schasinglulu please note that this workaround results in increased DSU power consumption 853*91f16700Schasinglulu on idle. 854*91f16700Schasinglulu 855*91f16700SchasingluluCPU Specific optimizations 856*91f16700Schasinglulu-------------------------- 857*91f16700Schasinglulu 858*91f16700SchasingluluThis section describes some of the optimizations allowed by the CPU micro 859*91f16700Schasingluluarchitecture that can be enabled by the platform as desired. 860*91f16700Schasinglulu 861*91f16700Schasinglulu- ``SKIP_A57_L1_FLUSH_PWR_DWN``: This flag enables an optimization in the 862*91f16700Schasinglulu Cortex-A57 cluster power down sequence by not flushing the Level 1 data 863*91f16700Schasinglulu cache. The L1 data cache and the L2 unified cache are inclusive. A flush 864*91f16700Schasinglulu of the L2 by set/way flushes any dirty lines from the L1 as well. This 865*91f16700Schasinglulu is a known safe deviation from the Cortex-A57 TRM defined power down 866*91f16700Schasinglulu sequence. Each Cortex-A57 based platform must make its own decision on 867*91f16700Schasinglulu whether to use the optimization. 868*91f16700Schasinglulu 869*91f16700Schasinglulu- ``A53_DISABLE_NON_TEMPORAL_HINT``: This flag disables the cache non-temporal 870*91f16700Schasinglulu hint. The LDNP/STNP instructions as implemented on Cortex-A53 do not behave 871*91f16700Schasinglulu in a way most programmers expect, and will most probably result in a 872*91f16700Schasinglulu significant speed degradation to any code that employs them. The Armv8-A 873*91f16700Schasinglulu architecture (see Arm DDI 0487A.h, section D3.4.3) allows cores to ignore 874*91f16700Schasinglulu the non-temporal hint and treat LDNP/STNP as LDP/STP instead. Enabling this 875*91f16700Schasinglulu flag enforces this behaviour. This needs to be enabled only for revisions 876*91f16700Schasinglulu <= r0p3 of the CPU and is enabled by default. 877*91f16700Schasinglulu 878*91f16700Schasinglulu- ``A57_DISABLE_NON_TEMPORAL_HINT``: This flag has the same behaviour as 879*91f16700Schasinglulu ``A53_DISABLE_NON_TEMPORAL_HINT`` but for Cortex-A57. This needs to be 880*91f16700Schasinglulu enabled only for revisions <= r1p2 of the CPU and is enabled by default, 881*91f16700Schasinglulu as recommended in section "4.7 Non-Temporal Loads/Stores" of the 882*91f16700Schasinglulu `Cortex-A57 Software Optimization Guide`_. 883*91f16700Schasinglulu 884*91f16700Schasinglulu- ''A57_ENABLE_NON_CACHEABLE_LOAD_FWD'': This flag enables non-cacheable 885*91f16700Schasinglulu streaming enhancement feature for Cortex-A57 CPUs. Platforms can set 886*91f16700Schasinglulu this bit only if their memory system meets the requirement that cache 887*91f16700Schasinglulu line fill requests from the Cortex-A57 processor are atomic. Each 888*91f16700Schasinglulu Cortex-A57 based platform must make its own decision on whether to use 889*91f16700Schasinglulu the optimization. This flag is disabled by default. 890*91f16700Schasinglulu 891*91f16700Schasinglulu- ``NEOVERSE_Nx_EXTERNAL_LLC``: This flag indicates that an external last 892*91f16700Schasinglulu level cache(LLC) is present in the system, and that the DataSource field 893*91f16700Schasinglulu on the master CHI interface indicates when data is returned from the LLC. 894*91f16700Schasinglulu This is used to control how the LL_CACHE* PMU events count. 895*91f16700Schasinglulu Default value is 0 (Disabled). 896*91f16700Schasinglulu 897*91f16700SchasingluluGIC Errata Workarounds 898*91f16700Schasinglulu---------------------- 899*91f16700Schasinglulu- ``GIC600_ERRATA_WA_2384374``: This flag applies part 2 of errata 2384374 900*91f16700Schasinglulu workaround for the affected GIC600 and GIC600-AE implementations. It applies 901*91f16700Schasinglulu to implementations of GIC600 and GIC600-AE with revisions less than or equal 902*91f16700Schasinglulu to r1p6 and r0p2 respectively. If the platform sets GICV3_SUPPORT_GIC600, 903*91f16700Schasinglulu then this flag is enabled; otherwise, it is 0 (Disabled). 904*91f16700Schasinglulu 905*91f16700Schasinglulu-------------- 906*91f16700Schasinglulu 907*91f16700Schasinglulu*Copyright (c) 2014-2023, Arm Limited and Contributors. All rights reserved.* 908*91f16700Schasinglulu 909*91f16700Schasinglulu.. _CVE-2017-5715: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715 910*91f16700Schasinglulu.. _CVE-2018-3639: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3639 911*91f16700Schasinglulu.. _CVE-2022-23960: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23960 912*91f16700Schasinglulu.. _Cortex-A53 MPCore Software Developers Errata Notice: http://infocenter.arm.com/help/topic/com.arm.doc.epm048406/index.html 913*91f16700Schasinglulu.. _Cortex-A57 MPCore Software Developers Errata Notice: http://infocenter.arm.com/help/topic/com.arm.doc.epm049219/index.html 914*91f16700Schasinglulu.. _Cortex-A72 MPCore Software Developers Errata Notice: http://infocenter.arm.com/help/topic/com.arm.doc.epm012079/index.html 915*91f16700Schasinglulu.. _Cortex-A57 Software Optimization Guide: http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimization_Guide_external.pdf 916*91f16700Schasinglulu.. _Arm DSU Software Developers Errata Notice: http://infocenter.arm.com/help/topic/com.arm.doc.epm138168/index.html 917