[PATCH v5 0/6] initialize SCTRL2_ELx
Yeoreum Yun
yeoreum.yun at arm.com
Wed Sep 17 07:56:12 PDT 2025
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 v4 to v5:
- using .ifc in set_sctlr2_elx
- change (re)initialise position after SCTLR_ELx
- add docs for SCTRL2_ELx
- rebase to v6.17-rc6
- https://lore.kernel.org/all/20250821172408.2101870-1-yeoreum.yun@arm.com/
from v3 to v4:
- integrate set_sctlr2_elx() and __set_sctlr2_elx() to set_sctlr2_elx()
without isb()
- fix the wrong register setting in set_sctlr2_elx().
- add initialise SCTLR2_EL2 at HVC_SOFT_RESTART.
- https://lore.kernel.org/all/20250813120118.3953541-1-yeoreum.yun@arm.com/
from v2 to v3:
- rewrite commit messages.
- fix missing SCTLR2_EL2 synchonization at boot.
- merging the __kvm_host_psci_cpu_entry() changes into patch #1
- https://lore.kernel.org/all/20250811163340.1561893-1-yeoreum.yun@arm.com/
from v1 to v2:
- rebase to v6.17-rc1
- https://lore.kernel.org/all/20250804121724.3681531-1-yeoreum.yun@arm.com/
Dave Martin (1):
docs: arm64: Document booting requirements for FEAT_SCTLR2
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
Documentation/arch/arm64/booting.rst | 10 ++++++++++
arch/arm64/include/asm/assembler.h | 15 +++++++++++++++
arch/arm64/include/asm/el2_setup.h | 17 +++++++++++++++--
arch/arm64/include/asm/processor.h | 3 +++
arch/arm64/include/asm/suspend.h | 2 +-
arch/arm64/include/asm/sysreg.h | 5 +++++
arch/arm64/kernel/cpu-reset.S | 3 +++
arch/arm64/kernel/head.S | 5 +++++
arch/arm64/kernel/hyp-stub.S | 13 +++++++++++++
arch/arm64/kernel/process.c | 9 +++++++++
arch/arm64/kvm/hyp/nvhe/hyp-init.S | 3 +++
arch/arm64/kvm/hyp/nvhe/psci-relay.c | 3 +++
arch/arm64/mm/proc.S | 24 ++++++++++++++++--------
13 files changed, 101 insertions(+), 11 deletions(-)
--
LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
More information about the linux-arm-kernel
mailing list