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
8c7f156f
"vscode:/vscode.git/clone" did not exist on "d686f8a8d0aa4ee42be6a9663c05374344e2c649"
Commit
8c7f156f
authored
Feb 05, 2021
by
Lauren Wehrmeister
Committed by
TrustedFirmware Code Review
Feb 05, 2021
Browse files
Merge "rainier: remove cpu workaround for errata 1542419" into integration
parents
6080aac9
041d7c7b
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/cpus/aarch64/rainier.S
View file @
8c7f156f
...
...
@@ -21,10 +21,6 @@
#error "Rainier CPU supports only AArch64. Compile with CTX_INCLUDE_AARCH32_REGS=0"
#endif
#if ERRATA_RAINIER_IC_TRAP
.
global
rainier_errata_ic_trap_handler
#endif
/*
--------------------------------------------------
*
Disable
speculative
loads
if
Rainier
supports
*
SSBS
.
...
...
@@ -45,42 +41,6 @@ func rainier_disable_speculative_loads
ret
endfunc
rainier_disable_speculative_loads
/*
--------------------------------------------------
*
Errata
Workaround
for
Neoverse
N1
Erratum
1542419
.
*
This
applies
to
revisions
r3p0
-
r4p0
of
Neoverse
N1
*
Since
Rainier
core
is
based
on
Neoverse
N1
r4p0
,
this
*
errata
applies
to
Rainier
core
r0p0
*
Inputs
:
*
x0
:
variant
[
4
:
7
]
and
revision
[
0
:
3
]
of
current
cpu
.
*
Shall
clobber
:
x0
-
x17
*
--------------------------------------------------
*/
func
errata_n1_1542419_wa
/
*
Compare
x0
against
revision
r3p0
and
r4p0
*/
mov
x17
,
x30
bl
check_errata_1542419
cbz
x0
,
1
f
/
*
Apply
instruction
patching
sequence
*/
mov
x0
,
xzr
msr
CPUPSELR_EL3
,
x0
ldr
x0
,
=
0xEE670D35
msr
CPUPOR_EL3
,
x0
ldr
x0
,
=
0xFFFF0FFF
msr
CPUPMR_EL3
,
x0
ldr
x0
,
=
0x08000020007D
msr
CPUPCR_EL3
,
x0
isb
1
:
ret
x17
endfunc
errata_n1_1542419_wa
func
check_errata_1542419
/
*
Applies
to
Rainier
core
r0p0
.
*/
mov
x1
,
#
0x00
b
cpu_rev_var_ls
endfunc
check_errata_1542419
func
rainier_reset_func
mov
x19
,
x30
...
...
@@ -95,11 +55,6 @@ func rainier_reset_func
bl
cpu_get_rev_var
mov
x18
,
x0
#if ERRATA_N1_1542419
mov
x0
,
x18
bl
errata_n1_1542419_wa
#endif
#if ENABLE_AMU
/
*
Make
sure
accesses
from
EL0
/
EL1
and
EL2
are
not
trapped
to
EL3
*/
mrs
x0
,
actlr_el3
...
...
@@ -146,53 +101,11 @@ func rainier_errata_report
bl
cpu_get_rev_var
mov
x8
,
x0
/
*
*
Report
all
errata
.
The
revision
-
variant
information
is
passed
to
*
checking
functions
of
each
errata
.
*/
report_errata
ERRATA_N1_1542419
,
rainier
,
1542419
ldp
x8
,
x30
,
[
sp
],
#
16
ret
endfunc
rainier_errata_report
#endif
/*
*
Handle
trap
of
EL0
IC
IVAU
instructions
to
EL3
by
executing
a
TLB
*
inner
-
shareable
invalidation
to
an
arbitrary
address
followed
by
a
DSB
.
*
*
x1
:
Exception
Syndrome
*/
func
rainier_errata_ic_trap_handler
cmp
x1
,
#
RAINIER_EC_IC_TRAP
b.ne
1
f
tlbi
vae3is
,
xzr
dsb
sy
#
Skip
the
IC
instruction
itself
mrs
x3
,
elr_el3
add
x3
,
x3
,
#
4
msr
elr_el3
,
x3
ldp
x0
,
x1
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X0
]
ldp
x2
,
x3
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X2
]
ldp
x4
,
x5
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X4
]
ldr
x30
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_LR
]
#if IMAGE_BL31 && RAS_EXTENSION
/
*
*
Issue
Error
Synchronization
Barrier
to
synchronize
SErrors
before
*
exiting
EL3
.
We
're running with EAs unmasked, so any synchronized
*
errors
would
be
taken
immediately
; therefore no need to inspect
*
DISR_EL1
register
.
*/
esb
#endif
eret
1
:
ret
endfunc
rainier_errata_ic_trap_handler
/
*
---------------------------------------------
*
This
function
provides
Rainier
specific
*
register
information
for
crash
reporting
.
...
...
@@ -212,7 +125,6 @@ func rainier_cpu_reg_dump
ret
endfunc
rainier_cpu_reg_dump
declare_cpu_ops
_eh
rainier
,
RAINIER_MIDR
,
\
declare_cpu_ops
rainier
,
RAINIER_MIDR
,
\
rainier_reset_func
,
\
rainier_errata_ic_trap_handler
,
\
rainier_core_pwr_dwn
plat/arm/board/morello/platform.mk
View file @
8c7f156f
...
...
@@ -65,5 +65,3 @@ USE_COHERENT_MEM := 0
include
plat/arm/common/arm_common.mk
include
plat/arm/css/common/css_common.mk
include
plat/arm/board/common/board_common.mk
override ERRATA_N1_1542419
:
= 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