@ -7,27 +7,27 @@
# Cortex A57 specific optimisation to skip L1 cache flush when
# cluster is powered down.
SKIP_A57_L1_FLUSH_PWR_DWN ?= 0
SKIP_A57_L1_FLUSH_PWR_DWN ?= 0
# Flag to disable the cache non-temporal hint.
# It is enabled by default.
A53_DISABLE_NON_TEMPORAL_HINT ?= 1
A53_DISABLE_NON_TEMPORAL_HINT ?= 1
# Flag to disable the cache non-temporal hint.
# It is enabled by default.
A57_DISABLE_NON_TEMPORAL_HINT ?= 1
A57_DISABLE_NON_TEMPORAL_HINT ?= 1
# Flag to enable higher performance non-cacheable load forwarding.
# It is disabled by default.
A57_ENABLE_NONCACHEABLE_LOAD_FWD ?= 0
WORKAROUND_CVE_2017_5715 ?= 1
WORKAROUND_CVE_2018_3639 ?= 1
WORKAROUND_CVE_2017_5715 ?= 1
WORKAROUND_CVE_2018_3639 ?= 1
DYNAMIC_WORKAROUND_CVE_2018_3639 ?= 0
# Flags to indicate internal or external Last level cache
# By default internal
NEOVERSE_Nx_EXTERNAL_LLC ?= 0
NEOVERSE_Nx_EXTERNAL_LLC ?= 0
# Process A57_ENABLE_NONCACHEABLE_LOAD_FWD flag
$( eval $ ( call assert_boolean ,A 57_ENABLE_NONCACHEABLE_LOAD_FWD ) )
@ -60,9 +60,9 @@ $(eval $(call assert_boolean,NEOVERSE_Nx_EXTERNAL_LLC))
$( eval $ ( call add_define ,NEOVERSE_Nx_EXTERNAL_LLC ) )
i f n e q ( $ { D Y N A M I C _ W O R K A R O U N D _ C V E _ 2 0 1 8 _ 3 6 3 9 } , 0 )
ifeq ( ${ WORKAROUND_CVE_2018_3639 } ,0)
$( error "Error: WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1" )
endif
ifeq ( ${ WORKAROUND_CVE_2018_3639 } ,0)
$( error "Error: WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1" )
endif
e n d i f
# CPU Errata Build flags.
@ -108,7 +108,7 @@ ERRATA_A53_826319 ?=0
# only to revision <= r0p2 of the Cortex A53 cpu.
ERRATA_A53_827319 ?= 0
# Flag to apply erratum 835769 workaround at compile and link time. This
# Flag to apply erratum 835769 workaround at compile and link time. This
# erratum applies to revision <= r0p4 of the Cortex A53 cpu. Enabling this
# workaround can lead the linker to create "*.stub" sections.
ERRATA_A53_835769 ?= 0
@ -170,11 +170,11 @@ ERRATA_A57_806969 ?=0
# only to revision r0p0 of the Cortex A57 cpu.
ERRATA_A57_813419 ?= 0
# Flag to apply erratum 813420 workaround during reset. This erratum applies
# Flag to apply erratum 813420 workaround during reset. This erratum applies
# only to revision r0p0 of the Cortex A57 cpu.
ERRATA_A57_813420 ?= 0
# Flag to apply erratum 814670 workaround during reset. This erratum applies
# Flag to apply erratum 814670 workaround during reset. This erratum applies
# only to revision r0p0 of the Cortex A57 cpu.
ERRATA_A57_814670 ?= 0
@ -307,7 +307,7 @@ ERRATA_A78_1688305 ?=0
ERRATA_A78_1941498 ?= 0
# Flag to apply erratum 1951500 workaround during reset. This erratum applies
# to revisions r1p0 and r1p1 of the A78 cpu. The issue is present in r0p0 as
# to revisions r1p0 and r1p1 of the A78 cpu. The issue is present in r0p0 as
# well but there is no workaround for that revision.
ERRATA_A78_1951500 ?= 0
@ -317,11 +317,11 @@ ERRATA_A78_1821534 ?=0
# Flag to apply erratum 1952683 workaround during reset. This erratum applies
# to revision r0p0 of the A78 cpu and was fixed in the revision r1p0.
ERRATA_A78_1952683 ?= 0
ERRATA_A78_1952683 ?= 0
# Flag to apply erratum 2132060 workaround during reset. This erratum applies
# to revisions r0p0, r1p0, r1p1, and r1p2 of the A78 cpu. It is still open.
ERRATA_A78_2132060 ?= 0
ERRATA_A78_2132060 ?= 0
# Flag to apply erratum 2242635 workaround during reset. This erratum applies
# to revisions r1p0, r1p1, and r1p2 of the A78 cpu and is open. The issue is
@ -389,7 +389,7 @@ ERRATA_N1_1542419 ?=0
ERRATA_N1_1868343 ?= 0
# Flag to apply erratum 1946160 workaround during reset. This erratum applies
# to revisions r3p0, r3p1, r4p0, and r4p1 of the Neoverse N1 cpu. The issue
# to revisions r3p0, r3p1, r4p0, and r4p1 of the Neoverse N1 cpu. The issue
# exists in revisions r0p0, r1p0, and r2p0 as well but there is no workaround.
ERRATA_N1_1946160 ?= 0
@ -397,19 +397,19 @@ ERRATA_N1_1946160 ?=0
# to revisions r0p0 of the Neoverse-N2 cpu, it is still open.
ERRATA_N2_2002655 ?= 0
# Flag to apply erratum 1774420 workaround during reset. This erratum applies
# Flag to apply erratum 1774420 workaround during reset. This erratum applies
# to revisions r0p0 and r1p0 of the Neoverse V1 core, and was fixed in r1p1.
ERRATA_V1_1774420 ?= 0
# Flag to apply erratum 1791573 workaround during reset. This erratum applies
# Flag to apply erratum 1791573 workaround during reset. This erratum applies
# to revisions r0p0 and r1p0 of the Neoverse V1 core, and was fixed in r1p1.
ERRATA_V1_1791573 ?= 0
# Flag to apply erratum 1852267 workaround during reset. This erratum applies
# Flag to apply erratum 1852267 workaround during reset. This erratum applies
# to revisions r0p0 and r1p0 of the Neoverse V1 core, and was fixed in r1p1.
ERRATA_V1_1852267 ?= 0
# Flag to apply erratum 1925756 workaround during reset. This needs to be
# Flag to apply erratum 1925756 workaround during reset. This needs to be
# enabled for r0p0, r1p0, and r1p1 of the Neoverse V1 core, it is still open.
ERRATA_V1_1925756 ?= 0
@ -418,7 +418,7 @@ ERRATA_V1_1925756 ?=0
ERRATA_V1_1940577 ?= 0
# Flag to apply erratum 1966096 workaround during reset. This erratum applies
# to revisions r1p0 and r1p1 of the Neoverse V1 CPU and is open. This issue
# to revisions r1p0 and r1p1 of the Neoverse V1 CPU and is open. This issue
# exists in r0p0 as well but there is no workaround for that revision.
ERRATA_V1_1966096 ?= 0
@ -451,6 +451,22 @@ ERRATA_A710_2083908 ?=0
# to revisions r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is still open.
ERRATA_A710_2058056 ?= 0
# Flag to apply erratum 2055002 workaround during reset. This erratum applies
# to revision r1p0, r2p0 of the Cortex-A710 cpu and is still open.
ERRATA_A710_2055002 ?= 0
# Flag to apply erratum 2017096 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is still open.
ERRATA_A710_2017096 ?= 0
# Flag to apply erratum 2267065 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is fixed in r2p1.
ERRATA_A710_2267065 ?= 0
# Flag to apply erratum 2136059 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is fixed in r2p1.
ERRATA_A710_2136059 ?= 0
# Flag to apply erratum 2067956 workaround during reset. This erratum applies
# to revision r0p0 of the Neoverse N2 cpu and is still open.
ERRATA_N2_2067956 ?= 0
@ -487,22 +503,6 @@ ERRATA_N2_2242400 ?=0
# to revision r0p0 of the Neoverse N2 cpu and is still open.
ERRATA_N2_2280757 ?= 0
# Flag to apply erratum 2055002 workaround during reset. This erratum applies
# to revision r1p0, r2p0 of the Cortex-A710 cpu and is still open.
ERRATA_A710_2055002 ?= 0
# Flag to apply erratum 2017096 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is still open.
ERRATA_A710_2017096 ?= 0
# Flag to apply erratum 2267065 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is fixed in r2p1.
ERRATA_A710_2267065 ?= 0
# Flag to apply erratum 2136059 workaround during reset. This erratum applies
# to revision r0p0, r1p0 and r2p0 of the Cortex-A710 cpu and is fixed in r2p1.
ERRATA_A710_2136059 ?= 0
# Flag to apply erratum 2002765 workaround during reset. This erratum applies
# to revisions r0p0, r1p0, and r2p0 of the Cortex-X2 cpu and is still open.
ERRATA_X2_2002765 ?= 0
@ -530,6 +530,10 @@ ERRATA_X2_2081180 ?=0
# r2p1.
ERRATA_X2_2216384 ?= 0
# Flag to apply erratum 1922240 workaround during reset. This erratum applies
# to revision r0p0 of the Cortex-A510 cpu and is fixed in r0p1.
ERRATA_A510_1922240 ?= 0
# Flag to apply DSU erratum 798953. This erratum applies to DSUs revision r0p0.
# Applying the workaround results in higher DSU power consumption on idle.
ERRATA_DSU_798953 ?= 0
@ -911,6 +915,22 @@ $(eval $(call add_define,ERRATA_A710_2083908))
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2058056) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2058056) )
# Process ERRATA_A710_2055002 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2055002) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2055002) )
# Process ERRATA_A710_2017096 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2017096) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2017096) )
# Process ERRATA_A710_2267065 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2267065) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2267065) )
# Process ERRATA_A710_2136059 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2136059) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2136059) )
# Process ERRATA_N2_2067956 flag
$( eval $ ( call assert_boolean ,ERRATA_N 2_ 2067956) )
$( eval $ ( call add_define ,ERRATA_N 2_ 2067956) )
@ -947,22 +967,6 @@ $(eval $(call add_define,ERRATA_N2_2242400))
$( eval $ ( call assert_boolean ,ERRATA_N 2_ 2280757) )
$( eval $ ( call add_define ,ERRATA_N 2_ 2280757) )
# Process ERRATA_A710_2055002 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2055002) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2055002) )
# Process ERRATA_A710_2017096 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2017096) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2017096) )
# Process ERRATA_A710_2267065 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2267065) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2267065) )
# Process ERRATA_A710_2136059 flag
$( eval $ ( call assert_boolean ,ERRATA_A 710_ 2136059) )
$( eval $ ( call add_define ,ERRATA_A 710_ 2136059) )
# Process ERRATA_X2_2002765 flag
$( eval $ ( call assert_boolean ,ERRATA_X 2_ 2002765) )
$( eval $ ( call add_define ,ERRATA_X 2_ 2002765) )
@ -987,6 +991,10 @@ $(eval $(call add_define,ERRATA_X2_2081180))
$( eval $ ( call assert_boolean ,ERRATA_X 2_ 2216384) )
$( eval $ ( call add_define ,ERRATA_X 2_ 2216384) )
# Process ERRATA_A510_1922240 flag
$( eval $ ( call assert_boolean ,ERRATA_A 510_ 1922240) )
$( eval $ ( call add_define ,ERRATA_A 510_ 1922240) )
# Process ERRATA_DSU_798953 flag
$( eval $ ( call assert_boolean ,ERRATA_DSU_ 798953) )
$( eval $ ( call add_define ,ERRATA_DSU_ 798953) )