Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
91ff490d
Commit
91ff490d
authored
Jan 28, 2020
by
Manish Pandey
Committed by
TrustedFirmware Code Review
Jan 28, 2020
Browse files
Merge "Neovers N1: added support to update presence of External LLC" into integration
parents
0281e60c
f2d6b4ee
Changes
4
Show whitespace changes
Inline
Side-by-side
docs/design/cpu-specific-build-macros.rst
View file @
91ff490d
...
@@ -324,6 +324,11 @@ architecture that can be enabled by the platform as desired.
...
@@ -324,6 +324,11 @@ architecture that can be enabled by the platform as desired.
as recommended in section "4.7 Non-Temporal Loads/Stores" of the
as recommended in section "4.7 Non-Temporal Loads/Stores" of the
`Cortex-A57 Software Optimization Guide`_.
`Cortex-A57 Software Optimization Guide`_.
- ``NEOVERSE_N1_EXTERNAL_LLC``: This flag indicates that an external last
level cache(LLC) is present in the system, and that the DataSource field
on the master CHI interface indicates when data is returned from the LLC.
This is used to control how the LL_CACHE* PMU events count.
--------------
--------------
*Copyright (c) 2014-2019, Arm Limited and Contributors. All rights reserved.*
*Copyright (c) 2014-2019, Arm Limited and Contributors. All rights reserved.*
...
...
include/lib/cpus/aarch64/neoverse_n1.h
View file @
91ff490d
/*
/*
* Copyright (c) 2017-20
19
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2017-20
20
, ARM Limited and Contributors. All rights reserved.
*
*
* SPDX-License-Identifier: BSD-3-Clause
* SPDX-License-Identifier: BSD-3-Clause
*/
*/
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#define NEOVERSE_N1_WS_THR_L2_MASK (ULL(3) << 24)
#define NEOVERSE_N1_WS_THR_L2_MASK (ULL(3) << 24)
#define NEOVERSE_N1_CPUECTLR_EL1_MM_TLBPF_DIS_BIT (ULL(1) << 51)
#define NEOVERSE_N1_CPUECTLR_EL1_MM_TLBPF_DIS_BIT (ULL(1) << 51)
#define NEOVERSE_N1_CPUECTLR_EL1_EXTLLC_BIT (ULL(1) << 0)
/*******************************************************************************
/*******************************************************************************
* CPU Auxiliary Control register specific definitions.
* CPU Auxiliary Control register specific definitions.
...
...
lib/cpus/aarch64/neoverse_n1.S
View file @
91ff490d
...
@@ -465,6 +465,13 @@ func neoverse_n1_reset_func
...
@@ -465,6 +465,13 @@ func neoverse_n1_reset_func
msr
CPUAMCNTENSET_EL0
,
x0
msr
CPUAMCNTENSET_EL0
,
x0
#endif
#endif
#if NEOVERSE_N1_EXTERNAL_LLC
/
*
Some
system
may
have
External
LLC
,
core
needs
to
be
made
aware
*/
mrs
x0
,
NEOVERSE_N1_CPUECTLR_EL1
orr
x0
,
x0
,
NEOVERSE_N1_CPUECTLR_EL1_EXTLLC_BIT
msr
NEOVERSE_N1_CPUECTLR_EL1
,
x0
#endif
#if ERRATA_DSU_936184
#if ERRATA_DSU_936184
bl
errata_dsu_936184_wa
bl
errata_dsu_936184_wa
#endif
#endif
...
...
lib/cpus/cpu-ops.mk
View file @
91ff490d
#
#
# Copyright (c) 2014-20
19
, ARM Limited and Contributors. All rights reserved.
# Copyright (c) 2014-20
20
, ARM Limited and Contributors. All rights reserved.
#
#
# SPDX-License-Identifier: BSD-3-Clause
# SPDX-License-Identifier: BSD-3-Clause
#
#
...
@@ -20,6 +20,10 @@ WORKAROUND_CVE_2017_5715 ?=1
...
@@ -20,6 +20,10 @@ WORKAROUND_CVE_2017_5715 ?=1
WORKAROUND_CVE_2018_3639
?=
1
WORKAROUND_CVE_2018_3639
?=
1
DYNAMIC_WORKAROUND_CVE_2018_3639
?=
0
DYNAMIC_WORKAROUND_CVE_2018_3639
?=
0
# Flag to indicate internal or external Last level cache
# By default internal
NEOVERSE_N1_EXTERNAL_LLC
?=
0
# Process SKIP_A57_L1_FLUSH_PWR_DWN flag
# Process SKIP_A57_L1_FLUSH_PWR_DWN flag
$(eval
$(call
assert_boolean,SKIP_A57_L1_FLUSH_PWR_DWN))
$(eval
$(call
assert_boolean,SKIP_A57_L1_FLUSH_PWR_DWN))
$(eval
$(call
add_define,SKIP_A57_L1_FLUSH_PWR_DWN))
$(eval
$(call
add_define,SKIP_A57_L1_FLUSH_PWR_DWN))
...
@@ -43,6 +47,9 @@ $(eval $(call add_define,WORKAROUND_CVE_2018_3639))
...
@@ -43,6 +47,9 @@ $(eval $(call add_define,WORKAROUND_CVE_2018_3639))
$(eval
$(call
assert_boolean,DYNAMIC_WORKAROUND_CVE_2018_3639))
$(eval
$(call
assert_boolean,DYNAMIC_WORKAROUND_CVE_2018_3639))
$(eval
$(call
add_define,DYNAMIC_WORKAROUND_CVE_2018_3639))
$(eval
$(call
add_define,DYNAMIC_WORKAROUND_CVE_2018_3639))
$(eval
$(call
assert_boolean,NEOVERSE_N1_EXTERNAL_LLC))
$(eval
$(call
add_define,NEOVERSE_N1_EXTERNAL_LLC))
ifneq
(${DYNAMIC_WORKAROUND_CVE_2018_3639},0)
ifneq
(${DYNAMIC_WORKAROUND_CVE_2018_3639},0)
ifeq
(${WORKAROUND_CVE_2018_3639},0)
ifeq
(${WORKAROUND_CVE_2018_3639},0)
$(error "Error
:
WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1")
$(error "Error
:
WORKAROUND_CVE_2018_3639 must be 1 if DYNAMIC_WORKAROUND_CVE_2018_3639 is 1")
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment