mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
Merge branch 'hyp-boot-mode-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable
This commit is contained in:
commit
648f3b6998
15 changed files with 673 additions and 27 deletions
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/domain.h>
|
||||
#include <asm/opcodes-virt.h>
|
||||
|
||||
#define IOMEM(x) (x)
|
||||
|
||||
|
@ -239,6 +240,33 @@
|
|||
.endm
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Helper macro to enter SVC mode cleanly and mask interrupts. reg is
|
||||
* a scratch register for the macro to overwrite.
|
||||
*
|
||||
* This macro is intended for forcing the CPU into SVC mode at boot time.
|
||||
* you cannot return to the original mode.
|
||||
*
|
||||
* Beware, it also clobers LR.
|
||||
*/
|
||||
.macro safe_svcmode_maskall reg:req
|
||||
mrs \reg , cpsr
|
||||
mov lr , \reg
|
||||
and lr , lr , #MODE_MASK
|
||||
cmp lr , #HYP_MODE
|
||||
orr \reg , \reg , #PSR_A_BIT | PSR_I_BIT | PSR_F_BIT
|
||||
bic \reg , \reg , #MODE_MASK
|
||||
orr \reg , \reg , #SVC_MODE
|
||||
THUMB( orr \reg , \reg , #PSR_T_BIT )
|
||||
msr spsr_cxsf, \reg
|
||||
adr lr, BSYM(2f)
|
||||
bne 1f
|
||||
__MSR_ELR_HYP(14)
|
||||
__ERET
|
||||
1: movs pc, lr
|
||||
2:
|
||||
.endm
|
||||
|
||||
/*
|
||||
* STRT/LDRT access macros with ARM and Thumb-2 variants
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue