xref: /rk3399_ARM-atf/lib/cpus/cpu-ops.mk (revision f2d6b4ee5740245a92fd511180f7eebc6736a80b)
15541bb3fSSoby Mathew#
2*f2d6b4eeSManish Pandey# Copyright (c) 2014-2020, ARM Limited and Contributors. All rights reserved.
35541bb3fSSoby Mathew#
482cb2c1aSdp-arm# SPDX-License-Identifier: BSD-3-Clause
55541bb3fSSoby Mathew#
65541bb3fSSoby Mathew
75541bb3fSSoby Mathew# Cortex A57 specific optimisation to skip L1 cache flush when
85541bb3fSSoby Mathew# cluster is powered down.
95541bb3fSSoby MathewSKIP_A57_L1_FLUSH_PWR_DWN	?=0
105541bb3fSSoby Mathew
1154035fc4SSandrine Bailleux# Flag to disable the cache non-temporal hint.
1254035fc4SSandrine Bailleux# It is enabled by default.
1354035fc4SSandrine BailleuxA53_DISABLE_NON_TEMPORAL_HINT	?=1
1454035fc4SSandrine Bailleux
1554035fc4SSandrine Bailleux# Flag to disable the cache non-temporal hint.
1654035fc4SSandrine Bailleux# It is enabled by default.
1754035fc4SSandrine BailleuxA57_DISABLE_NON_TEMPORAL_HINT	?=1
1854035fc4SSandrine Bailleux
19f62ad322SDimitris PapastamosWORKAROUND_CVE_2017_5715	?=1
20b8a25bbbSDimitris PapastamosWORKAROUND_CVE_2018_3639	?=1
21fe007b2eSDimitris PapastamosDYNAMIC_WORKAROUND_CVE_2018_3639	?=0
22f62ad322SDimitris Papastamos
23*f2d6b4eeSManish Pandey# Flag to indicate internal or external Last level cache
24*f2d6b4eeSManish Pandey# By default internal
25*f2d6b4eeSManish PandeyNEOVERSE_N1_EXTERNAL_LLC	?=0
26*f2d6b4eeSManish Pandey
275541bb3fSSoby Mathew# Process SKIP_A57_L1_FLUSH_PWR_DWN flag
285541bb3fSSoby Mathew$(eval $(call assert_boolean,SKIP_A57_L1_FLUSH_PWR_DWN))
295541bb3fSSoby Mathew$(eval $(call add_define,SKIP_A57_L1_FLUSH_PWR_DWN))
305541bb3fSSoby Mathew
3154035fc4SSandrine Bailleux# Process A53_DISABLE_NON_TEMPORAL_HINT flag
3254035fc4SSandrine Bailleux$(eval $(call assert_boolean,A53_DISABLE_NON_TEMPORAL_HINT))
3354035fc4SSandrine Bailleux$(eval $(call add_define,A53_DISABLE_NON_TEMPORAL_HINT))
3454035fc4SSandrine Bailleux
3554035fc4SSandrine Bailleux# Process A57_DISABLE_NON_TEMPORAL_HINT flag
3654035fc4SSandrine Bailleux$(eval $(call assert_boolean,A57_DISABLE_NON_TEMPORAL_HINT))
3754035fc4SSandrine Bailleux$(eval $(call add_define,A57_DISABLE_NON_TEMPORAL_HINT))
3854035fc4SSandrine Bailleux
39f62ad322SDimitris Papastamos# Process WORKAROUND_CVE_2017_5715 flag
40f62ad322SDimitris Papastamos$(eval $(call assert_boolean,WORKAROUND_CVE_2017_5715))
41f62ad322SDimitris Papastamos$(eval $(call add_define,WORKAROUND_CVE_2017_5715))
425541bb3fSSoby Mathew
43b8a25bbbSDimitris Papastamos# Process WORKAROUND_CVE_2018_3639 flag
44b8a25bbbSDimitris Papastamos$(eval $(call assert_boolean,WORKAROUND_CVE_2018_3639))
45b8a25bbbSDimitris Papastamos$(eval $(call add_define,WORKAROUND_CVE_2018_3639))
46b8a25bbbSDimitris Papastamos
47fe007b2eSDimitris Papastamos$(eval $(call assert_boolean,DYNAMIC_WORKAROUND_CVE_2018_3639))
48fe007b2eSDimitris Papastamos$(eval $(call add_define,DYNAMIC_WORKAROUND_CVE_2018_3639))
49fe007b2eSDimitris Papastamos
50*f2d6b4eeSManish Pandey$(eval $(call assert_boolean,NEOVERSE_N1_EXTERNAL_LLC))
51*f2d6b4eeSManish Pandey$(eval $(call add_define,NEOVERSE_N1_EXTERNAL_LLC))
52*f2d6b4eeSManish Pandey
53fe007b2eSDimitris Papastamosifneq (${DYNAMIC_WORKAROUND_CVE_2018_3639},0)
54fe007b2eSDimitris Papastamos    ifeq (${WORKAROUND_CVE_2018_3639},0)
55fe007b2eSDimitris Papastamos        $(error "Error: WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1")
56fe007b2eSDimitris Papastamos    endif
57fe007b2eSDimitris Papastamosendif
58fe007b2eSDimitris Papastamos
59097b787aSSandrine Bailleux# CPU Errata Build flags.
60097b787aSSandrine Bailleux# These should be enabled by the platform if the erratum workaround needs to be
61097b787aSSandrine Bailleux# applied.
625541bb3fSSoby Mathew
63dd4cf2c7SJoel Hutton# Flag to apply erratum 794073 workaround when disabling mmu.
64dd4cf2c7SJoel HuttonERRATA_A9_794073	?=0
65dd4cf2c7SJoel Hutton
6675a1ada9SAmbroise Vincent# Flag to apply erratum 816470 workaround during power down. This erratum
6775a1ada9SAmbroise Vincent# applies only to revision >= r3p0 of the Cortex A15 cpu.
6875a1ada9SAmbroise VincentERRATA_A15_816470	?=0
6975a1ada9SAmbroise Vincent
705f2c690dSAmbroise Vincent# Flag to apply erratum 827671 workaround during reset. This erratum applies
715f2c690dSAmbroise Vincent# only to revision >= r3p0 of the Cortex A15 cpu.
725f2c690dSAmbroise VincentERRATA_A15_827671	?=0
735f2c690dSAmbroise Vincent
740b64c194SAmbroise Vincent# Flag to apply erratum 852421 workaround during reset. This erratum applies
750b64c194SAmbroise Vincent# only to revision <= r1p2 of the Cortex A17 cpu.
760b64c194SAmbroise VincentERRATA_A17_852421	?=0
770b64c194SAmbroise Vincent
78be10dcdeSAmbroise Vincent# Flag to apply erratum 852423 workaround during reset. This erratum applies
79be10dcdeSAmbroise Vincent# only to revision <= r1p2 of the Cortex A17 cpu.
80be10dcdeSAmbroise VincentERRATA_A17_852423	?=0
81be10dcdeSAmbroise Vincent
82cba71b70SLouis Mayencourt# Flag to apply erratum 855472 workaround during reset. This erratum applies
83cba71b70SLouis Mayencourt# only to revision r0p0 of the Cortex A35 cpu.
84cba71b70SLouis MayencourtERRATA_A35_855472	?=0
85cba71b70SLouis Mayencourt
86bd393704SAmbroise Vincent# Flag to apply erratum 819472 workaround during reset. This erratum applies
87bd393704SAmbroise Vincent# only to revision <= r0p1 of the Cortex A53 cpu.
88bd393704SAmbroise VincentERRATA_A53_819472	?=0
89bd393704SAmbroise Vincent
90bd393704SAmbroise Vincent# Flag to apply erratum 824069 workaround during reset. This erratum applies
91bd393704SAmbroise Vincent# only to revision <= r0p2 of the Cortex A53 cpu.
92bd393704SAmbroise VincentERRATA_A53_824069	?=0
93bd393704SAmbroise Vincent
94097b787aSSandrine Bailleux# Flag to apply erratum 826319 workaround during reset. This erratum applies
95097b787aSSandrine Bailleux# only to revision <= r0p2 of the Cortex A53 cpu.
966b0d97b2SJimmy HuangERRATA_A53_826319	?=0
976b0d97b2SJimmy Huang
98bd393704SAmbroise Vincent# Flag to apply erratum 827319 workaround during reset. This erratum applies
99bd393704SAmbroise Vincent# only to revision <= r0p2 of the Cortex A53 cpu.
100bd393704SAmbroise VincentERRATA_A53_827319	?=0
101bd393704SAmbroise Vincent
102a94cc374SDouglas Raillard# Flag to apply erratum 835769 workaround at compile and link time.  This
103a94cc374SDouglas Raillard# erratum applies to revision <= r0p4 of the Cortex A53 cpu. Enabling this
104a94cc374SDouglas Raillard# workaround can lead the linker to create "*.stub" sections.
105a94cc374SDouglas RaillardERRATA_A53_835769	?=0
106a94cc374SDouglas Raillard
107097b787aSSandrine Bailleux# Flag to apply erratum 836870 workaround during reset. This erratum applies
108097b787aSSandrine Bailleux# only to revision <= r0p3 of the Cortex A53 cpu. From r0p4 and onwards, this
1093fbe46d7SDouglas Raillard# erratum workaround is enabled by default in hardware.
1106b0d97b2SJimmy HuangERRATA_A53_836870	?=0
1116b0d97b2SJimmy Huang
112a94cc374SDouglas Raillard# Flag to apply erratum 843419 workaround at link time.
113a94cc374SDouglas Raillard# This erratum applies to revision <= r0p4 of the Cortex A53 cpu. Enabling this
114a94cc374SDouglas Raillard# workaround could lead the linker to emit "*.stub" sections which are 4kB
115a94cc374SDouglas Raillard# aligned.
116a94cc374SDouglas RaillardERRATA_A53_843419	?=0
117a94cc374SDouglas Raillard
118b75dc0e4SAndre Przywara# Flag to apply errata 855873 during reset. This errata applies to all
119b75dc0e4SAndre Przywara# revisions of the Cortex A53 CPU, but this firmware workaround only works
120b75dc0e4SAndre Przywara# for revisions r0p3 and higher. Earlier revisions are taken care
121b75dc0e4SAndre Przywara# of by the rich OS.
122b75dc0e4SAndre PrzywaraERRATA_A53_855873	?=0
123b75dc0e4SAndre Przywara
1241afeee92SAmbroise Vincent# Flag to apply erratum 768277 workaround during reset. This erratum applies
1251afeee92SAmbroise Vincent# only to revision r0p0 of the Cortex A55 cpu.
1261afeee92SAmbroise VincentERRATA_A55_768277	?=0
1271afeee92SAmbroise Vincent
128a6cc6610SAmbroise Vincent# Flag to apply erratum 778703 workaround during reset. This erratum applies
129a6cc6610SAmbroise Vincent# only to revision r0p0 of the Cortex A55 cpu.
130a6cc6610SAmbroise VincentERRATA_A55_778703	?=0
131a6cc6610SAmbroise Vincent
1326ab87d29SAmbroise Vincent# Flag to apply erratum 798797 workaround during reset. This erratum applies
1336ab87d29SAmbroise Vincent# only to revision r0p0 of the Cortex A55 cpu.
1346ab87d29SAmbroise VincentERRATA_A55_798797	?=0
1356ab87d29SAmbroise Vincent
1366e78973eSAmbroise Vincent# Flag to apply erratum 846532 workaround during reset. This erratum applies
1376e78973eSAmbroise Vincent# only to revision <= r0p1 of the Cortex A55 cpu.
1386e78973eSAmbroise VincentERRATA_A55_846532	?=0
1396e78973eSAmbroise Vincent
14047949f3fSAmbroise Vincent# Flag to apply erratum 903758 workaround during reset. This erratum applies
14147949f3fSAmbroise Vincent# only to revision <= r0p1 of the Cortex A55 cpu.
14247949f3fSAmbroise VincentERRATA_A55_903758	?=0
14347949f3fSAmbroise Vincent
1449af07df0SAmbroise Vincent# Flag to apply erratum 1221012 workaround during reset. This erratum applies
1459af07df0SAmbroise Vincent# only to revision <= r1p0 of the Cortex A55 cpu.
1469af07df0SAmbroise VincentERRATA_A55_1221012	?=0
1479af07df0SAmbroise Vincent
148097b787aSSandrine Bailleux# Flag to apply erratum 806969 workaround during reset. This erratum applies
149097b787aSSandrine Bailleux# only to revision r0p0 of the Cortex A57 cpu.
1505541bb3fSSoby MathewERRATA_A57_806969	?=0
1515541bb3fSSoby Mathew
152ccbec91cSAntonio Nino Diaz# Flag to apply erratum 813419 workaround during reset. This erratum applies
153ccbec91cSAntonio Nino Diaz# only to revision r0p0 of the Cortex A57 cpu.
154ccbec91cSAntonio Nino DiazERRATA_A57_813419	?=0
155ccbec91cSAntonio Nino Diaz
156097b787aSSandrine Bailleux# Flag to apply erratum 813420  workaround during reset. This erratum applies
157097b787aSSandrine Bailleux# only to revision r0p0 of the Cortex A57 cpu.
1585541bb3fSSoby MathewERRATA_A57_813420	?=0
1595541bb3fSSoby Mathew
1600f6fbbd2SAmbroise Vincent# Flag to apply erratum 814670  workaround during reset. This erratum applies
1610f6fbbd2SAmbroise Vincent# only to revision r0p0 of the Cortex A57 cpu.
1620f6fbbd2SAmbroise VincentERRATA_A57_814670	?=0
1630f6fbbd2SAmbroise Vincent
1645bd2c24fSAmbroise Vincent# Flag to apply erratum 817169 workaround during power down. This erratum
1655bd2c24fSAmbroise Vincent# applies only to revision <= r0p1 of the Cortex A57 cpu.
1665bd2c24fSAmbroise VincentERRATA_A57_817169	?=0
1675bd2c24fSAmbroise Vincent
168df22d602SSandrine Bailleux# Flag to apply erratum 826974 workaround during reset. This erratum applies
169df22d602SSandrine Bailleux# only to revision <= r1p1 of the Cortex A57 cpu.
170df22d602SSandrine BailleuxERRATA_A57_826974	?=0
171df22d602SSandrine Bailleux
17207288865SSandrine Bailleux# Flag to apply erratum 826977 workaround during reset. This erratum applies
17307288865SSandrine Bailleux# only to revision <= r1p1 of the Cortex A57 cpu.
17407288865SSandrine BailleuxERRATA_A57_826977	?=0
17507288865SSandrine Bailleux
176a8b1c769SSandrine Bailleux# Flag to apply erratum 828024 workaround during reset. This erratum applies
177a8b1c769SSandrine Bailleux# only to revision <= r1p1 of the Cortex A57 cpu.
178a8b1c769SSandrine BailleuxERRATA_A57_828024	?=0
179a8b1c769SSandrine Bailleux
1800b77197bSSandrine Bailleux# Flag to apply erratum 829520 workaround during reset. This erratum applies
1810b77197bSSandrine Bailleux# only to revision <= r1p2 of the Cortex A57 cpu.
1820b77197bSSandrine BailleuxERRATA_A57_829520	?=0
1830b77197bSSandrine Bailleux
184adeecf92SSandrine Bailleux# Flag to apply erratum 833471 workaround during reset. This erratum applies
185adeecf92SSandrine Bailleux# only to revision <= r1p2 of the Cortex A57 cpu.
186adeecf92SSandrine BailleuxERRATA_A57_833471	?=0
187adeecf92SSandrine Bailleux
18845b52c20SEleanor Bonnici# Flag to apply erratum 855972 workaround during reset. This erratum applies
18945b52c20SEleanor Bonnici# only to revision <= r1p3 of the Cortex A57 cpu.
19045b52c20SEleanor BonniciERRATA_A57_859972	?=0
19145b52c20SEleanor Bonnici
1926de9b336SEleanor Bonnici# Flag to apply erratum 855971 workaround during reset. This erratum applies
1936de9b336SEleanor Bonnici# only to revision <= r0p3 of the Cortex A72 cpu.
1946de9b336SEleanor BonniciERRATA_A72_859971	?=0
1956de9b336SEleanor Bonnici
19625278eabSLouis Mayencourt# Flag to apply erratum 852427 workaround during reset. This erratum applies
19725278eabSLouis Mayencourt# only to revision r0p0 of the Cortex A73 cpu.
19825278eabSLouis MayencourtERRATA_A73_852427	?=0
19925278eabSLouis Mayencourt
200e6cab15dSLouis Mayencourt# Flag to apply erratum 855423 workaround during reset. This erratum applies
201e6cab15dSLouis Mayencourt# only to revision <= r0p1 of the Cortex A73 cpu.
202e6cab15dSLouis MayencourtERRATA_A73_855423	?=0
203e6cab15dSLouis Mayencourt
2045f5d1ed7SLouis Mayencourt# Flag to apply erratum 764081 workaround during reset. This erratum applies
2055f5d1ed7SLouis Mayencourt# only to revision <= r0p0 of the Cortex A75 cpu.
2065f5d1ed7SLouis MayencourtERRATA_A75_764081	?=0
2075f5d1ed7SLouis Mayencourt
20898551591SLouis Mayencourt# Flag to apply erratum 790748 workaround during reset. This erratum applies
20998551591SLouis Mayencourt# only to revision <= r0p0 of the Cortex A75 cpu.
21098551591SLouis MayencourtERRATA_A75_790748	?=0
21198551591SLouis Mayencourt
2125c6aa01aSLouis Mayencourt# Flag to apply erratum 1073348 workaround during reset. This erratum applies
2135c6aa01aSLouis Mayencourt# only to revision <= r1p0 of the Cortex A76 cpu.
2145c6aa01aSLouis MayencourtERRATA_A76_1073348	?=0
2155c6aa01aSLouis Mayencourt
216508d7110SLouis Mayencourt# Flag to apply erratum 1130799 workaround during reset. This erratum applies
217508d7110SLouis Mayencourt# only to revision <= r2p0 of the Cortex A76 cpu.
218508d7110SLouis MayencourtERRATA_A76_1130799	?=0
219508d7110SLouis Mayencourt
2205cc8c7baSLouis Mayencourt# Flag to apply erratum 1220197 workaround during reset. This erratum applies
2215cc8c7baSLouis Mayencourt# only to revision <= r2p0 of the Cortex A76 cpu.
2225cc8c7baSLouis MayencourtERRATA_A76_1220197	?=0
2235cc8c7baSLouis Mayencourt
224e6e1d0acSSoby Mathew# Flag to apply erratum 1257314 workaround during reset. This erratum applies
225e6e1d0acSSoby Mathew# only to revision <= r3p0 of the Cortex A76 cpu.
226e6e1d0acSSoby MathewERRATA_A76_1257314	?=0
227e6e1d0acSSoby Mathew
228e6e1d0acSSoby Mathew# Flag to apply erratum 1262606 workaround during reset. This erratum applies
229e6e1d0acSSoby Mathew# only to revision <= r3p0 of the Cortex A76 cpu.
230e6e1d0acSSoby MathewERRATA_A76_1262606	?=0
231e6e1d0acSSoby Mathew
232e6e1d0acSSoby Mathew# Flag to apply erratum 1262888 workaround during reset. This erratum applies
233e6e1d0acSSoby Mathew# only to revision <= r3p0 of the Cortex A76 cpu.
234e6e1d0acSSoby MathewERRATA_A76_1262888	?=0
235e6e1d0acSSoby Mathew
236e6e1d0acSSoby Mathew# Flag to apply erratum 1275112 workaround during reset. This erratum applies
237e6e1d0acSSoby Mathew# only to revision <= r3p0 of the Cortex A76 cpu.
238e6e1d0acSSoby MathewERRATA_A76_1275112	?=0
239e6e1d0acSSoby Mathew
240f85edceaSSoby Mathew# Flag to apply erratum 1286807 workaround during reset. This erratum applies
241f85edceaSSoby Mathew# only to revision <= r3p0 of the Cortex A76 cpu.
242f85edceaSSoby MathewERRATA_A76_1286807	?=0
243f85edceaSSoby Mathew
24483e95524SMadhukar Pappireddy# Flag to apply erratum 1688305 workaround during reset. This erratum applies
24583e95524SMadhukar Pappireddy# to revisions r0p0 - r1p0 of the Hercules cpu.
24683e95524SMadhukar PappireddyERRATA_HERCULES_1688305	?=0
24783e95524SMadhukar Pappireddy
248040b546eSDimitris Papastamos# Flag to apply T32 CLREX workaround during reset. This erratum applies
249da6d75a0SJohn Tsichritzis# only to r0p0 and r1p0 of the Neoverse N1 cpu.
250dbafda7cSlaurenw-armERRATA_N1_1043202	?=0
251040b546eSDimitris Papastamos
252a601afe1Slauwal01# Flag to apply erratum 1073348 workaround during reset. This erratum applies
253a601afe1Slauwal01# only to revision r0p0 and r1p0 of the Neoverse N1 cpu.
254a601afe1Slauwal01ERRATA_N1_1073348	?=0
255a601afe1Slauwal01
256e34606f2Slauwal01# Flag to apply erratum 1130799 workaround during reset. This erratum applies
257e34606f2Slauwal01# only to revision <= r2p0 of the Neoverse N1 cpu.
258e34606f2Slauwal01ERRATA_N1_1130799	?=0
259e34606f2Slauwal01
2602017ab24Slauwal01# Flag to apply erratum 1165347 workaround during reset. This erratum applies
2612017ab24Slauwal01# only to revision <= r2p0 of the Neoverse N1 cpu.
2622017ab24Slauwal01ERRATA_N1_1165347	?=0
2632017ab24Slauwal01
264ef5fa7d4Slauwal01# Flag to apply erratum 1207823 workaround during reset. This erratum applies
265ef5fa7d4Slauwal01# only to revision <= r2p0 of the Neoverse N1 cpu.
266ef5fa7d4Slauwal01ERRATA_N1_1207823	?=0
267ef5fa7d4Slauwal01
2689eceb020Slauwal01# Flag to apply erratum 1220197 workaround during reset. This erratum applies
2699eceb020Slauwal01# only to revision <= r2p0 of the Neoverse N1 cpu.
2709eceb020Slauwal01ERRATA_N1_1220197	?=0
2719eceb020Slauwal01
272335b3c79Slauwal01# Flag to apply erratum 1257314 workaround during reset. This erratum applies
273335b3c79Slauwal01# only to revision <= r3p0 of the Neoverse N1 cpu.
274335b3c79Slauwal01ERRATA_N1_1257314	?=0
275335b3c79Slauwal01
276411f4959Slauwal01# Flag to apply erratum 1262606 workaround during reset. This erratum applies
277411f4959Slauwal01# only to revision <= r3p0 of the Neoverse N1 cpu.
278411f4959Slauwal01ERRATA_N1_1262606	?=0
279411f4959Slauwal01
28011c48370Slauwal01# Flag to apply erratum 1262888 workaround during reset. This erratum applies
28111c48370Slauwal01# only to revision <= r3p0 of the Neoverse N1 cpu.
28211c48370Slauwal01ERRATA_N1_1262888	?=0
28311c48370Slauwal01
2844d8801feSlauwal01# Flag to apply erratum 1275112 workaround during reset. This erratum applies
2854d8801feSlauwal01# only to revision <= r3p0 of the Neoverse N1 cpu.
2864d8801feSlauwal01ERRATA_N1_1275112	?=0
2874d8801feSlauwal01
2885f5d0763SAndre Przywara# Flag to apply erratum 1315703 workaround during reset. This erratum applies
2895f5d0763SAndre Przywara# to revisions before r3p1 of the Neoverse N1 cpu.
290dbafda7cSlaurenw-armERRATA_N1_1315703	?=0
2915f5d0763SAndre Przywara
29280942622Slaurenw-arm# Flag to apply erratum 1542419 workaround during reset. This erratum applies
29380942622Slaurenw-arm# to revisions r3p0 - r4p0 of the Neoverse N1 cpu.
29480942622Slaurenw-armERRATA_N1_1542419	?=0
29580942622Slaurenw-arm
2960e985d70SLouis Mayencourt# Flag to apply DSU erratum 798953. This erratum applies to DSUs revision r0p0.
2970e985d70SLouis Mayencourt# Applying the workaround results in higher DSU power consumption on idle.
2980e985d70SLouis MayencourtERRATA_DSU_798953	?=0
2990e985d70SLouis Mayencourt
3008a677180SJohn Tsichritzis# Flag to apply DSU erratum 936184. This erratum applies to DSUs containing
3018a677180SJohn Tsichritzis# the ACP interface and revision < r2p0. Applying the workaround results in
3028a677180SJohn Tsichritzis# higher DSU power consumption on idle.
3038a677180SJohn TsichritzisERRATA_DSU_936184	?=0
3048a677180SJohn Tsichritzis
305dd4cf2c7SJoel Hutton# Process ERRATA_A9_794073 flag
306dd4cf2c7SJoel Hutton$(eval $(call assert_boolean,ERRATA_A9_794073))
307dd4cf2c7SJoel Hutton$(eval $(call add_define,ERRATA_A9_794073))
308dd4cf2c7SJoel Hutton
30975a1ada9SAmbroise Vincent# Process ERRATA_A15_816470 flag
31075a1ada9SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A15_816470))
31175a1ada9SAmbroise Vincent$(eval $(call add_define,ERRATA_A15_816470))
31275a1ada9SAmbroise Vincent
3135f2c690dSAmbroise Vincent# Process ERRATA_A15_827671 flag
3145f2c690dSAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A15_827671))
3155f2c690dSAmbroise Vincent$(eval $(call add_define,ERRATA_A15_827671))
3165f2c690dSAmbroise Vincent
3170b64c194SAmbroise Vincent# Process ERRATA_A17_852421 flag
3180b64c194SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A17_852421))
3190b64c194SAmbroise Vincent$(eval $(call add_define,ERRATA_A17_852421))
3200b64c194SAmbroise Vincent
321be10dcdeSAmbroise Vincent# Process ERRATA_A17_852423 flag
322be10dcdeSAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A17_852423))
323be10dcdeSAmbroise Vincent$(eval $(call add_define,ERRATA_A17_852423))
324be10dcdeSAmbroise Vincent
325cba71b70SLouis Mayencourt# Process ERRATA_A35_855472 flag
326cba71b70SLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A35_855472))
327cba71b70SLouis Mayencourt$(eval $(call add_define,ERRATA_A35_855472))
328cba71b70SLouis Mayencourt
329bd393704SAmbroise Vincent# Process ERRATA_A53_819472 flag
330bd393704SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A53_819472))
331bd393704SAmbroise Vincent$(eval $(call add_define,ERRATA_A53_819472))
332bd393704SAmbroise Vincent
333bd393704SAmbroise Vincent# Process ERRATA_A53_824069 flag
334bd393704SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A53_824069))
335bd393704SAmbroise Vincent$(eval $(call add_define,ERRATA_A53_824069))
336bd393704SAmbroise Vincent
3376b0d97b2SJimmy Huang# Process ERRATA_A53_826319 flag
3386b0d97b2SJimmy Huang$(eval $(call assert_boolean,ERRATA_A53_826319))
3396b0d97b2SJimmy Huang$(eval $(call add_define,ERRATA_A53_826319))
3406b0d97b2SJimmy Huang
341bd393704SAmbroise Vincent# Process ERRATA_A53_827319 flag
342bd393704SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A53_827319))
343bd393704SAmbroise Vincent$(eval $(call add_define,ERRATA_A53_827319))
344bd393704SAmbroise Vincent
345a94cc374SDouglas Raillard# Process ERRATA_A53_835769 flag
346a94cc374SDouglas Raillard$(eval $(call assert_boolean,ERRATA_A53_835769))
347a94cc374SDouglas Raillard$(eval $(call add_define,ERRATA_A53_835769))
348a94cc374SDouglas Raillard
3496b0d97b2SJimmy Huang# Process ERRATA_A53_836870 flag
3506b0d97b2SJimmy Huang$(eval $(call assert_boolean,ERRATA_A53_836870))
3516b0d97b2SJimmy Huang$(eval $(call add_define,ERRATA_A53_836870))
3526b0d97b2SJimmy Huang
353a94cc374SDouglas Raillard# Process ERRATA_A53_843419 flag
354a94cc374SDouglas Raillard$(eval $(call assert_boolean,ERRATA_A53_843419))
355a94cc374SDouglas Raillard$(eval $(call add_define,ERRATA_A53_843419))
356a94cc374SDouglas Raillard
357b75dc0e4SAndre Przywara# Process ERRATA_A53_855873 flag
358b75dc0e4SAndre Przywara$(eval $(call assert_boolean,ERRATA_A53_855873))
359b75dc0e4SAndre Przywara$(eval $(call add_define,ERRATA_A53_855873))
360b75dc0e4SAndre Przywara
3611afeee92SAmbroise Vincent# Process ERRATA_A55_768277 flag
3621afeee92SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_768277))
3631afeee92SAmbroise Vincent$(eval $(call add_define,ERRATA_A55_768277))
3641afeee92SAmbroise Vincent
365a6cc6610SAmbroise Vincent# Process ERRATA_A55_778703 flag
366a6cc6610SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_778703))
367a6cc6610SAmbroise Vincent$(eval $(call add_define,ERRATA_A55_778703))
368a6cc6610SAmbroise Vincent
3696ab87d29SAmbroise Vincent# Process ERRATA_A55_798797 flag
3706ab87d29SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_798797))
3716ab87d29SAmbroise Vincent$(eval $(call add_define,ERRATA_A55_798797))
3726ab87d29SAmbroise Vincent
3736e78973eSAmbroise Vincent# Process ERRATA_A55_846532 flag
3746e78973eSAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_846532))
3756e78973eSAmbroise Vincent$(eval $(call add_define,ERRATA_A55_846532))
3766e78973eSAmbroise Vincent
37747949f3fSAmbroise Vincent# Process ERRATA_A55_903758 flag
37847949f3fSAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_903758))
37947949f3fSAmbroise Vincent$(eval $(call add_define,ERRATA_A55_903758))
38047949f3fSAmbroise Vincent
3819af07df0SAmbroise Vincent# Process ERRATA_A55_1221012 flag
3829af07df0SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A55_1221012))
3839af07df0SAmbroise Vincent$(eval $(call add_define,ERRATA_A55_1221012))
3849af07df0SAmbroise Vincent
3855541bb3fSSoby Mathew# Process ERRATA_A57_806969 flag
3865541bb3fSSoby Mathew$(eval $(call assert_boolean,ERRATA_A57_806969))
3875541bb3fSSoby Mathew$(eval $(call add_define,ERRATA_A57_806969))
3885541bb3fSSoby Mathew
389ccbec91cSAntonio Nino Diaz# Process ERRATA_A57_813419 flag
390ccbec91cSAntonio Nino Diaz$(eval $(call assert_boolean,ERRATA_A57_813419))
391ccbec91cSAntonio Nino Diaz$(eval $(call add_define,ERRATA_A57_813419))
392ccbec91cSAntonio Nino Diaz
3935541bb3fSSoby Mathew# Process ERRATA_A57_813420 flag
3945541bb3fSSoby Mathew$(eval $(call assert_boolean,ERRATA_A57_813420))
3955541bb3fSSoby Mathew$(eval $(call add_define,ERRATA_A57_813420))
396df22d602SSandrine Bailleux
3970f6fbbd2SAmbroise Vincent# Process ERRATA_A57_814670 flag
3980f6fbbd2SAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A57_814670))
3990f6fbbd2SAmbroise Vincent$(eval $(call add_define,ERRATA_A57_814670))
4000f6fbbd2SAmbroise Vincent
4015bd2c24fSAmbroise Vincent# Process ERRATA_A57_817169 flag
4025bd2c24fSAmbroise Vincent$(eval $(call assert_boolean,ERRATA_A57_817169))
4035bd2c24fSAmbroise Vincent$(eval $(call add_define,ERRATA_A57_817169))
4045bd2c24fSAmbroise Vincent
405df22d602SSandrine Bailleux# Process ERRATA_A57_826974 flag
406df22d602SSandrine Bailleux$(eval $(call assert_boolean,ERRATA_A57_826974))
407df22d602SSandrine Bailleux$(eval $(call add_define,ERRATA_A57_826974))
408a8b1c769SSandrine Bailleux
40907288865SSandrine Bailleux# Process ERRATA_A57_826977 flag
41007288865SSandrine Bailleux$(eval $(call assert_boolean,ERRATA_A57_826977))
41107288865SSandrine Bailleux$(eval $(call add_define,ERRATA_A57_826977))
41207288865SSandrine Bailleux
413a8b1c769SSandrine Bailleux# Process ERRATA_A57_828024 flag
414a8b1c769SSandrine Bailleux$(eval $(call assert_boolean,ERRATA_A57_828024))
415a8b1c769SSandrine Bailleux$(eval $(call add_define,ERRATA_A57_828024))
4160b77197bSSandrine Bailleux
4170b77197bSSandrine Bailleux# Process ERRATA_A57_829520 flag
4180b77197bSSandrine Bailleux$(eval $(call assert_boolean,ERRATA_A57_829520))
4190b77197bSSandrine Bailleux$(eval $(call add_define,ERRATA_A57_829520))
420adeecf92SSandrine Bailleux
421adeecf92SSandrine Bailleux# Process ERRATA_A57_833471 flag
422adeecf92SSandrine Bailleux$(eval $(call assert_boolean,ERRATA_A57_833471))
423adeecf92SSandrine Bailleux$(eval $(call add_define,ERRATA_A57_833471))
424a94cc374SDouglas Raillard
42545b52c20SEleanor Bonnici# Process ERRATA_A57_859972 flag
42645b52c20SEleanor Bonnici$(eval $(call assert_boolean,ERRATA_A57_859972))
42745b52c20SEleanor Bonnici$(eval $(call add_define,ERRATA_A57_859972))
42845b52c20SEleanor Bonnici
4296de9b336SEleanor Bonnici# Process ERRATA_A72_859971 flag
4306de9b336SEleanor Bonnici$(eval $(call assert_boolean,ERRATA_A72_859971))
4316de9b336SEleanor Bonnici$(eval $(call add_define,ERRATA_A72_859971))
4326de9b336SEleanor Bonnici
43325278eabSLouis Mayencourt# Process ERRATA_A73_852427 flag
43425278eabSLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A73_852427))
43525278eabSLouis Mayencourt$(eval $(call add_define,ERRATA_A73_852427))
43625278eabSLouis Mayencourt
437e6cab15dSLouis Mayencourt# Process ERRATA_A73_855423 flag
438e6cab15dSLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A73_855423))
439e6cab15dSLouis Mayencourt$(eval $(call add_define,ERRATA_A73_855423))
440e6cab15dSLouis Mayencourt
4415f5d1ed7SLouis Mayencourt# Process ERRATA_A75_764081 flag
4425f5d1ed7SLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A75_764081))
4435f5d1ed7SLouis Mayencourt$(eval $(call add_define,ERRATA_A75_764081))
4445f5d1ed7SLouis Mayencourt
44598551591SLouis Mayencourt# Process ERRATA_A75_790748 flag
44698551591SLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A75_790748))
44798551591SLouis Mayencourt$(eval $(call add_define,ERRATA_A75_790748))
44898551591SLouis Mayencourt
4495c6aa01aSLouis Mayencourt# Process ERRATA_A76_1073348 flag
4505c6aa01aSLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A76_1073348))
4515c6aa01aSLouis Mayencourt$(eval $(call add_define,ERRATA_A76_1073348))
4525c6aa01aSLouis Mayencourt
453508d7110SLouis Mayencourt# Process ERRATA_A76_1130799 flag
454508d7110SLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A76_1130799))
455508d7110SLouis Mayencourt$(eval $(call add_define,ERRATA_A76_1130799))
456508d7110SLouis Mayencourt
4575cc8c7baSLouis Mayencourt# Process ERRATA_A76_1220197 flag
4585cc8c7baSLouis Mayencourt$(eval $(call assert_boolean,ERRATA_A76_1220197))
4595cc8c7baSLouis Mayencourt$(eval $(call add_define,ERRATA_A76_1220197))
4605cc8c7baSLouis Mayencourt
461e6e1d0acSSoby Mathew# Process ERRATA_A76_1257314 flag
462e6e1d0acSSoby Mathew$(eval $(call assert_boolean,ERRATA_A76_1257314))
463e6e1d0acSSoby Mathew$(eval $(call add_define,ERRATA_A76_1257314))
464e6e1d0acSSoby Mathew
465e6e1d0acSSoby Mathew# Process ERRATA_A76_1262606 flag
466e6e1d0acSSoby Mathew$(eval $(call assert_boolean,ERRATA_A76_1262606))
467e6e1d0acSSoby Mathew$(eval $(call add_define,ERRATA_A76_1262606))
468e6e1d0acSSoby Mathew
469e6e1d0acSSoby Mathew# Process ERRATA_A76_1262888 flag
470e6e1d0acSSoby Mathew$(eval $(call assert_boolean,ERRATA_A76_1262888))
471e6e1d0acSSoby Mathew$(eval $(call add_define,ERRATA_A76_1262888))
472e6e1d0acSSoby Mathew
473e6e1d0acSSoby Mathew# Process ERRATA_A76_1275112 flag
474e6e1d0acSSoby Mathew$(eval $(call assert_boolean,ERRATA_A76_1275112))
475e6e1d0acSSoby Mathew$(eval $(call add_define,ERRATA_A76_1275112))
476e6e1d0acSSoby Mathew
477f85edceaSSoby Mathew# Process ERRATA_A76_1286807 flag
478f85edceaSSoby Mathew$(eval $(call assert_boolean,ERRATA_A76_1286807))
479f85edceaSSoby Mathew$(eval $(call add_define,ERRATA_A76_1286807))
480f85edceaSSoby Mathew
48183e95524SMadhukar Pappireddy# Process ERRATA_HERCULES_1688305 flag
48283e95524SMadhukar Pappireddy$(eval $(call assert_boolean,ERRATA_HERCULES_1688305))
48383e95524SMadhukar Pappireddy$(eval $(call add_define,ERRATA_HERCULES_1688305))
48483e95524SMadhukar Pappireddy
485da6d75a0SJohn Tsichritzis# Process ERRATA_N1_1043202 flag
486da6d75a0SJohn Tsichritzis$(eval $(call assert_boolean,ERRATA_N1_1043202))
487da6d75a0SJohn Tsichritzis$(eval $(call add_define,ERRATA_N1_1043202))
488040b546eSDimitris Papastamos
489a601afe1Slauwal01# Process ERRATA_N1_1073348 flag
490a601afe1Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1073348))
491a601afe1Slauwal01$(eval $(call add_define,ERRATA_N1_1073348))
492a601afe1Slauwal01
493e34606f2Slauwal01# Process ERRATA_N1_1130799 flag
494e34606f2Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1130799))
495e34606f2Slauwal01$(eval $(call add_define,ERRATA_N1_1130799))
496e34606f2Slauwal01
4972017ab24Slauwal01# Process ERRATA_N1_1165347 flag
4982017ab24Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1165347))
4992017ab24Slauwal01$(eval $(call add_define,ERRATA_N1_1165347))
5002017ab24Slauwal01
501ef5fa7d4Slauwal01# Process ERRATA_N1_1207823 flag
502ef5fa7d4Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1207823))
503ef5fa7d4Slauwal01$(eval $(call add_define,ERRATA_N1_1207823))
504ef5fa7d4Slauwal01
5059eceb020Slauwal01# Process ERRATA_N1_1220197 flag
5069eceb020Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1220197))
5079eceb020Slauwal01$(eval $(call add_define,ERRATA_N1_1220197))
5089eceb020Slauwal01
509335b3c79Slauwal01# Process ERRATA_N1_1257314 flag
510335b3c79Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1257314))
511335b3c79Slauwal01$(eval $(call add_define,ERRATA_N1_1257314))
512335b3c79Slauwal01
513411f4959Slauwal01# Process ERRATA_N1_1262606 flag
514411f4959Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1262606))
515411f4959Slauwal01$(eval $(call add_define,ERRATA_N1_1262606))
516411f4959Slauwal01
51711c48370Slauwal01# Process ERRATA_N1_1262888 flag
51811c48370Slauwal01$(eval $(call assert_boolean,ERRATA_N1_1262888))
51911c48370Slauwal01$(eval $(call add_define,ERRATA_N1_1262888))
52011c48370Slauwal01
5214d8801feSlauwal01# Process ERRATA_N1_1275112 flag
5224d8801feSlauwal01$(eval $(call assert_boolean,ERRATA_N1_1275112))
5234d8801feSlauwal01$(eval $(call add_define,ERRATA_N1_1275112))
5244d8801feSlauwal01
5255f5d0763SAndre Przywara# Process ERRATA_N1_1315703 flag
5265f5d0763SAndre Przywara$(eval $(call assert_boolean,ERRATA_N1_1315703))
5275f5d0763SAndre Przywara$(eval $(call add_define,ERRATA_N1_1315703))
5285f5d0763SAndre Przywara
52980942622Slaurenw-arm# Process ERRATA_N1_1542419 flag
53080942622Slaurenw-arm$(eval $(call assert_boolean,ERRATA_N1_1542419))
53180942622Slaurenw-arm$(eval $(call add_define,ERRATA_N1_1542419))
53280942622Slaurenw-arm
5330e985d70SLouis Mayencourt# Process ERRATA_DSU_798953 flag
5340e985d70SLouis Mayencourt$(eval $(call assert_boolean,ERRATA_DSU_798953))
5350e985d70SLouis Mayencourt$(eval $(call add_define,ERRATA_DSU_798953))
5360e985d70SLouis Mayencourt
5378a677180SJohn Tsichritzis# Process ERRATA_DSU_936184 flag
5388a677180SJohn Tsichritzis$(eval $(call assert_boolean,ERRATA_DSU_936184))
5398a677180SJohn Tsichritzis$(eval $(call add_define,ERRATA_DSU_936184))
5408a677180SJohn Tsichritzis
541a94cc374SDouglas Raillard# Errata build flags
542a94cc374SDouglas Raillardifneq (${ERRATA_A53_843419},0)
543c2b8806fSDouglas RaillardTF_LDFLAGS_aarch64	+= --fix-cortex-a53-843419
544a94cc374SDouglas Raillardendif
545a94cc374SDouglas Raillard
546a94cc374SDouglas Raillardifneq (${ERRATA_A53_835769},0)
547a94cc374SDouglas RaillardTF_CFLAGS_aarch64	+= -mfix-cortex-a53-835769
548c2b8806fSDouglas RaillardTF_LDFLAGS_aarch64	+= --fix-cortex-a53-835769
549a94cc374SDouglas Raillardendif
550