Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 1 | # |
Manish Pandey | 3880a36 | 2020-01-24 11:54:44 +0000 | [diff] [blame] | 2 | # Copyright (c) 2014-2020, ARM Limited and Contributors. All rights reserved. |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 3 | # |
dp-arm | fa3cf0b | 2017-05-03 09:38:09 +0100 | [diff] [blame] | 4 | # SPDX-License-Identifier: BSD-3-Clause |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 5 | # |
| 6 | |
Soby Mathew | 937488b | 2014-09-22 14:13:34 +0100 | [diff] [blame] | 7 | # Cortex A57 specific optimisation to skip L1 cache flush when |
| 8 | # cluster is powered down. |
| 9 | SKIP_A57_L1_FLUSH_PWR_DWN ?=0 |
| 10 | |
Sandrine Bailleux | d481759 | 2016-01-13 14:57:38 +0000 | [diff] [blame] | 11 | # Flag to disable the cache non-temporal hint. |
| 12 | # It is enabled by default. |
| 13 | A53_DISABLE_NON_TEMPORAL_HINT ?=1 |
| 14 | |
| 15 | # Flag to disable the cache non-temporal hint. |
| 16 | # It is enabled by default. |
| 17 | A57_DISABLE_NON_TEMPORAL_HINT ?=1 |
| 18 | |
Dimitris Papastamos | 446f7f1 | 2017-11-30 14:53:53 +0000 | [diff] [blame] | 19 | WORKAROUND_CVE_2017_5715 ?=1 |
Dimitris Papastamos | e6625ec | 2018-04-05 14:38:26 +0100 | [diff] [blame] | 20 | WORKAROUND_CVE_2018_3639 ?=1 |
Dimitris Papastamos | ba51d9e | 2018-05-16 11:36:14 +0100 | [diff] [blame] | 21 | DYNAMIC_WORKAROUND_CVE_2018_3639 ?=0 |
Dimitris Papastamos | 446f7f1 | 2017-11-30 14:53:53 +0000 | [diff] [blame] | 22 | |
Manish Pandey | 3880a36 | 2020-01-24 11:54:44 +0000 | [diff] [blame] | 23 | # Flag to indicate internal or external Last level cache |
| 24 | # By default internal |
| 25 | NEOVERSE_N1_EXTERNAL_LLC ?=0 |
| 26 | |
Soby Mathew | 937488b | 2014-09-22 14:13:34 +0100 | [diff] [blame] | 27 | # Process SKIP_A57_L1_FLUSH_PWR_DWN flag |
| 28 | $(eval $(call assert_boolean,SKIP_A57_L1_FLUSH_PWR_DWN)) |
| 29 | $(eval $(call add_define,SKIP_A57_L1_FLUSH_PWR_DWN)) |
| 30 | |
Sandrine Bailleux | d481759 | 2016-01-13 14:57:38 +0000 | [diff] [blame] | 31 | # Process A53_DISABLE_NON_TEMPORAL_HINT flag |
| 32 | $(eval $(call assert_boolean,A53_DISABLE_NON_TEMPORAL_HINT)) |
| 33 | $(eval $(call add_define,A53_DISABLE_NON_TEMPORAL_HINT)) |
| 34 | |
| 35 | # Process A57_DISABLE_NON_TEMPORAL_HINT flag |
| 36 | $(eval $(call assert_boolean,A57_DISABLE_NON_TEMPORAL_HINT)) |
| 37 | $(eval $(call add_define,A57_DISABLE_NON_TEMPORAL_HINT)) |
| 38 | |
Dimitris Papastamos | 446f7f1 | 2017-11-30 14:53:53 +0000 | [diff] [blame] | 39 | # Process WORKAROUND_CVE_2017_5715 flag |
| 40 | $(eval $(call assert_boolean,WORKAROUND_CVE_2017_5715)) |
| 41 | $(eval $(call add_define,WORKAROUND_CVE_2017_5715)) |
Soby Mathew | 937488b | 2014-09-22 14:13:34 +0100 | [diff] [blame] | 42 | |
Dimitris Papastamos | e6625ec | 2018-04-05 14:38:26 +0100 | [diff] [blame] | 43 | # Process WORKAROUND_CVE_2018_3639 flag |
| 44 | $(eval $(call assert_boolean,WORKAROUND_CVE_2018_3639)) |
| 45 | $(eval $(call add_define,WORKAROUND_CVE_2018_3639)) |
| 46 | |
Dimitris Papastamos | ba51d9e | 2018-05-16 11:36:14 +0100 | [diff] [blame] | 47 | $(eval $(call assert_boolean,DYNAMIC_WORKAROUND_CVE_2018_3639)) |
| 48 | $(eval $(call add_define,DYNAMIC_WORKAROUND_CVE_2018_3639)) |
| 49 | |
Manish Pandey | 3880a36 | 2020-01-24 11:54:44 +0000 | [diff] [blame] | 50 | $(eval $(call assert_boolean,NEOVERSE_N1_EXTERNAL_LLC)) |
| 51 | $(eval $(call add_define,NEOVERSE_N1_EXTERNAL_LLC)) |
| 52 | |
Dimitris Papastamos | ba51d9e | 2018-05-16 11:36:14 +0100 | [diff] [blame] | 53 | ifneq (${DYNAMIC_WORKAROUND_CVE_2018_3639},0) |
| 54 | ifeq (${WORKAROUND_CVE_2018_3639},0) |
| 55 | $(error "Error: WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1") |
| 56 | endif |
| 57 | endif |
| 58 | |
Sandrine Bailleux | afa8a78 | 2016-04-14 12:59:42 +0100 | [diff] [blame] | 59 | # CPU Errata Build flags. |
| 60 | # These should be enabled by the platform if the erratum workaround needs to be |
| 61 | # applied. |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 62 | |
Joel Hutton | 26d1676 | 2019-04-10 12:52:52 +0100 | [diff] [blame] | 63 | # Flag to apply erratum 794073 workaround when disabling mmu. |
| 64 | ERRATA_A9_794073 ?=0 |
| 65 | |
Ambroise Vincent | d4a51eb | 2019-03-04 16:56:26 +0000 | [diff] [blame] | 66 | # Flag to apply erratum 816470 workaround during power down. This erratum |
| 67 | # applies only to revision >= r3p0 of the Cortex A15 cpu. |
| 68 | ERRATA_A15_816470 ?=0 |
| 69 | |
Ambroise Vincent | 68b3812 | 2019-03-05 09:54:21 +0000 | [diff] [blame] | 70 | # Flag to apply erratum 827671 workaround during reset. This erratum applies |
| 71 | # only to revision >= r3p0 of the Cortex A15 cpu. |
| 72 | ERRATA_A15_827671 ?=0 |
| 73 | |
Ambroise Vincent | 8cf9eef | 2019-02-28 16:23:53 +0000 | [diff] [blame] | 74 | # Flag to apply erratum 852421 workaround during reset. This erratum applies |
| 75 | # only to revision <= r1p2 of the Cortex A17 cpu. |
| 76 | ERRATA_A17_852421 ?=0 |
| 77 | |
Ambroise Vincent | fa5c951 | 2019-03-04 13:20:56 +0000 | [diff] [blame] | 78 | # Flag to apply erratum 852423 workaround during reset. This erratum applies |
| 79 | # only to revision <= r1p2 of the Cortex A17 cpu. |
| 80 | ERRATA_A17_852423 ?=0 |
| 81 | |
Louis Mayencourt | 8a06127 | 2019-04-05 16:25:25 +0100 | [diff] [blame] | 82 | # Flag to apply erratum 855472 workaround during reset. This erratum applies |
| 83 | # only to revision r0p0 of the Cortex A35 cpu. |
| 84 | ERRATA_A35_855472 ?=0 |
| 85 | |
Ambroise Vincent | f5fdfbc | 2019-02-21 14:16:24 +0000 | [diff] [blame] | 86 | # Flag to apply erratum 819472 workaround during reset. This erratum applies |
| 87 | # only to revision <= r0p1 of the Cortex A53 cpu. |
| 88 | ERRATA_A53_819472 ?=0 |
| 89 | |
| 90 | # Flag to apply erratum 824069 workaround during reset. This erratum applies |
| 91 | # only to revision <= r0p2 of the Cortex A53 cpu. |
| 92 | ERRATA_A53_824069 ?=0 |
| 93 | |
Sandrine Bailleux | afa8a78 | 2016-04-14 12:59:42 +0100 | [diff] [blame] | 94 | # Flag to apply erratum 826319 workaround during reset. This erratum applies |
| 95 | # only to revision <= r0p2 of the Cortex A53 cpu. |
developer | 4fceaca | 2015-07-29 20:55:31 +0800 | [diff] [blame] | 96 | ERRATA_A53_826319 ?=0 |
| 97 | |
Ambroise Vincent | f5fdfbc | 2019-02-21 14:16:24 +0000 | [diff] [blame] | 98 | # Flag to apply erratum 827319 workaround during reset. This erratum applies |
| 99 | # only to revision <= r0p2 of the Cortex A53 cpu. |
| 100 | ERRATA_A53_827319 ?=0 |
| 101 | |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 102 | # Flag to apply erratum 835769 workaround at compile and link time. This |
| 103 | # erratum applies to revision <= r0p4 of the Cortex A53 cpu. Enabling this |
| 104 | # workaround can lead the linker to create "*.stub" sections. |
| 105 | ERRATA_A53_835769 ?=0 |
| 106 | |
Sandrine Bailleux | afa8a78 | 2016-04-14 12:59:42 +0100 | [diff] [blame] | 107 | # Flag to apply erratum 836870 workaround during reset. This erratum applies |
| 108 | # only to revision <= r0p3 of the Cortex A53 cpu. From r0p4 and onwards, this |
Douglas Raillard | c847f66 | 2017-02-15 17:38:43 +0000 | [diff] [blame] | 109 | # erratum workaround is enabled by default in hardware. |
developer | 4fceaca | 2015-07-29 20:55:31 +0800 | [diff] [blame] | 110 | ERRATA_A53_836870 ?=0 |
| 111 | |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 112 | # Flag to apply erratum 843419 workaround at link time. |
| 113 | # This erratum applies to revision <= r0p4 of the Cortex A53 cpu. Enabling this |
| 114 | # workaround could lead the linker to emit "*.stub" sections which are 4kB |
| 115 | # aligned. |
| 116 | ERRATA_A53_843419 ?=0 |
| 117 | |
Andre Przywara | 00eefd9 | 2016-10-06 16:54:53 +0100 | [diff] [blame] | 118 | # Flag to apply errata 855873 during reset. This errata applies to all |
| 119 | # revisions of the Cortex A53 CPU, but this firmware workaround only works |
| 120 | # for revisions r0p3 and higher. Earlier revisions are taken care |
| 121 | # of by the rich OS. |
| 122 | ERRATA_A53_855873 ?=0 |
| 123 | |
Ambroise Vincent | 7927fa0 | 2019-02-21 16:20:43 +0000 | [diff] [blame] | 124 | # Flag to apply erratum 768277 workaround during reset. This erratum applies |
| 125 | # only to revision r0p0 of the Cortex A55 cpu. |
| 126 | ERRATA_A55_768277 ?=0 |
| 127 | |
Ambroise Vincent | 6f31960 | 2019-02-21 16:25:37 +0000 | [diff] [blame] | 128 | # Flag to apply erratum 778703 workaround during reset. This erratum applies |
| 129 | # only to revision r0p0 of the Cortex A55 cpu. |
| 130 | ERRATA_A55_778703 ?=0 |
| 131 | |
Ambroise Vincent | 6a77f05 | 2019-02-21 16:27:34 +0000 | [diff] [blame] | 132 | # Flag to apply erratum 798797 workaround during reset. This erratum applies |
| 133 | # only to revision r0p0 of the Cortex A55 cpu. |
| 134 | ERRATA_A55_798797 ?=0 |
| 135 | |
Ambroise Vincent | dd961f7 | 2019-02-21 16:29:16 +0000 | [diff] [blame] | 136 | # Flag to apply erratum 846532 workaround during reset. This erratum applies |
| 137 | # only to revision <= r0p1 of the Cortex A55 cpu. |
| 138 | ERRATA_A55_846532 ?=0 |
| 139 | |
Ambroise Vincent | a1d6446 | 2019-02-21 16:29:50 +0000 | [diff] [blame] | 140 | # Flag to apply erratum 903758 workaround during reset. This erratum applies |
| 141 | # only to revision <= r0p1 of the Cortex A55 cpu. |
| 142 | ERRATA_A55_903758 ?=0 |
| 143 | |
Ambroise Vincent | b72fe7a | 2019-05-28 09:52:48 +0100 | [diff] [blame] | 144 | # Flag to apply erratum 1221012 workaround during reset. This erratum applies |
| 145 | # only to revision <= r1p0 of the Cortex A55 cpu. |
| 146 | ERRATA_A55_1221012 ?=0 |
| 147 | |
Sandrine Bailleux | afa8a78 | 2016-04-14 12:59:42 +0100 | [diff] [blame] | 148 | # Flag to apply erratum 806969 workaround during reset. This erratum applies |
| 149 | # only to revision r0p0 of the Cortex A57 cpu. |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 150 | ERRATA_A57_806969 ?=0 |
| 151 | |
Antonio Nino Diaz | 3f13c35 | 2017-02-24 11:39:22 +0000 | [diff] [blame] | 152 | # Flag to apply erratum 813419 workaround during reset. This erratum applies |
| 153 | # only to revision r0p0 of the Cortex A57 cpu. |
| 154 | ERRATA_A57_813419 ?=0 |
| 155 | |
Sandrine Bailleux | afa8a78 | 2016-04-14 12:59:42 +0100 | [diff] [blame] | 156 | # Flag to apply erratum 813420 workaround during reset. This erratum applies |
| 157 | # only to revision r0p0 of the Cortex A57 cpu. |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 158 | ERRATA_A57_813420 ?=0 |
| 159 | |
Ambroise Vincent | 1b0db76 | 2019-02-21 16:35:07 +0000 | [diff] [blame] | 160 | # Flag to apply erratum 814670 workaround during reset. This erratum applies |
| 161 | # only to revision r0p0 of the Cortex A57 cpu. |
| 162 | ERRATA_A57_814670 ?=0 |
| 163 | |
Ambroise Vincent | aa2c029 | 2019-02-21 16:35:49 +0000 | [diff] [blame] | 164 | # Flag to apply erratum 817169 workaround during power down. This erratum |
| 165 | # applies only to revision <= r0p1 of the Cortex A57 cpu. |
| 166 | ERRATA_A57_817169 ?=0 |
| 167 | |
Sandrine Bailleux | a7e0c53 | 2016-04-14 13:32:31 +0100 | [diff] [blame] | 168 | # Flag to apply erratum 826974 workaround during reset. This erratum applies |
| 169 | # only to revision <= r1p1 of the Cortex A57 cpu. |
| 170 | ERRATA_A57_826974 ?=0 |
| 171 | |
Sandrine Bailleux | adcbd55 | 2016-04-14 14:24:13 +0100 | [diff] [blame] | 172 | # Flag to apply erratum 826977 workaround during reset. This erratum applies |
| 173 | # only to revision <= r1p1 of the Cortex A57 cpu. |
| 174 | ERRATA_A57_826977 ?=0 |
| 175 | |
Sandrine Bailleux | c11116f | 2016-04-14 14:04:48 +0100 | [diff] [blame] | 176 | # Flag to apply erratum 828024 workaround during reset. This erratum applies |
| 177 | # only to revision <= r1p1 of the Cortex A57 cpu. |
| 178 | ERRATA_A57_828024 ?=0 |
| 179 | |
Sandrine Bailleux | 48cbe85 | 2016-04-14 14:18:07 +0100 | [diff] [blame] | 180 | # Flag to apply erratum 829520 workaround during reset. This erratum applies |
| 181 | # only to revision <= r1p2 of the Cortex A57 cpu. |
| 182 | ERRATA_A57_829520 ?=0 |
| 183 | |
Sandrine Bailleux | 143ef1a | 2016-04-21 11:10:52 +0100 | [diff] [blame] | 184 | # Flag to apply erratum 833471 workaround during reset. This erratum applies |
| 185 | # only to revision <= r1p2 of the Cortex A57 cpu. |
| 186 | ERRATA_A57_833471 ?=0 |
| 187 | |
Eleanor Bonnici | 0c9bd27 | 2017-08-02 16:35:04 +0100 | [diff] [blame] | 188 | # Flag to apply erratum 855972 workaround during reset. This erratum applies |
| 189 | # only to revision <= r1p3 of the Cortex A57 cpu. |
| 190 | ERRATA_A57_859972 ?=0 |
| 191 | |
Eleanor Bonnici | c3b4ca1 | 2017-08-02 18:33:41 +0100 | [diff] [blame] | 192 | # Flag to apply erratum 855971 workaround during reset. This erratum applies |
| 193 | # only to revision <= r0p3 of the Cortex A72 cpu. |
| 194 | ERRATA_A72_859971 ?=0 |
| 195 | |
Louis Mayencourt | d69722c | 2019-02-27 14:24:16 +0000 | [diff] [blame] | 196 | # Flag to apply erratum 852427 workaround during reset. This erratum applies |
| 197 | # only to revision r0p0 of the Cortex A73 cpu. |
| 198 | ERRATA_A73_852427 ?=0 |
| 199 | |
Louis Mayencourt | 4405de6 | 2019-02-21 16:38:16 +0000 | [diff] [blame] | 200 | # Flag to apply erratum 855423 workaround during reset. This erratum applies |
| 201 | # only to revision <= r0p1 of the Cortex A73 cpu. |
| 202 | ERRATA_A73_855423 ?=0 |
| 203 | |
Louis Mayencourt | 78a0aed | 2019-02-20 12:11:41 +0000 | [diff] [blame] | 204 | # Flag to apply erratum 764081 workaround during reset. This erratum applies |
| 205 | # only to revision <= r0p0 of the Cortex A75 cpu. |
| 206 | ERRATA_A75_764081 ?=0 |
| 207 | |
Louis Mayencourt | 8d86870 | 2019-02-25 14:57:57 +0000 | [diff] [blame] | 208 | # Flag to apply erratum 790748 workaround during reset. This erratum applies |
| 209 | # only to revision <= r0p0 of the Cortex A75 cpu. |
| 210 | ERRATA_A75_790748 ?=0 |
| 211 | |
Louis Mayencourt | 59fa218 | 2019-02-25 15:17:44 +0000 | [diff] [blame] | 212 | # Flag to apply erratum 1073348 workaround during reset. This erratum applies |
| 213 | # only to revision <= r1p0 of the Cortex A76 cpu. |
| 214 | ERRATA_A76_1073348 ?=0 |
| 215 | |
Louis Mayencourt | 0992447 | 2019-02-21 17:35:07 +0000 | [diff] [blame] | 216 | # Flag to apply erratum 1130799 workaround during reset. This erratum applies |
| 217 | # only to revision <= r2p0 of the Cortex A76 cpu. |
| 218 | ERRATA_A76_1130799 ?=0 |
| 219 | |
Louis Mayencourt | adda9d4 | 2019-02-25 11:37:38 +0000 | [diff] [blame] | 220 | # Flag to apply erratum 1220197 workaround during reset. This erratum applies |
| 221 | # only to revision <= r2p0 of the Cortex A76 cpu. |
| 222 | ERRATA_A76_1220197 ?=0 |
| 223 | |
Soby Mathew | 1d3ba1c | 2019-05-01 09:43:18 +0100 | [diff] [blame] | 224 | # Flag to apply erratum 1257314 workaround during reset. This erratum applies |
| 225 | # only to revision <= r3p0 of the Cortex A76 cpu. |
| 226 | ERRATA_A76_1257314 ?=0 |
| 227 | |
| 228 | # Flag to apply erratum 1262606 workaround during reset. This erratum applies |
| 229 | # only to revision <= r3p0 of the Cortex A76 cpu. |
| 230 | ERRATA_A76_1262606 ?=0 |
| 231 | |
| 232 | # Flag to apply erratum 1262888 workaround during reset. This erratum applies |
| 233 | # only to revision <= r3p0 of the Cortex A76 cpu. |
| 234 | ERRATA_A76_1262888 ?=0 |
| 235 | |
| 236 | # Flag to apply erratum 1275112 workaround during reset. This erratum applies |
| 237 | # only to revision <= r3p0 of the Cortex A76 cpu. |
| 238 | ERRATA_A76_1275112 ?=0 |
| 239 | |
Soby Mathew | 16d006b | 2019-05-03 13:17:56 +0100 | [diff] [blame] | 240 | # Flag to apply erratum 1286807 workaround during reset. This erratum applies |
| 241 | # only to revision <= r3p0 of the Cortex A76 cpu. |
| 242 | ERRATA_A76_1286807 ?=0 |
| 243 | |
Madhukar Pappireddy | 4efede7 | 2019-12-18 15:56:27 -0600 | [diff] [blame] | 244 | # Flag to apply erratum 1688305 workaround during reset. This erratum applies |
| 245 | # to revisions r0p0 - r1p0 of the Hercules cpu. |
| 246 | ERRATA_HERCULES_1688305 ?=0 |
| 247 | |
Dimitris Papastamos | 7ca21db | 2018-03-26 16:46:01 +0100 | [diff] [blame] | 248 | # Flag to apply T32 CLREX workaround during reset. This erratum applies |
John Tsichritzis | 56369c1 | 2019-02-19 13:49:06 +0000 | [diff] [blame] | 249 | # only to r0p0 and r1p0 of the Neoverse N1 cpu. |
laurenw-arm | c0763b6 | 2020-01-22 13:30:39 -0600 | [diff] [blame] | 250 | ERRATA_N1_1043202 ?=0 |
Dimitris Papastamos | 7ca21db | 2018-03-26 16:46:01 +0100 | [diff] [blame] | 251 | |
lauwal01 | bd555f4 | 2019-06-24 11:23:50 -0500 | [diff] [blame] | 252 | # Flag to apply erratum 1073348 workaround during reset. This erratum applies |
| 253 | # only to revision r0p0 and r1p0 of the Neoverse N1 cpu. |
| 254 | ERRATA_N1_1073348 ?=0 |
| 255 | |
lauwal01 | 363ee3c | 2019-06-24 11:28:34 -0500 | [diff] [blame] | 256 | # Flag to apply erratum 1130799 workaround during reset. This erratum applies |
| 257 | # only to revision <= r2p0 of the Neoverse N1 cpu. |
| 258 | ERRATA_N1_1130799 ?=0 |
| 259 | |
lauwal01 | f2adb13 | 2019-06-24 11:32:40 -0500 | [diff] [blame] | 260 | # Flag to apply erratum 1165347 workaround during reset. This erratum applies |
| 261 | # only to revision <= r2p0 of the Neoverse N1 cpu. |
| 262 | ERRATA_N1_1165347 ?=0 |
| 263 | |
lauwal01 | e159044 | 2019-06-24 11:35:37 -0500 | [diff] [blame] | 264 | # Flag to apply erratum 1207823 workaround during reset. This erratum applies |
| 265 | # only to revision <= r2p0 of the Neoverse N1 cpu. |
| 266 | ERRATA_N1_1207823 ?=0 |
| 267 | |
lauwal01 | 197f14c | 2019-06-24 11:38:53 -0500 | [diff] [blame] | 268 | # Flag to apply erratum 1220197 workaround during reset. This erratum applies |
| 269 | # only to revision <= r2p0 of the Neoverse N1 cpu. |
| 270 | ERRATA_N1_1220197 ?=0 |
| 271 | |
lauwal01 | 07c2a23 | 2019-06-24 11:42:02 -0500 | [diff] [blame] | 272 | # Flag to apply erratum 1257314 workaround during reset. This erratum applies |
| 273 | # only to revision <= r3p0 of the Neoverse N1 cpu. |
| 274 | ERRATA_N1_1257314 ?=0 |
| 275 | |
lauwal01 | 42771af | 2019-06-24 11:44:58 -0500 | [diff] [blame] | 276 | # Flag to apply erratum 1262606 workaround during reset. This erratum applies |
| 277 | # only to revision <= r3p0 of the Neoverse N1 cpu. |
| 278 | ERRATA_N1_1262606 ?=0 |
| 279 | |
lauwal01 | 00396bf | 2019-06-24 11:47:30 -0500 | [diff] [blame] | 280 | # Flag to apply erratum 1262888 workaround during reset. This erratum applies |
| 281 | # only to revision <= r3p0 of the Neoverse N1 cpu. |
| 282 | ERRATA_N1_1262888 ?=0 |
| 283 | |
lauwal01 | 644b6ed | 2019-06-24 11:49:01 -0500 | [diff] [blame] | 284 | # Flag to apply erratum 1275112 workaround during reset. This erratum applies |
| 285 | # only to revision <= r3p0 of the Neoverse N1 cpu. |
| 286 | ERRATA_N1_1275112 ?=0 |
| 287 | |
Andre Przywara | b934740 | 2019-05-20 14:57:06 +0100 | [diff] [blame] | 288 | # Flag to apply erratum 1315703 workaround during reset. This erratum applies |
| 289 | # to revisions before r3p1 of the Neoverse N1 cpu. |
laurenw-arm | c0763b6 | 2020-01-22 13:30:39 -0600 | [diff] [blame] | 290 | ERRATA_N1_1315703 ?=0 |
Andre Przywara | b934740 | 2019-05-20 14:57:06 +0100 | [diff] [blame] | 291 | |
laurenw-arm | 94accd3 | 2019-08-20 15:51:24 -0500 | [diff] [blame] | 292 | # Flag to apply erratum 1542419 workaround during reset. This erratum applies |
| 293 | # to revisions r3p0 - r4p0 of the Neoverse N1 cpu. |
| 294 | ERRATA_N1_1542419 ?=0 |
| 295 | |
Louis Mayencourt | 4498b15 | 2019-04-09 16:29:01 +0100 | [diff] [blame] | 296 | # Flag to apply DSU erratum 798953. This erratum applies to DSUs revision r0p0. |
| 297 | # Applying the workaround results in higher DSU power consumption on idle. |
| 298 | ERRATA_DSU_798953 ?=0 |
| 299 | |
John Tsichritzis | 4daa1de | 2018-07-23 09:11:59 +0100 | [diff] [blame] | 300 | # Flag to apply DSU erratum 936184. This erratum applies to DSUs containing |
| 301 | # the ACP interface and revision < r2p0. Applying the workaround results in |
| 302 | # higher DSU power consumption on idle. |
| 303 | ERRATA_DSU_936184 ?=0 |
| 304 | |
Joel Hutton | 26d1676 | 2019-04-10 12:52:52 +0100 | [diff] [blame] | 305 | # Process ERRATA_A9_794073 flag |
| 306 | $(eval $(call assert_boolean,ERRATA_A9_794073)) |
| 307 | $(eval $(call add_define,ERRATA_A9_794073)) |
| 308 | |
Ambroise Vincent | d4a51eb | 2019-03-04 16:56:26 +0000 | [diff] [blame] | 309 | # Process ERRATA_A15_816470 flag |
| 310 | $(eval $(call assert_boolean,ERRATA_A15_816470)) |
| 311 | $(eval $(call add_define,ERRATA_A15_816470)) |
| 312 | |
Ambroise Vincent | 68b3812 | 2019-03-05 09:54:21 +0000 | [diff] [blame] | 313 | # Process ERRATA_A15_827671 flag |
| 314 | $(eval $(call assert_boolean,ERRATA_A15_827671)) |
| 315 | $(eval $(call add_define,ERRATA_A15_827671)) |
| 316 | |
Ambroise Vincent | 8cf9eef | 2019-02-28 16:23:53 +0000 | [diff] [blame] | 317 | # Process ERRATA_A17_852421 flag |
| 318 | $(eval $(call assert_boolean,ERRATA_A17_852421)) |
| 319 | $(eval $(call add_define,ERRATA_A17_852421)) |
| 320 | |
Ambroise Vincent | fa5c951 | 2019-03-04 13:20:56 +0000 | [diff] [blame] | 321 | # Process ERRATA_A17_852423 flag |
| 322 | $(eval $(call assert_boolean,ERRATA_A17_852423)) |
| 323 | $(eval $(call add_define,ERRATA_A17_852423)) |
| 324 | |
Louis Mayencourt | 8a06127 | 2019-04-05 16:25:25 +0100 | [diff] [blame] | 325 | # Process ERRATA_A35_855472 flag |
| 326 | $(eval $(call assert_boolean,ERRATA_A35_855472)) |
| 327 | $(eval $(call add_define,ERRATA_A35_855472)) |
| 328 | |
Ambroise Vincent | f5fdfbc | 2019-02-21 14:16:24 +0000 | [diff] [blame] | 329 | # Process ERRATA_A53_819472 flag |
| 330 | $(eval $(call assert_boolean,ERRATA_A53_819472)) |
| 331 | $(eval $(call add_define,ERRATA_A53_819472)) |
| 332 | |
| 333 | # Process ERRATA_A53_824069 flag |
| 334 | $(eval $(call assert_boolean,ERRATA_A53_824069)) |
| 335 | $(eval $(call add_define,ERRATA_A53_824069)) |
| 336 | |
developer | 4fceaca | 2015-07-29 20:55:31 +0800 | [diff] [blame] | 337 | # Process ERRATA_A53_826319 flag |
| 338 | $(eval $(call assert_boolean,ERRATA_A53_826319)) |
| 339 | $(eval $(call add_define,ERRATA_A53_826319)) |
| 340 | |
Ambroise Vincent | f5fdfbc | 2019-02-21 14:16:24 +0000 | [diff] [blame] | 341 | # Process ERRATA_A53_827319 flag |
| 342 | $(eval $(call assert_boolean,ERRATA_A53_827319)) |
| 343 | $(eval $(call add_define,ERRATA_A53_827319)) |
| 344 | |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 345 | # Process ERRATA_A53_835769 flag |
| 346 | $(eval $(call assert_boolean,ERRATA_A53_835769)) |
| 347 | $(eval $(call add_define,ERRATA_A53_835769)) |
| 348 | |
developer | 4fceaca | 2015-07-29 20:55:31 +0800 | [diff] [blame] | 349 | # Process ERRATA_A53_836870 flag |
| 350 | $(eval $(call assert_boolean,ERRATA_A53_836870)) |
| 351 | $(eval $(call add_define,ERRATA_A53_836870)) |
| 352 | |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 353 | # Process ERRATA_A53_843419 flag |
| 354 | $(eval $(call assert_boolean,ERRATA_A53_843419)) |
| 355 | $(eval $(call add_define,ERRATA_A53_843419)) |
| 356 | |
Andre Przywara | 00eefd9 | 2016-10-06 16:54:53 +0100 | [diff] [blame] | 357 | # Process ERRATA_A53_855873 flag |
| 358 | $(eval $(call assert_boolean,ERRATA_A53_855873)) |
| 359 | $(eval $(call add_define,ERRATA_A53_855873)) |
| 360 | |
Ambroise Vincent | 7927fa0 | 2019-02-21 16:20:43 +0000 | [diff] [blame] | 361 | # Process ERRATA_A55_768277 flag |
| 362 | $(eval $(call assert_boolean,ERRATA_A55_768277)) |
| 363 | $(eval $(call add_define,ERRATA_A55_768277)) |
| 364 | |
Ambroise Vincent | 6f31960 | 2019-02-21 16:25:37 +0000 | [diff] [blame] | 365 | # Process ERRATA_A55_778703 flag |
| 366 | $(eval $(call assert_boolean,ERRATA_A55_778703)) |
| 367 | $(eval $(call add_define,ERRATA_A55_778703)) |
| 368 | |
Ambroise Vincent | 6a77f05 | 2019-02-21 16:27:34 +0000 | [diff] [blame] | 369 | # Process ERRATA_A55_798797 flag |
| 370 | $(eval $(call assert_boolean,ERRATA_A55_798797)) |
| 371 | $(eval $(call add_define,ERRATA_A55_798797)) |
| 372 | |
Ambroise Vincent | dd961f7 | 2019-02-21 16:29:16 +0000 | [diff] [blame] | 373 | # Process ERRATA_A55_846532 flag |
| 374 | $(eval $(call assert_boolean,ERRATA_A55_846532)) |
| 375 | $(eval $(call add_define,ERRATA_A55_846532)) |
| 376 | |
Ambroise Vincent | a1d6446 | 2019-02-21 16:29:50 +0000 | [diff] [blame] | 377 | # Process ERRATA_A55_903758 flag |
| 378 | $(eval $(call assert_boolean,ERRATA_A55_903758)) |
| 379 | $(eval $(call add_define,ERRATA_A55_903758)) |
| 380 | |
Ambroise Vincent | b72fe7a | 2019-05-28 09:52:48 +0100 | [diff] [blame] | 381 | # Process ERRATA_A55_1221012 flag |
| 382 | $(eval $(call assert_boolean,ERRATA_A55_1221012)) |
| 383 | $(eval $(call add_define,ERRATA_A55_1221012)) |
| 384 | |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 385 | # Process ERRATA_A57_806969 flag |
| 386 | $(eval $(call assert_boolean,ERRATA_A57_806969)) |
| 387 | $(eval $(call add_define,ERRATA_A57_806969)) |
| 388 | |
Antonio Nino Diaz | 3f13c35 | 2017-02-24 11:39:22 +0000 | [diff] [blame] | 389 | # Process ERRATA_A57_813419 flag |
| 390 | $(eval $(call assert_boolean,ERRATA_A57_813419)) |
| 391 | $(eval $(call add_define,ERRATA_A57_813419)) |
| 392 | |
Soby Mathew | 802f865 | 2014-08-14 16:19:29 +0100 | [diff] [blame] | 393 | # Process ERRATA_A57_813420 flag |
| 394 | $(eval $(call assert_boolean,ERRATA_A57_813420)) |
| 395 | $(eval $(call add_define,ERRATA_A57_813420)) |
Sandrine Bailleux | a7e0c53 | 2016-04-14 13:32:31 +0100 | [diff] [blame] | 396 | |
Ambroise Vincent | 1b0db76 | 2019-02-21 16:35:07 +0000 | [diff] [blame] | 397 | # Process ERRATA_A57_814670 flag |
| 398 | $(eval $(call assert_boolean,ERRATA_A57_814670)) |
| 399 | $(eval $(call add_define,ERRATA_A57_814670)) |
| 400 | |
Ambroise Vincent | aa2c029 | 2019-02-21 16:35:49 +0000 | [diff] [blame] | 401 | # Process ERRATA_A57_817169 flag |
| 402 | $(eval $(call assert_boolean,ERRATA_A57_817169)) |
| 403 | $(eval $(call add_define,ERRATA_A57_817169)) |
| 404 | |
Sandrine Bailleux | a7e0c53 | 2016-04-14 13:32:31 +0100 | [diff] [blame] | 405 | # Process ERRATA_A57_826974 flag |
| 406 | $(eval $(call assert_boolean,ERRATA_A57_826974)) |
| 407 | $(eval $(call add_define,ERRATA_A57_826974)) |
Sandrine Bailleux | c11116f | 2016-04-14 14:04:48 +0100 | [diff] [blame] | 408 | |
Sandrine Bailleux | adcbd55 | 2016-04-14 14:24:13 +0100 | [diff] [blame] | 409 | # Process ERRATA_A57_826977 flag |
| 410 | $(eval $(call assert_boolean,ERRATA_A57_826977)) |
| 411 | $(eval $(call add_define,ERRATA_A57_826977)) |
| 412 | |
Sandrine Bailleux | c11116f | 2016-04-14 14:04:48 +0100 | [diff] [blame] | 413 | # Process ERRATA_A57_828024 flag |
| 414 | $(eval $(call assert_boolean,ERRATA_A57_828024)) |
| 415 | $(eval $(call add_define,ERRATA_A57_828024)) |
Sandrine Bailleux | 48cbe85 | 2016-04-14 14:18:07 +0100 | [diff] [blame] | 416 | |
| 417 | # Process ERRATA_A57_829520 flag |
| 418 | $(eval $(call assert_boolean,ERRATA_A57_829520)) |
| 419 | $(eval $(call add_define,ERRATA_A57_829520)) |
Sandrine Bailleux | 143ef1a | 2016-04-21 11:10:52 +0100 | [diff] [blame] | 420 | |
| 421 | # Process ERRATA_A57_833471 flag |
| 422 | $(eval $(call assert_boolean,ERRATA_A57_833471)) |
| 423 | $(eval $(call add_define,ERRATA_A57_833471)) |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 424 | |
Eleanor Bonnici | 0c9bd27 | 2017-08-02 16:35:04 +0100 | [diff] [blame] | 425 | # Process ERRATA_A57_859972 flag |
| 426 | $(eval $(call assert_boolean,ERRATA_A57_859972)) |
| 427 | $(eval $(call add_define,ERRATA_A57_859972)) |
| 428 | |
Eleanor Bonnici | c3b4ca1 | 2017-08-02 18:33:41 +0100 | [diff] [blame] | 429 | # Process ERRATA_A72_859971 flag |
| 430 | $(eval $(call assert_boolean,ERRATA_A72_859971)) |
| 431 | $(eval $(call add_define,ERRATA_A72_859971)) |
| 432 | |
Louis Mayencourt | d69722c | 2019-02-27 14:24:16 +0000 | [diff] [blame] | 433 | # Process ERRATA_A73_852427 flag |
| 434 | $(eval $(call assert_boolean,ERRATA_A73_852427)) |
| 435 | $(eval $(call add_define,ERRATA_A73_852427)) |
| 436 | |
Louis Mayencourt | 4405de6 | 2019-02-21 16:38:16 +0000 | [diff] [blame] | 437 | # Process ERRATA_A73_855423 flag |
| 438 | $(eval $(call assert_boolean,ERRATA_A73_855423)) |
| 439 | $(eval $(call add_define,ERRATA_A73_855423)) |
| 440 | |
Louis Mayencourt | 78a0aed | 2019-02-20 12:11:41 +0000 | [diff] [blame] | 441 | # Process ERRATA_A75_764081 flag |
| 442 | $(eval $(call assert_boolean,ERRATA_A75_764081)) |
| 443 | $(eval $(call add_define,ERRATA_A75_764081)) |
| 444 | |
Louis Mayencourt | 8d86870 | 2019-02-25 14:57:57 +0000 | [diff] [blame] | 445 | # Process ERRATA_A75_790748 flag |
| 446 | $(eval $(call assert_boolean,ERRATA_A75_790748)) |
| 447 | $(eval $(call add_define,ERRATA_A75_790748)) |
| 448 | |
Louis Mayencourt | 59fa218 | 2019-02-25 15:17:44 +0000 | [diff] [blame] | 449 | # Process ERRATA_A76_1073348 flag |
| 450 | $(eval $(call assert_boolean,ERRATA_A76_1073348)) |
| 451 | $(eval $(call add_define,ERRATA_A76_1073348)) |
| 452 | |
Louis Mayencourt | 0992447 | 2019-02-21 17:35:07 +0000 | [diff] [blame] | 453 | # Process ERRATA_A76_1130799 flag |
| 454 | $(eval $(call assert_boolean,ERRATA_A76_1130799)) |
| 455 | $(eval $(call add_define,ERRATA_A76_1130799)) |
| 456 | |
Louis Mayencourt | adda9d4 | 2019-02-25 11:37:38 +0000 | [diff] [blame] | 457 | # Process ERRATA_A76_1220197 flag |
| 458 | $(eval $(call assert_boolean,ERRATA_A76_1220197)) |
| 459 | $(eval $(call add_define,ERRATA_A76_1220197)) |
| 460 | |
Soby Mathew | 1d3ba1c | 2019-05-01 09:43:18 +0100 | [diff] [blame] | 461 | # Process ERRATA_A76_1257314 flag |
| 462 | $(eval $(call assert_boolean,ERRATA_A76_1257314)) |
| 463 | $(eval $(call add_define,ERRATA_A76_1257314)) |
| 464 | |
| 465 | # Process ERRATA_A76_1262606 flag |
| 466 | $(eval $(call assert_boolean,ERRATA_A76_1262606)) |
| 467 | $(eval $(call add_define,ERRATA_A76_1262606)) |
| 468 | |
| 469 | # Process ERRATA_A76_1262888 flag |
| 470 | $(eval $(call assert_boolean,ERRATA_A76_1262888)) |
| 471 | $(eval $(call add_define,ERRATA_A76_1262888)) |
| 472 | |
| 473 | # Process ERRATA_A76_1275112 flag |
| 474 | $(eval $(call assert_boolean,ERRATA_A76_1275112)) |
| 475 | $(eval $(call add_define,ERRATA_A76_1275112)) |
| 476 | |
Soby Mathew | 16d006b | 2019-05-03 13:17:56 +0100 | [diff] [blame] | 477 | # Process ERRATA_A76_1286807 flag |
| 478 | $(eval $(call assert_boolean,ERRATA_A76_1286807)) |
| 479 | $(eval $(call add_define,ERRATA_A76_1286807)) |
| 480 | |
Madhukar Pappireddy | 4efede7 | 2019-12-18 15:56:27 -0600 | [diff] [blame] | 481 | # Process ERRATA_HERCULES_1688305 flag |
| 482 | $(eval $(call assert_boolean,ERRATA_HERCULES_1688305)) |
| 483 | $(eval $(call add_define,ERRATA_HERCULES_1688305)) |
| 484 | |
John Tsichritzis | 56369c1 | 2019-02-19 13:49:06 +0000 | [diff] [blame] | 485 | # Process ERRATA_N1_1043202 flag |
| 486 | $(eval $(call assert_boolean,ERRATA_N1_1043202)) |
| 487 | $(eval $(call add_define,ERRATA_N1_1043202)) |
Dimitris Papastamos | 7ca21db | 2018-03-26 16:46:01 +0100 | [diff] [blame] | 488 | |
lauwal01 | bd555f4 | 2019-06-24 11:23:50 -0500 | [diff] [blame] | 489 | # Process ERRATA_N1_1073348 flag |
| 490 | $(eval $(call assert_boolean,ERRATA_N1_1073348)) |
| 491 | $(eval $(call add_define,ERRATA_N1_1073348)) |
| 492 | |
lauwal01 | 363ee3c | 2019-06-24 11:28:34 -0500 | [diff] [blame] | 493 | # Process ERRATA_N1_1130799 flag |
| 494 | $(eval $(call assert_boolean,ERRATA_N1_1130799)) |
| 495 | $(eval $(call add_define,ERRATA_N1_1130799)) |
| 496 | |
lauwal01 | f2adb13 | 2019-06-24 11:32:40 -0500 | [diff] [blame] | 497 | # Process ERRATA_N1_1165347 flag |
| 498 | $(eval $(call assert_boolean,ERRATA_N1_1165347)) |
| 499 | $(eval $(call add_define,ERRATA_N1_1165347)) |
| 500 | |
lauwal01 | e159044 | 2019-06-24 11:35:37 -0500 | [diff] [blame] | 501 | # Process ERRATA_N1_1207823 flag |
| 502 | $(eval $(call assert_boolean,ERRATA_N1_1207823)) |
| 503 | $(eval $(call add_define,ERRATA_N1_1207823)) |
| 504 | |
lauwal01 | 197f14c | 2019-06-24 11:38:53 -0500 | [diff] [blame] | 505 | # Process ERRATA_N1_1220197 flag |
| 506 | $(eval $(call assert_boolean,ERRATA_N1_1220197)) |
| 507 | $(eval $(call add_define,ERRATA_N1_1220197)) |
| 508 | |
lauwal01 | 07c2a23 | 2019-06-24 11:42:02 -0500 | [diff] [blame] | 509 | # Process ERRATA_N1_1257314 flag |
| 510 | $(eval $(call assert_boolean,ERRATA_N1_1257314)) |
| 511 | $(eval $(call add_define,ERRATA_N1_1257314)) |
| 512 | |
lauwal01 | 42771af | 2019-06-24 11:44:58 -0500 | [diff] [blame] | 513 | # Process ERRATA_N1_1262606 flag |
| 514 | $(eval $(call assert_boolean,ERRATA_N1_1262606)) |
| 515 | $(eval $(call add_define,ERRATA_N1_1262606)) |
| 516 | |
lauwal01 | 00396bf | 2019-06-24 11:47:30 -0500 | [diff] [blame] | 517 | # Process ERRATA_N1_1262888 flag |
| 518 | $(eval $(call assert_boolean,ERRATA_N1_1262888)) |
| 519 | $(eval $(call add_define,ERRATA_N1_1262888)) |
| 520 | |
lauwal01 | 644b6ed | 2019-06-24 11:49:01 -0500 | [diff] [blame] | 521 | # Process ERRATA_N1_1275112 flag |
| 522 | $(eval $(call assert_boolean,ERRATA_N1_1275112)) |
| 523 | $(eval $(call add_define,ERRATA_N1_1275112)) |
| 524 | |
Andre Przywara | b934740 | 2019-05-20 14:57:06 +0100 | [diff] [blame] | 525 | # Process ERRATA_N1_1315703 flag |
| 526 | $(eval $(call assert_boolean,ERRATA_N1_1315703)) |
| 527 | $(eval $(call add_define,ERRATA_N1_1315703)) |
| 528 | |
laurenw-arm | 94accd3 | 2019-08-20 15:51:24 -0500 | [diff] [blame] | 529 | # Process ERRATA_N1_1542419 flag |
| 530 | $(eval $(call assert_boolean,ERRATA_N1_1542419)) |
| 531 | $(eval $(call add_define,ERRATA_N1_1542419)) |
| 532 | |
Louis Mayencourt | 4498b15 | 2019-04-09 16:29:01 +0100 | [diff] [blame] | 533 | # Process ERRATA_DSU_798953 flag |
| 534 | $(eval $(call assert_boolean,ERRATA_DSU_798953)) |
| 535 | $(eval $(call add_define,ERRATA_DSU_798953)) |
| 536 | |
John Tsichritzis | 4daa1de | 2018-07-23 09:11:59 +0100 | [diff] [blame] | 537 | # Process ERRATA_DSU_936184 flag |
| 538 | $(eval $(call assert_boolean,ERRATA_DSU_936184)) |
| 539 | $(eval $(call add_define,ERRATA_DSU_936184)) |
| 540 | |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 541 | # Errata build flags |
| 542 | ifneq (${ERRATA_A53_843419},0) |
Douglas Raillard | d0c8273 | 2017-06-22 14:44:48 +0100 | [diff] [blame] | 543 | TF_LDFLAGS_aarch64 += --fix-cortex-a53-843419 |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 544 | endif |
| 545 | |
| 546 | ifneq (${ERRATA_A53_835769},0) |
| 547 | TF_CFLAGS_aarch64 += -mfix-cortex-a53-835769 |
Douglas Raillard | d0c8273 | 2017-06-22 14:44:48 +0100 | [diff] [blame] | 548 | TF_LDFLAGS_aarch64 += --fix-cortex-a53-835769 |
Douglas Raillard | d56fb04 | 2017-06-19 15:38:02 +0100 | [diff] [blame] | 549 | endif |