Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
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
04fb777f
Commit
04fb777f
authored
5 years ago
by
Paul Beesley
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "FVP_Base_AEMv8A platform: Fix cache maintenance operations" into integration
parents
300df53b
ef430ff4
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
include/arch/aarch64/arch.h
+1
-0
include/arch/aarch64/arch.h
lib/cpus/aarch64/aem_generic.S
+33
-5
lib/cpus/aarch64/aem_generic.S
with
34 additions
and
5 deletions
+34
-5
include/arch/aarch64/arch.h
View file @
04fb777f
...
@@ -112,6 +112,7 @@
...
@@ -112,6 +112,7 @@
/* CLIDR definitions */
/* CLIDR definitions */
#define LOUIS_SHIFT U(21)
#define LOUIS_SHIFT U(21)
#define LOC_SHIFT U(24)
#define LOC_SHIFT U(24)
#define CTYPE_SHIFT(n) U(3 * (n - 1))
#define CLIDR_FIELD_WIDTH U(3)
#define CLIDR_FIELD_WIDTH U(3)
/* CSSELR definitions */
/* CSSELR definitions */
...
...
This diff is collapsed.
Click to expand it.
lib/cpus/aarch64/aem_generic.S
View file @
04fb777f
/*
/*
*
Copyright
(
c
)
2014
-
201
5
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2014
-
201
9
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
*
SPDX
-
License
-
Identifier
:
BSD
-
3
-
Clause
*
SPDX
-
License
-
Identifier
:
BSD
-
3
-
Clause
*/
*/
...
@@ -18,15 +18,43 @@ func aem_generic_core_pwr_dwn
...
@@ -18,15 +18,43 @@ func aem_generic_core_pwr_dwn
msr
sctlr_el3
,
x1
msr
sctlr_el3
,
x1
isb
isb
/
*
---------------------------------------------
*
AEM
model
supports
L3
caches
in
which
case
L2
*
will
be
private
per
core
caches
and
flush
*
from
L1
to
L2
is
not
sufficient
.
*
---------------------------------------------
*/
mrs
x1
,
clidr_el1
/
*
---------------------------------------------
*
Check
if
L3
cache
is
implemented
.
*
---------------------------------------------
*/
tst
x1
,
((
1
<<
CLIDR_FIELD_WIDTH
)
-
1
)
<<
CTYPE_SHIFT
(
3
)
/
*
---------------------------------------------
*
There
is
no
L3
cache
,
flush
L1
to
L2
only
.
*
---------------------------------------------
*/
mov
x0
,
#
DCCISW
mov
x0
,
#
DCCISW
b.eq
dcsw_op_level1
mov
x18
,
x30
/
*
---------------------------------------------
/
*
---------------------------------------------
*
Flush
L1
cache
to
PoU
.
*
Flush
L1
cache
to
L2
.
*
---------------------------------------------
*
---------------------------------------------
*/
*/
b
dcsw_op_l
ouis
b
l
dcsw_op_l
evel1
endfunc
aem_generic_core_pwr_dwn
mov
x30
,
x18
/
*
---------------------------------------------
*
Flush
L2
cache
to
L3
.
*
---------------------------------------------
*/
mov
x0
,
#
DCCISW
b
dcsw_op_level2
endfunc
aem_generic_core_pwr_dwn
func
aem_generic_cluster_pwr_dwn
func
aem_generic_cluster_pwr_dwn
/
*
---------------------------------------------
/
*
---------------------------------------------
...
@@ -39,7 +67,7 @@ func aem_generic_cluster_pwr_dwn
...
@@ -39,7 +67,7 @@ func aem_generic_cluster_pwr_dwn
isb
isb
/
*
---------------------------------------------
/
*
---------------------------------------------
*
Flush
L1
and
L2
caches
to
PoC
.
*
Flush
all
caches
to
PoC
.
*
---------------------------------------------
*
---------------------------------------------
*/
*/
mov
x0
,
#
DCCISW
mov
x0
,
#
DCCISW
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help