• Oliver Upton's avatar
    Merge branch kvm-arm64/nv-prefix into kvmarm/next · 0d3b2b4d
    Oliver Upton authored
    
    
    * kvm-arm64/nv-prefix:
      : Preamble to NV support, courtesy of Marc Zyngier.
      :
      : This brings in a set of prerequisite patches for supporting nested
      : virtualization in KVM/arm64. Of course, there is a long way to go until
      : NV is actually enabled in KVM.
      :
      :  - Introduce cpucap / vCPU feature flag to pivot the NV code on
      :
      :  - Add support for EL2 vCPU register state
      :
      :  - Basic nested exception handling
      :
      :  - Hide unsupported features from the ID registers for NV-capable VMs
      KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
      KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes
      KVM: arm64: nv: Filter out unsupported features from ID regs
      KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2
      KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
      KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
      KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
      KVM: arm64: nv: Handle SMCs taken from virtual EL2
      KVM: arm64: nv: Handle trapped ERET from virtual EL2
      KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
      KVM: arm64: nv: Support virtual EL2 exceptions
      KVM: arm64: nv: Handle HCR_EL2.NV system register traps
      KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
      KVM: arm64: nv: Add EL2 system registers to vcpu context
      KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
      KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
      KVM: arm64: nv: Introduce nested virtualization VCPU feature
      KVM: arm64: Use the S2 MMU context to iterate over S2 table
      arm64: Add ARM64_HAS_NESTED_VIRT cpufeature
    Signed-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
    0d3b2b4d
esr.h 13.4 KB