[PATCH 0/4] KVM: arm64: VTCR_EL2 conversion to feature dependency framework

Marc Zyngier maz at kernel.org
Sat Nov 29 06:45:21 PST 2025


Alexandru recently pointed out [0] that the RES0 handling of VTCR_EL2
was broken now that we have some support for stage-2 AF.

Instead of addressing this piecemeal as Alexandru was suggesting in
his series, I've taken the approach to do a full-blown conversion,
including moving VTCR_EL2 to the sysreg file (the latter resulting in
a bit of churn in the page table code, both canonical and nested).

The result is, as usual, on the larger side of things, but mostly made
of generated stuff, though the definition for FEAT_LPA2 is horrific,
and required some adjustments to the way we define TGRAN*_2.

Lightly tested on M2.

[0] https://lore.kernel.org/r/20251128100946.74210-1-alexandru.elisei@arm.com

Marc Zyngier (4):
  arm64: Convert ID_AA64MMFR0_EL1.TGRAN{4,16,64}_2 to UnsignedEnum
  arm64: Convert VTCR_EL2 to sysreg infratructure
  KVM: arm64: Account for RES1 bits in DECLARE_FEAT_MAP()
  KVM: arm64: Convert VTCR_EL2 to config-driven sanitisation

 arch/arm64/include/asm/kvm_arm.h | 52 ++++++-----------------
 arch/arm64/include/asm/sysreg.h  |  1 -
 arch/arm64/kvm/config.c          | 72 +++++++++++++++++++++++++++++++-
 arch/arm64/kvm/hyp/pgtable.c     |  8 ++--
 arch/arm64/kvm/nested.c          | 11 +++--
 arch/arm64/tools/sysreg          | 63 ++++++++++++++++++++++++++--
 6 files changed, 151 insertions(+), 56 deletions(-)

-- 
2.47.3




More information about the linux-arm-kernel mailing list