ARM: HYP/non-sec: migrate stack
The current code that switches into HYP mode doesn't bother to set up a stack for HYP mode. This doesn't work for EFI applications as they expect a usable stack. Fix this by migrating the stack pointer from SP_svc to SP_hyp while in Monitor mode. This restores the stack pointer when we drop into HYP mode. Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
f260bd30e8
commit
907ee2945e
@ -80,6 +80,8 @@ _secure_monitor:
|
||||
#ifdef CONFIG_ARMV7_VIRT
|
||||
orreq r5, r5, #0x100 @ allow HVC instruction
|
||||
moveq r6, #HYP_MODE @ Enter the kernel as HYP
|
||||
mrseq r3, sp_svc
|
||||
msreq sp_hyp, r3 @ migrate SP
|
||||
#endif
|
||||
|
||||
mcr p15, 0, r5, c1, c1, 0 @ write SCR (with NS bit set)
|
||||
|
Loading…
Reference in New Issue
Block a user