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
9aacfb6f
Commit
9aacfb6f
authored
Aug 10, 2021
by
Bipin Ravi
Committed by
TrustedFirmware Code Review
Aug 10, 2021
Browse files
Merge "errata: workaround for Neoverse V1 errata 1966096" into integration
parents
e5c7a92b
1a8804c3
Changes
3
Hide whitespace changes
Inline
Side-by-side
docs/design/cpu-specific-build-macros.rst
View file @
9aacfb6f
...
...
@@ -344,6 +344,11 @@ For Neoverse V1, the following errata build flags are defined :
CPU. This needs to be enabled only for revision r1p0 and r1p1 of the
CPU.
- ``ERRATA_V1_1966096``: This applies errata 1966096 workaround to Neoverse-V1
CPU. This needs to be enabled for revisions r1p0 and r1p1 of the CPU, the
issue is present in r0p0 as well but there is no workaround for that
revision. It is still open.
DSU Errata Workarounds
----------------------
...
...
lib/cpus/aarch64/neoverse_v1.S
View file @
9aacfb6f
/*
*
Copyright
(
c
)
2019
-
2021
,
A
RM
Limited
.
All
rights
reserved
.
*
Copyright
(
c
)
2019
-
2021
,
A
rm
Limited
.
All
rights
reserved
.
*
*
SPDX
-
License
-
Identifier
:
BSD
-
3
-
Clause
*/
...
...
@@ -188,6 +188,42 @@ func check_errata_1940577
b
cpu_rev_var_range
endfunc
check_errata_1940577
/
*
--------------------------------------------------
*
Errata
Workaround
for
Neoverse
V1
Errata
#
1966096
*
This
applies
to
revisions
r1p0
-
r1p1
and
is
open
.
*
It
also
exists
in
r0p0
but
there
is
no
workaround
*
for
that
revision
.
*
x0
:
variant
[
4
:
7
]
and
revision
[
0
:
3
]
of
current
cpu
.
*
Shall
clobber
:
x0
-
x17
*
--------------------------------------------------
*/
func
errata_neoverse_v1_1966096_wa
/
*
Check
workaround
compatibility
.
*/
mov
x17
,
x30
bl
check_errata_1966096
cbz
x0
,
1
f
/
*
Apply
the
workaround
.
*/
mov
x0
,
#
0x3
msr
S3_6_C15_C8_0
,
x0
ldr
x0
,
=
0xEE010F12
msr
S3_6_C15_C8_2
,
x0
ldr
x0
,
=
0xFFFF0FFF
msr
S3_6_C15_C8_3
,
x0
ldr
x0
,
=
0x80000000003FF
msr
S3_6_C15_C8_1
,
x0
isb
1
:
ret
x17
endfunc
errata_neoverse_v1_1966096_wa
func
check_errata_1966096
mov
x1
,
#
0x10
mov
x2
,
#
0x11
b
cpu_rev_var_range
endfunc
check_errata_1966096
/
*
---------------------------------------------
*
HW
will
do
the
cache
maintenance
while
powering
down
*
---------------------------------------------
...
...
@@ -223,6 +259,7 @@ func neoverse_v1_errata_report
report_errata
ERRATA_V1_1852267
,
neoverse_v1
,
1852267
report_errata
ERRATA_V1_1925756
,
neoverse_v1
,
1925756
report_errata
ERRATA_V1_1940577
,
neoverse_v1
,
1940577
report_errata
ERRATA_V1_1966096
,
neoverse_v1
,
1966096
ldp
x8
,
x30
,
[
sp
],
#
16
ret
...
...
@@ -261,6 +298,11 @@ func neoverse_v1_reset_func
bl
errata_neoverse_v1_1940577_wa
#endif
#if ERRATA_V1_1966096
mov
x0
,
x18
bl
errata_neoverse_v1_1966096_wa
#endif
ret
x19
endfunc
neoverse_v1_reset_func
...
...
lib/cpus/cpu-ops.mk
View file @
9aacfb6f
...
...
@@ -392,6 +392,11 @@ ERRATA_V1_1925756 ?=0
# to revisions r1p0 and r1p1 of the Neoverse V1 cpu.
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
# exists in r0p0 as well but there is no workaround for that revision.
ERRATA_V1_1966096
?=
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
...
...
@@ -717,6 +722,10 @@ $(eval $(call add_define,ERRATA_V1_1925756))
$(eval
$(call
assert_boolean,ERRATA_V1_1940577))
$(eval
$(call
add_define,ERRATA_V1_1940577))
# Process ERRATA_V1_1966096 flag
$(eval
$(call
assert_boolean,ERRATA_V1_1966096))
$(eval
$(call
add_define,ERRATA_V1_1966096))
# Process ERRATA_DSU_798953 flag
$(eval
$(call
assert_boolean,ERRATA_DSU_798953))
$(eval
$(call
add_define,ERRATA_DSU_798953))
...
...
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