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
cd07df8c
Commit
cd07df8c
authored
Dec 18, 2019
by
Alexei Fedorov
Committed by
TrustedFirmware Code Review
Dec 18, 2019
Browse files
Merge "aarch64: Fix stack pointer maintenance on EA handling path" into integration
parents
0d35873c
bb9549ba
Changes
2
Hide whitespace changes
Inline
Side-by-side
bl31/aarch64/ea_delegate.S
View file @
cd07df8c
...
@@ -102,9 +102,11 @@ func enter_lower_el_sync_ea
...
@@ -102,9 +102,11 @@ func enter_lower_el_sync_ea
/
*
Setup
exception
class
and
syndrome
arguments
for
platform
handler
*/
/
*
Setup
exception
class
and
syndrome
arguments
for
platform
handler
*/
mov
x0
,
#
ERROR_EA_SYNC
mov
x0
,
#
ERROR_EA_SYNC
mrs
x1
,
esr_el3
mrs
x1
,
esr_el3
adr
x30
,
el3_exit
bl
delegate_sync_ea
b
delegate_sync_ea
/
*
el3_exit
assumes
SP_EL0
on
entry
*/
msr
spsel
,
#
MODE_SP_EL0
b
el3_exit
2
:
2
:
ldp
x0
,
x1
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X0
]
ldp
x0
,
x1
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X0
]
ldp
x2
,
x3
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X2
]
ldp
x2
,
x3
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X2
]
...
@@ -146,8 +148,11 @@ func enter_lower_el_async_ea
...
@@ -146,8 +148,11 @@ func enter_lower_el_async_ea
/
*
Setup
exception
class
and
syndrome
arguments
for
platform
handler
*/
/
*
Setup
exception
class
and
syndrome
arguments
for
platform
handler
*/
mov
x0
,
#
ERROR_EA_ASYNC
mov
x0
,
#
ERROR_EA_ASYNC
mrs
x1
,
esr_el3
mrs
x1
,
esr_el3
adr
x30
,
el3_exit
bl
delegate_async_ea
b
delegate_async_ea
/
*
el3_exit
assumes
SP_EL0
on
entry
*/
msr
spsel
,
#
MODE_SP_EL0
b
el3_exit
endfunc
enter_lower_el_async_ea
endfunc
enter_lower_el_async_ea
...
...
lib/el3_runtime/aarch64/context.S
View file @
cd07df8c
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include <arch.h>
#include <arch.h>
#include <asm_macros.S>
#include <asm_macros.S>
#include <assert_macros.S>
#include <context.h>
#include <context.h>
.
global
el1_sysregs_context_save
.
global
el1_sysregs_context_save
...
@@ -477,6 +478,13 @@ endfunc restore_gp_pmcr_pauth_regs
...
@@ -477,6 +478,13 @@ endfunc restore_gp_pmcr_pauth_regs
*
------------------------------------------------------------------
*
------------------------------------------------------------------
*/
*/
func
el3_exit
func
el3_exit
#if ENABLE_ASSERTIONS
/
*
el3_exit
assumes
SP_EL0
on
entry
*/
mrs
x17
,
spsel
cmp
x17
,
#
MODE_SP_EL0
ASM_ASSERT
(
eq
)
#endif
/
*
----------------------------------------------------------
/
*
----------------------------------------------------------
*
Save
the
current
SP_EL0
i
.
e
.
the
EL3
runtime
stack
which
*
Save
the
current
SP_EL0
i
.
e
.
the
EL3
runtime
stack
which
*
will
be
used
for
handling
the
next
SMC
.
*
will
be
used
for
handling
the
next
SMC
.
...
...
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