summaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/proc.S
diff options
context:
space:
mode:
authorJoey Gouly <joey.gouly@arm.com>2023-06-06 15:58:55 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2023-06-06 16:52:41 +0100
commit9e9bb6ede00a84275b65bb8d00812c1e24b5fa7e (patch)
tree62eabe2c4fccbb2c3db8f937020e186ab36b7b6c /arch/arm64/mm/proc.S
parenteeda243dfeb996fe236c624796630c16237a18d6 (diff)
downloadlinux-stable-9e9bb6ede00a84275b65bb8d00812c1e24b5fa7e.tar.gz
linux-stable-9e9bb6ede00a84275b65bb8d00812c1e24b5fa7e.tar.bz2
linux-stable-9e9bb6ede00a84275b65bb8d00812c1e24b5fa7e.zip
arm64: enable Permission Indirection Extension (PIE)
Now that the necessary changes have been made, set the Permission Indirection registers and enable the Permission Indirection Extension. Signed-off-by: Joey Gouly <joey.gouly@arm.com> Cc: Will Deacon <will@kernel.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Link: https://lore.kernel.org/r/20230606145859.697944-17-joey.gouly@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm/proc.S')
-rw-r--r--arch/arm64/mm/proc.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index 9513a8d2ce0e..2baeec419f62 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -454,6 +454,21 @@ SYM_FUNC_START(__cpu_setup)
#endif /* CONFIG_ARM64_HW_AFDBM */
msr mair_el1, mair
msr tcr_el1, tcr
+
+ mrs_s x1, SYS_ID_AA64MMFR3_EL1
+ ubfx x1, x1, #ID_AA64MMFR3_EL1_S1PIE_SHIFT, #4
+ cbz x1, .Lskip_indirection
+
+ mov_q x0, PIE_E0
+ msr REG_PIRE0_EL1, x0
+ mov_q x0, PIE_E1
+ msr REG_PIR_EL1, x0
+
+ mov x0, TCR2_EL1x_PIE
+ msr REG_TCR2_EL1, x0
+
+.Lskip_indirection:
+
/*
* Prepare SCTLR
*/