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
204fd991
"vscode:/vscode.git/clone" did not exist on "e60458793ab9703bb65adb6c326f43c6bd5fd126"
Commit
204fd991
authored
Jun 29, 2021
by
Manish Pandey
Committed by
TrustedFirmware Code Review
Jun 29, 2021
Browse files
Merge "errata: workaround for Cortex A77 errata 1791578" into integration
parents
b9f7fcc9
3f0bec7c
Changes
4
Show whitespace changes
Inline
Side-by-side
docs/design/cpu-specific-build-macros.rst
View file @
204fd991
...
...
@@ -263,6 +263,9 @@ For Cortex-A77, the following errata build flags are defined :
- ``ERRATA_A77_1946167``: This applies errata 1946167 workaround to Cortex-A77
CPU. This needs to be enabled only for revision <= r1p1 of the CPU.
- ``ERRATA_A77_1791578``: This applies errata 1791578 workaround to Cortex-A77
CPU. This needs to be enabled for r0p0, r1p0, and r1p1, it is still open.
For Cortex-A78, the following errata build flags are defined :
- ``ERRATA_A78_1688305``: This applies errata 1688305 workaround to Cortex-A78
...
...
include/lib/cpus/aarch64/cortex_a77.h
View file @
204fd991
/*
* 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
*/
...
...
@@ -24,6 +24,12 @@
#define CORTEX_A77_CPUPWRCTLR_EL1 S3_0_C15_C2_7
#define CORTEX_A77_CPUPWRCTLR_EL1_CORE_PWRDN_BIT (U(1) << 0)
/*******************************************************************************
* CPU Auxiliary Control register specific definitions.
******************************************************************************/
#define CORTEX_A77_ACTLR2_EL1 S3_0_C15_C1_1
#define CORTEX_A77_ACTLR2_EL1_BIT_2 (ULL(1) << 2)
#define CORTEX_A77_CPUPSELR_EL3 S3_6_C15_C8_0
#define CORTEX_A77_CPUPCR_EL3 S3_6_C15_C8_1
#define CORTEX_A77_CPUPOR_EL3 S3_6_C15_C8_2
...
...
lib/cpus/aarch64/cortex_a77.S
View file @
204fd991
...
...
@@ -166,6 +166,34 @@ func check_errata_1946167
b
cpu_rev_var_ls
endfunc
check_errata_1946167
/
*
--------------------------------------------------
*
Errata
Workaround
for
Cortex
A77
Errata
#
1791578
.
*
This
applies
to
revisions
r0p0
,
r1p0
,
and
r1p1
and
is
still
open
.
*
x0
:
variant
[
4
:
7
]
and
revision
[
0
:
3
]
of
current
cpu
.
*
Shall
clobber
:
x0
-
x17
*
--------------------------------------------------
*/
func
errata_a77_1791578_wa
/
*
Check
workaround
compatibility
.
*/
mov
x17
,
x30
bl
check_errata_1791578
cbz
x0
,
1
f
/
*
Set
bit
2
in
ACTLR2_EL1
*/
mrs
x1
,
CORTEX_A77_ACTLR2_EL1
orr
x1
,
x1
,
#
CORTEX_A77_ACTLR2_EL1_BIT_2
msr
CORTEX_A77_ACTLR2_EL1
,
x1
isb
1
:
ret
x17
endfunc
errata_a77_1791578_wa
func
check_errata_1791578
/
*
Applies
to
r0p0
,
r1p0
,
and
r1p1
right
now
*/
mov
x1
,
#
0x11
b
cpu_rev_var_ls
endfunc
check_errata_1791578
/
*
-------------------------------------------------
*
The
CPU
Ops
reset
function
for
Cortex
-
A77
.
*
Shall
clobber
:
x0
-
x19
...
...
@@ -191,6 +219,11 @@ func cortex_a77_reset_func
bl
errata_a77_1946167_wa
#endif
#if ERRATA_A77_1791578
mov
x0
,
x18
bl
errata_a77_1791578_wa
#endif
ret
x19
endfunc
cortex_a77_reset_func
...
...
@@ -227,6 +260,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
report_errata
ERRATA_A77_1791578
,
cortex_a77
,
1791578
ldp
x8
,
x30
,
[
sp
],
#
16
ret
...
...
lib/cpus/cpu-ops.mk
View file @
204fd991
...
...
@@ -294,6 +294,10 @@ ERRATA_A77_1925769 ?=0
# only to revision <= r1p1 of the Cortex A77 cpu.
ERRATA_A77_1946167
?=
0
# Flag to apply erratum 1791578 workaround during reset. This erratum applies
# to revisions r0p0, r1p0, and r1p1, it is still open.
ERRATA_A77_1791578
?=
0
# Flag to apply erratum 1688305 workaround during reset. This erratum applies
# to revisions r0p0 - r1p0 of the A78 cpu.
ERRATA_A78_1688305
?=
0
...
...
@@ -597,6 +601,10 @@ $(eval $(call add_define,ERRATA_A77_1925769))
$(eval
$(call
assert_boolean,ERRATA_A77_1946167))
$(eval
$(call
add_define,ERRATA_A77_1946167))
# Process ERRATA_A77_1791578 flag
$(eval
$(call
assert_boolean,ERRATA_A77_1791578))
$(eval
$(call
add_define,ERRATA_A77_1791578))
# Process ERRATA_A78_1688305 flag
$(eval
$(call
assert_boolean,ERRATA_A78_1688305))
$(eval
$(call
add_define,ERRATA_A78_1688305))
...
...
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