[PATCH 0/5] Backport ARM64 VHE boot fixes to 6.6.y
From: Colton Lewis <hidden>
Date: 2026-07-01 20:43:44
Also in:
kvmarm, lkml, stable
This series backports VHE CPU boot fixes to the 6.6.y stable branch.
These fixes are already present in the 6.12.y stable branch (and
newer), but are missing in 6.6.y. They are required to enable booting
L1 guests with nested virtualization enabled (kvm-arm.mode=nested).
Without these patches, a 6.6.y guest boots with HCR_EL2.E2H
incorrectly configured (because it misses VHE-only detection or early
initialization), causing early boot hangs/trap loops.
Conflict resolutions:
- Patch 4 (KVM: arm64: Initialize HCR_EL2.E2H early) had conflicts in
arch/arm64/kvm/hyp/nvhe/hyp-init.S due to differences in state
initialization. Resolved by extracting EL2 state initialization into
__kvm_init_el2_state.
- Patch 5 (arm64: Revamp HCR_EL2.E2H RES1 detection) had conflicts in
arch/arm64/include/asm/el2_setup.h. Resolved by using raw msr hcr_el2
instead of the missing msr_hcr_el2 macro.
Marc Zyngier (4):
arm64: sysreg: Add layout for ID_AA64MMFR4_EL1
arm64: Treat HCR_EL2.E2H as RES1 when ID_AA64MMFR4_EL1.E2H0 is
negative
arm64: Fix early handling of FEAT_E2H0 not being implemented
arm64: Revamp HCR_EL2.E2H RES1 detection
Mark Rutland (1):
KVM: arm64: Initialize HCR_EL2.E2H early
arch/arm64/include/asm/el2_setup.h | 52 ++++++++++++++++++++++++++++++
arch/arm64/kernel/head.S | 17 +++-------
arch/arm64/kvm/hyp/nvhe/hyp-init.S | 16 +++++++--
arch/arm64/tools/sysreg | 37 +++++++++++++++++++++
4 files changed, 107 insertions(+), 15 deletions(-)
base-commit: d1cfde2d5d15be14123bdd1689162bd27f995a90
--
2.55.0.rc2.803.g1fd1e6609c-goog