This series serves a few purposes: - Complete the S1PIE support to include EL2 - Sneak in the EL2 system register world switch As this is a parallel series to the one implementing Address Translation, the S1PIE part of AT is not in any of the two. Depending on which series goes in first, I'll add whatever is needed on top. As mentioned in few of the patches, this implementation relies on a very recent fix to the architecture (D22677 in [1]). [1] https://developer.arm.com/documentation/102105/ka-04/ Marc Zyngier (10): KVM: arm64: nv: Handle CNTHCTL_EL2 specially KVM: arm64: nv: Save/Restore vEL2 sysregs KVM: arm64: Add TCR2_EL2 to the sysreg arrays KVM: arm64: Add save/restore for TCR2_EL2 arm64: Add encoding for PIRE0_EL2 arm64: Remove VNCR definition for PIRE0_EL2 KVM: arm64: Add PIR{,E0}_EL2 to the sysreg arrays KVM: arm64: Add save/restore for PIR{,E0}_EL2 KVM: arm64: Handle PIR{,E0}_EL2 traps KVM: arm64: Sanitise ID_AA64MMFR3_EL1 arch/arm64/include/asm/kvm_host.h | 3 + arch/arm64/include/asm/vncr_mapping.h | 1 - arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 5 +- arch/arm64/kvm/hyp/nvhe/sysreg-sr.c | 2 +- arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 155 ++++++++++++++++++++- arch/arm64/kvm/sys_regs.c | 61 +++++++- arch/arm64/tools/sysreg | 4 + include/kvm/arm_arch_timer.h | 3 + 8 files changed, 227 insertions(+), 7 deletions(-) -- 2.39.2