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

Marc Zyngier maz at kernel.org
Thu Apr 8 14:10:07 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.

The last patch rids us of CONFIG_ARM64_VHE, which has been the default
for longer than I can remember.

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

Note: the last patch will conflict with the KVM SVE series, so I'd
like to take that patch (or the series) via the KVM tree to avoid
extra moaning^Wfriction.

* From v2 [2]:
   - Fixed typos and spacing issues
   - Dropped the mVHE on VHE patch
   - Added a patch removing the CONFIG_ARM64_VHE option altogether
   - Collected Ack from Will

* 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 lack 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
[2] https://lore.kernel.org/r/20210330173947.999859-1-maz@kernel.org

Marc Zyngier (3):
  arm64: cpufeature: Allow early filtering of feature override
  arm64: Cope with CPUs stuck in VHE mode
  arm64: Get rid of CONFIG_ARM64_VHE

 .../admin-guide/kernel-parameters.txt         |  3 +-
 arch/arm64/Kconfig                            | 20 ----------
 arch/arm64/include/asm/cpufeature.h           | 17 ++++++++
 arch/arm64/kernel/cpufeature.c                | 10 +++--
 arch/arm64/kernel/head.S                      | 39 +++++++++++++++++--
 arch/arm64/kernel/hyp-stub.S                  | 10 ++---
 arch/arm64/kernel/idreg-override.c            | 26 ++++++++++++-
 7 files changed, 89 insertions(+), 36 deletions(-)

-- 
2.29.2




More information about the linux-arm-kernel mailing list