[PATCH v5 0/6] initialize SCTRL2_ELx

Yeoreum Yun posted 6 patches 2 weeks ago
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(-)
[PATCH v5 0/6] initialize SCTRL2_ELx
Posted by Yeoreum Yun 2 weeks ago
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}
Re: [PATCH v5 0/6] initialize SCTRL2_ELx
Posted by Will Deacon 2 weeks ago
On Wed, Sep 17, 2025 at 03:56:12PM +0100, Yeoreum Yun wrote:
> 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/

Sorry, this is a really pedantic nit, but please can you fix the typo in
the subject if/when you next post this?

More importantly, as Dave says, I don't see the point in merging this
until we have a use for the register. At that point, your patches can
hopefully be a prefix of the series that uses it.

Will
Re: [PATCH v5 0/6] initialize SCTRL2_ELx
Posted by Yeoreum Yun 2 weeks ago
Hi,
> On Wed, Sep 17, 2025 at 03:56:12PM +0100, Yeoreum Yun wrote:
> > 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/
>
> Sorry, this is a really pedantic nit, but please can you fix the typo in
> the subject if/when you next post this?
>
> More importantly, as Dave says, I don't see the point in merging this
> until we have a use for the register. At that point, your patches can
> hopefully be a prefix of the series that uses it.

Okay. Thanks.

--
Sincerely,
Yeoreum Yun