Skip to content

Commit 7df7170

Browse files
jgoulyctmarinas
authored andcommitted
arm64: disable EL2 traps for PIE
Disable trapping of TCR2_EL1 and PIRx_EL1 registers, so they can be accessed from by EL1. Signed-off-by: Joey Gouly <[email protected]> Cc: Will Deacon <[email protected]> Reviewed-by: Mark Brown <[email protected]> Reviewed-by: Catalin Marinas <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent fa4cdcc commit 7df7170

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

arch/arm64/include/asm/el2_setup.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,21 @@
159159
mov x0, xzr
160160
mrs x1, id_aa64pfr1_el1
161161
ubfx x1, x1, #ID_AA64PFR1_EL1_SME_SHIFT, #4
162-
cbz x1, .Lset_fgt_\@
162+
cbz x1, .Lset_pie_fgt_\@
163163

164164
/* Disable nVHE traps of TPIDR2 and SMPRI */
165165
orr x0, x0, #HFGxTR_EL2_nSMPRI_EL1_MASK
166166
orr x0, x0, #HFGxTR_EL2_nTPIDR2_EL0_MASK
167167

168+
.Lset_pie_fgt_\@:
169+
mrs_s x1, SYS_ID_AA64MMFR3_EL1
170+
ubfx x1, x1, #ID_AA64MMFR3_EL1_S1PIE_SHIFT, #4
171+
cbz x1, .Lset_fgt_\@
172+
173+
/* Disable trapping of PIR_EL1 / PIRE0_EL1 */
174+
orr x0, x0, #HFGxTR_EL2_nPIR_EL1
175+
orr x0, x0, #HFGxTR_EL2_nPIRE0_EL1
176+
168177
.Lset_fgt_\@:
169178
msr_s SYS_HFGRTR_EL2, x0
170179
msr_s SYS_HFGWTR_EL2, x0

arch/arm64/include/asm/kvm_arm.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@
9393
#define HCR_HOST_NVHE_PROTECTED_FLAGS (HCR_HOST_NVHE_FLAGS | HCR_TSC)
9494
#define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
9595

96-
#define HCRX_GUEST_FLAGS (HCRX_EL2_SMPME)
97-
#define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn)
96+
#define HCRX_GUEST_FLAGS (HCRX_EL2_SMPME | HCRX_EL2_TCR2En)
97+
#define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn | HCRX_EL2_TCR2En)
9898

9999
/* TCR_EL2 Registers bits */
100100
#define TCR_EL2_RES1 ((1U << 31) | (1 << 23))

0 commit comments

Comments
 (0)