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
de2dd4e7
Commit
de2dd4e7
authored
4 years ago
by
Madhukar Pappireddy
Committed by
TrustedFirmware Code Review
4 years ago
Browse files
Options
Download
Plain Diff
Merge "lib/cpu: Workaround for Cortex A77 erratum 1946167" into integration
parents
e729595f
a492edc4
master
v2.5
v2.5-rc1
v2.5-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
docs/design/cpu-specific-build-macros.rst
+4
-1
docs/design/cpu-specific-build-macros.rst
lib/cpus/aarch64/cortex_a77.S
+59
-1
lib/cpus/aarch64/cortex_a77.S
lib/cpus/cpu-ops.mk
+8
-0
lib/cpus/cpu-ops.mk
with
71 additions
and
2 deletions
+71
-2
docs/design/cpu-specific-build-macros.rst
View file @
de2dd4e7
...
...
@@ -260,6 +260,9 @@ For Cortex-A77, the following errata build flags are defined :
- ``ERRATA_A77_1925769``: This applies errata 1925769 workaround to Cortex-A77
CPU. This needs to be enabled only for revision <= r1p1 of the CPU.
- ``ERRATA_A77_1946167``: This applies errata 1946167 workaround to Cortex-A77
CPU. This needs to be enabled only for revision <= r1p1 of the CPU.
For Cortex-A78, the following errata build flags are defined :
- ``ERRATA_A78_1688305``: This applies errata 1688305 workaround to Cortex-A78
...
...
@@ -385,7 +388,7 @@ architecture that can be enabled by the platform as desired.
--------------
*Copyright (c) 2014-202
0
, Arm Limited and Contributors. All rights reserved.*
*Copyright (c) 2014-202
1
, Arm Limited and Contributors. All rights reserved.*
.. _CVE-2017-5715: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715
.. _CVE-2018-3639: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3639
...
...
This diff is collapsed.
Click to expand it.
lib/cpus/aarch64/cortex_a77.S
View file @
de2dd4e7
/*
*
Copyright
(
c
)
2018
-
202
0
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2018
-
202
1
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
SPDX
-
License
-
Identifier
:
BSD
-
3
-
Clause
*/
...
...
@@ -114,6 +114,58 @@ func check_errata_1925769
b
cpu_rev_var_ls
endfunc
check_errata_1925769
/
*
--------------------------------------------------
*
Errata
Workaround
for
Cortex
A77
Errata
#
1946167
.
*
This
applies
to
revision
<=
r1p1
of
Cortex
A77
.
*
Inputs
:
*
x0
:
variant
[
4
:
7
]
and
revision
[
0
:
3
]
of
current
cpu
.
*
Shall
clobber
:
x0
-
x17
*
--------------------------------------------------
*/
func
errata_a77_1946167_wa
/
*
Compare
x0
against
revision
<=
r1p1
*/
mov
x17
,
x30
bl
check_errata_1946167
cbz
x0
,
1
f
ldr
x0
,=
0x4
msr
CORTEX_A77_CPUPSELR_EL3
,
x0
ldr
x0
,=
0x10E3900002
msr
CORTEX_A77_CPUPOR_EL3
,
x0
ldr
x0
,=
0x10FFF00083
msr
CORTEX_A77_CPUPMR_EL3
,
x0
ldr
x0
,=
0x2001003FF
msr
CORTEX_A77_CPUPCR_EL3
,
x0
ldr
x0
,=
0x5
msr
CORTEX_A77_CPUPSELR_EL3
,
x0
ldr
x0
,=
0x10E3800082
msr
CORTEX_A77_CPUPOR_EL3
,
x0
ldr
x0
,=
0x10FFF00083
msr
CORTEX_A77_CPUPMR_EL3
,
x0
ldr
x0
,=
0x2001003FF
msr
CORTEX_A77_CPUPCR_EL3
,
x0
ldr
x0
,=
0x6
msr
CORTEX_A77_CPUPSELR_EL3
,
x0
ldr
x0
,=
0x10E3800200
msr
CORTEX_A77_CPUPOR_EL3
,
x0
ldr
x0
,=
0x10FFF003E0
msr
CORTEX_A77_CPUPMR_EL3
,
x0
ldr
x0
,=
0x2001003FF
msr
CORTEX_A77_CPUPCR_EL3
,
x0
isb
1
:
ret
x17
endfunc
errata_a77_1946167_wa
func
check_errata_1946167
/
*
Applies
to
everything
<=
r1p1
*/
mov
x1
,
#
0x11
b
cpu_rev_var_ls
endfunc
check_errata_1946167
/
*
-------------------------------------------------
*
The
CPU
Ops
reset
function
for
Cortex
-
A77
.
*
Shall
clobber
:
x0
-
x19
...
...
@@ -134,6 +186,11 @@ func cortex_a77_reset_func
bl
errata_a77_1925769_wa
#endif
#if ERRATA_A77_1946167
mov
x0
,
x18
bl
errata_a77_1946167_wa
#endif
ret
x19
endfunc
cortex_a77_reset_func
...
...
@@ -169,6 +226,7 @@ func cortex_a77_errata_report
*/
report_errata
ERRATA_A77_1508412
,
cortex_a77
,
1508412
report_errata
ERRATA_A77_1925769
,
cortex_a77
,
1925769
report_errata
ERRATA_A77_1946167
,
cortex_a77
,
1946167
ldp
x8
,
x30
,
[
sp
],
#
16
ret
...
...
This diff is collapsed.
Click to expand it.
lib/cpus/cpu-ops.mk
View file @
de2dd4e7
...
...
@@ -290,6 +290,10 @@ ERRATA_A77_1508412 ?=0
# only to revision <= r1p1 of the Cortex A77 cpu.
ERRATA_A77_1925769
?=
0
# Flag to apply erratum 1946167 workaround during reset. This erratum applies
# only to revision <= r1p1 of the Cortex A77 cpu.
ERRATA_A77_1946167
?=
0
# Flag to apply erratum 1688305 workaround during reset. This erratum applies
# to revisions r0p0 - r1p0 of the A78 cpu.
ERRATA_A78_1688305
?=
0
...
...
@@ -585,6 +589,10 @@ $(eval $(call add_define,ERRATA_A77_1508412))
$(eval
$(call
assert_boolean,ERRATA_A77_1925769))
$(eval
$(call
add_define,ERRATA_A77_1925769))
# Process ERRATA_A77_1946167 flag
$(eval
$(call
assert_boolean,ERRATA_A77_1946167))
$(eval
$(call
add_define,ERRATA_A77_1946167))
# Process ERRATA_A78_1688305 flag
$(eval
$(call
assert_boolean,ERRATA_A78_1688305))
$(eval
$(call
add_define,ERRATA_A78_1688305))
...
...
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