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
6fd4a506
Unverified
Commit
6fd4a506
authored
Aug 28, 2018
by
Dimitris Papastamos
Committed by
GitHub
Aug 28, 2018
Browse files
Merge pull request #1536 from jts-arm/dsu
DSU erratum 936184 workaround: bug fix
parents
3c065eb1
7436d5d3
Changes
1
Hide whitespace changes
Inline
Side-by-side
lib/cpus/aarch64/dsu_helpers.S
View file @
6fd4a506
...
@@ -8,15 +8,19 @@
...
@@ -8,15 +8,19 @@
#include <dsu_def.h>
#include <dsu_def.h>
#include <errata_report.h>
#include <errata_report.h>
/*
/*
-----------------------------------------------------------------------
*
DSU
erratum
936184
*
DSU
erratum
936184
check
function
*
Check
the
DSU
variant
,
revision
and
configuration
to
determine
if
the
*
Checks
the
DSU
variant
,
revision
and
configuration
to
determine
if
*
erratum
applies
.
This
erratum
was
fixed
in
r2p0
.
*
the
erratum
applies
.
Erratum
applies
if
ACP
interface
is
present
*
in
the
DSU
and
revision
-
variant
<
r2p0
.
*
*
The
erratum
was
fixed
in
r2p0
.
*
*
*
This
function
is
called
from
both
assembly
and
C
environment
.
So
it
*
This
function
is
called
from
both
assembly
and
C
environment
.
So
it
*
follows
AAPCS
.
*
follows
AAPCS
.
*
*
*
Clobbers
:
x0
-
x3
*
Clobbers
:
x0
-
x3
*
-----------------------------------------------------------------------
*/
*/
.
globl
check_errata_dsu_936184
.
globl
check_errata_dsu_936184
.
globl
errata_dsu_936184_wa
.
globl
errata_dsu_936184_wa
...
@@ -25,7 +29,7 @@ func check_errata_dsu_936184
...
@@ -25,7 +29,7 @@ func check_errata_dsu_936184
mov
x2
,
#
ERRATA_NOT_APPLIES
mov
x2
,
#
ERRATA_NOT_APPLIES
mov
x3
,
#
ERRATA_APPLIES
mov
x3
,
#
ERRATA_APPLIES
/
*
Erratum
applies
only
if
ACP
interface
is
present
in
DSU
*/
/
*
Erratum
applies
only
if
DSU
has
the
ACP
interface
*/
mov
x0
,
x2
mov
x0
,
x2
mrs
x1
,
CLUSTERCFR_EL1
mrs
x1
,
CLUSTERCFR_EL1
ubfx
x1
,
x1
,
#
CLUSTERCFR_ACP_SHIFT
,
#
1
ubfx
x1
,
x1
,
#
CLUSTERCFR_ACP_SHIFT
,
#
1
...
@@ -44,8 +48,14 @@ func check_errata_dsu_936184
...
@@ -44,8 +48,14 @@ func check_errata_dsu_936184
ret
ret
endfunc
check_errata_dsu_936184
endfunc
check_errata_dsu_936184
/*
--------------------------------------------------
*
Errata
Workaround
for
DSU
erratum
#
936184
.
*
*
Can
clobber
only
:
x0
-
x17
*
--------------------------------------------------
*/
func
errata_dsu_936184_wa
func
errata_dsu_936184_wa
mov
x
20
,
x30
mov
x
17
,
x30
bl
check_errata_dsu_936184
bl
check_errata_dsu_936184
cbz
x0
,
1
f
cbz
x0
,
1
f
...
@@ -56,5 +66,5 @@ func errata_dsu_936184_wa
...
@@ -56,5 +66,5 @@ func errata_dsu_936184_wa
msr
CLUSTERACTLR_EL1
,
x0
msr
CLUSTERACTLR_EL1
,
x0
isb
isb
1
:
1
:
ret
x
20
ret
x
17
endfunc
errata_dsu_936184_wa
endfunc
errata_dsu_936184_wa
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