FROMLIST: arm64: asm: Provide set_sctlr_el2 macro
We will soon need to turn the EL2 stage 1 MMU on and off in nVHE protected mode, so refactor the set_sctlr_el1 macro to make it usable for that purpose. Acked-by: Will Deacon <will@kernel.org> Suggested-by: Will Deacon <will@kernel.org> Signed-off-by: Quentin Perret <qperret@google.com> Link: https://lore.kernel.org/r/20210315143536.214621-17-qperret@google.com Bug: 178098380 Change-Id: Ia1ae2a0e20ac1572da220572b3ca6bd3eaecca46
This commit is contained in:
@@ -676,11 +676,11 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU
|
|||||||
.endm
|
.endm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set SCTLR_EL1 to the passed value, and invalidate the local icache
|
* Set SCTLR_ELx to the @reg value, and invalidate the local icache
|
||||||
* in the process. This is called when setting the MMU on.
|
* in the process. This is called when setting the MMU on.
|
||||||
*/
|
*/
|
||||||
.macro set_sctlr_el1, reg
|
.macro set_sctlr, sreg, reg
|
||||||
msr sctlr_el1, \reg
|
msr \sreg, \reg
|
||||||
isb
|
isb
|
||||||
/*
|
/*
|
||||||
* Invalidate the local I-cache so that any instructions fetched
|
* Invalidate the local I-cache so that any instructions fetched
|
||||||
@@ -692,6 +692,14 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU
|
|||||||
isb
|
isb
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro set_sctlr_el1, reg
|
||||||
|
set_sctlr sctlr_el1, \reg
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro set_sctlr_el2, reg
|
||||||
|
set_sctlr sctlr_el2, \reg
|
||||||
|
.endm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether to yield to another runnable task from kernel mode NEON code
|
* Check whether to yield to another runnable task from kernel mode NEON code
|
||||||
* (which runs with preemption disabled).
|
* (which runs with preemption disabled).
|
||||||
|
Reference in New Issue
Block a user