mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 02:19:54 +00:00
ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU
commit f6edbbf36d upstream.
X-Gene u-boot runs in EL2 mode with MMU enabled hence we might
have stale EL2 tlb enteris when we enable EL2 MMU on each host CPU.
This can happen on any ARM/ARM64 board running bootloader in
Hyp-mode (or EL2-mode) with MMU enabled.
This patch ensures that we flush all Hyp-mode (or EL2-mode) TLBs
on each host CPU before enabling Hyp-mode (or EL2-mode) MMU.
Tested-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Signed-off-by: Anup Patel <anup.patel@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6487706b8a
commit
0a7c89f6c7
@@ -98,6 +98,10 @@ __do_hyp_init:
|
|||||||
mrc p15, 0, r0, c10, c2, 1
|
mrc p15, 0, r0, c10, c2, 1
|
||||||
mcr p15, 4, r0, c10, c2, 1
|
mcr p15, 4, r0, c10, c2, 1
|
||||||
|
|
||||||
|
@ Invalidate the stale TLBs from Bootloader
|
||||||
|
mcr p15, 4, r0, c8, c7, 0 @ TLBIALLH
|
||||||
|
dsb ish
|
||||||
|
|
||||||
@ Set the HSCTLR to:
|
@ Set the HSCTLR to:
|
||||||
@ - ARM/THUMB exceptions: Kernel config (Thumb-2 kernel)
|
@ - ARM/THUMB exceptions: Kernel config (Thumb-2 kernel)
|
||||||
@ - Endianness: Kernel config
|
@ - Endianness: Kernel config
|
||||||
|
|||||||
@@ -74,6 +74,10 @@ __do_hyp_init:
|
|||||||
msr mair_el2, x4
|
msr mair_el2, x4
|
||||||
isb
|
isb
|
||||||
|
|
||||||
|
/* Invalidate the stale TLBs from Bootloader */
|
||||||
|
tlbi alle2
|
||||||
|
dsb sy
|
||||||
|
|
||||||
mrs x4, sctlr_el2
|
mrs x4, sctlr_el2
|
||||||
and x4, x4, #SCTLR_EL2_EE // preserve endianness of EL2
|
and x4, x4, #SCTLR_EL2_EE // preserve endianness of EL2
|
||||||
ldr x5, =SCTLR_EL2_FLAGS
|
ldr x5, =SCTLR_EL2_FLAGS
|
||||||
|
|||||||
Reference in New Issue
Block a user