[PATCH v3 0/5] initialize SCTRL2_ELx

From: Yeoreum Yun
Date: Wed Aug 13 2025 - 08:02:31 EST


This series introduces initial support for the SCTLR2_ELx registers in Linux.
The feature is optional starting from ARMv8.8/ARMv9.3,
and becomes mandatory from ARMv8.9/ARMv9.4.

Currently, Linux has no strict need to modify SCTLR2_ELx—
at least assuming that firmware initializes
these registers to reasonable defaults.

However, several upcoming architectural features will require configuring
control bits in these registers.
Notable examples include FEAT_PAuth_LR and FEAT_CPA2.

Patch History
==============
from v2 to v3:
- rewrite commit messages.
- fix missing SCTLR2_EL2 synchonization at boot.
- https://lore.kernel.org/all/20250811163340.1561893-1-yeoreum.yun@xxxxxxx/

from v1 to v2:
- rebase to v6.17-rc1
- https://lore.kernel.org/all/20250804121724.3681531-1-yeoreum.yun@xxxxxxx/

Yeoreum Yun (5):
arm64: make SCTLR2_EL1 accessible
arm64: initialise SCTLR2_ELx register at boot time
arm64: save/restore SCTLR2_EL1 when cpu_suspend()/resume()
arm64: initialise SCTLR2_EL1 at cpu_soft_restart()
arm64: make the per-task SCTLR2_EL1

arch/arm64/include/asm/assembler.h | 22 ++++++++++++++++++++++
arch/arm64/include/asm/el2_setup.h | 14 +++++++++++++-
arch/arm64/include/asm/processor.h | 5 +++++
arch/arm64/include/asm/suspend.h | 2 +-
arch/arm64/include/asm/sysreg.h | 5 +++++
arch/arm64/kernel/cpu-reset.S | 6 ++++++
arch/arm64/kernel/head.S | 5 +++++
arch/arm64/kernel/hyp-stub.S | 10 ++++++++++
arch/arm64/kernel/process.c | 9 +++++++++
arch/arm64/kvm/hyp/nvhe/psci-relay.c | 3 +++
arch/arm64/mm/proc.S | 26 ++++++++++++++++++--------
11 files changed, 97 insertions(+), 10 deletions(-)


base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
--
LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}