[PATCH v2 0/3] arm64: Dealing with VHE-only CPUs

Marc Zyngier maz at kernel.org
Tue Mar 30 18:39:44 BST 2021


This short series is a rewrite of [0] after some reviewing from
Will. It simplifies the esoteric "stay at EL2" path, and move the
feature override code where it actually belongs, allowing us to tell
the user that no, nVHE isn't a thing on these system.

Additional bonus: the box can now boot without CONFIG_ARM64_VHE (and
without KVM, of course), though that's a pretty weird state.

This allows the infamous M1 to boot (tested on a M1 Mini).

Hector, feel free to pull these two patches as a preamble to the next
version of your series, though I'd expect this to go via the arm64
tree for obvious reasons.

* From v1 [1]:
  - added a comment describing the mapping various states
    the override mask/val tuple can describe
  - added a patch to prevent KVM from initialising, treating
    the lact of CONFIG_ARM64_VHE as a mismatched boot

[0] https://lore.kernel.org/r/20210304213902.83903-2-marcan@marcan.st
[1] https://lore.kernel.org/r/20210325124721.941182-1-maz@kernel.org

Marc Zyngier (3):
  arm64: cpufeature: Allow early filtering of feature override
  arm64: Cope with CPUs stuck in VHE mode
  arm64: Allow nVHE impaired CPUs to boot without CONFIG_ARM64_VHE

 arch/arm64/include/asm/cpufeature.h | 17 +++++++++++++
 arch/arm64/include/asm/virt.h       | 18 +++++++++----
 arch/arm64/kernel/cpufeature.c      |  6 +++++
 arch/arm64/kernel/head.S            | 39 ++++++++++++++++++++++++++---
 arch/arm64/kernel/hyp-stub.S        |  8 +++---
 arch/arm64/kernel/idreg-override.c  | 26 ++++++++++++++++++-
 arch/arm64/kvm/va_layout.c          |  9 +++++++
 7 files changed, 110 insertions(+), 13 deletions(-)

-- 
2.29.2




More information about the linux-arm-kernel mailing list