OpenCloudOS-Kernel/arch/arm/kvm
Marc Zyngier 85bd0ba1ff arm/arm64: KVM: Add PSCI version selection API
Although we've implemented PSCI 0.1, 0.2 and 1.0, we expose either 0.1
or 1.0 to a guest, defaulting to the latest version of the PSCI
implementation that is compatible with the requested version. This is
no different from doing a firmware upgrade on KVM.

But in order to give a chance to hypothetical badly implemented guests
that would have a fit by discovering something other than PSCI 0.2,
let's provide a new API that allows userspace to pick one particular
version of the API.

This is implemented as a new class of "firmware" registers, where
we expose the PSCI version. This allows the PSCI version to be
save/restored as part of a guest migration, and also set to
any supported version if the guest requires it.

Cc: stable@vger.kernel.org #4.16
Reviewed-by: Christoffer Dall <cdall@kernel.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-04-20 16:32:23 +01:00
..
hyp kvm/arm fixes for 4.16, take 2 2018-03-19 17:43:01 +00:00
Kconfig GICv4 Support for KVM/ARM for v4.15 2017-11-17 13:20:01 +01:00
Makefile GICv4 Support for KVM/ARM for v4.15 2017-11-17 13:20:01 +01:00
coproc.c KVM: arm: Enable emulation of the physical timer 2018-02-26 10:48:02 +01:00
coproc.h arm: KVM: Make unexpected register accesses inject an undef 2017-04-09 07:49:16 -07:00
coproc_a7.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc_a15.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
emulate.c KVM: arm/arm64: Prepare to handle deferred save/restore of SPSR_EL1 2018-03-19 10:53:17 +00:00
guest.c arm/arm64: KVM: Add PSCI version selection API 2018-04-20 16:32:23 +01:00
handle_exit.c arm/arm64: KVM: Advertise SMCCC v1.1 2018-02-06 22:54:01 +00:00
init.S arm: KVM: Allow unaligned accesses at HYP 2017-06-06 22:20:02 +02:00
interrupts.S ARM: hyp-stub/KVM: Kill __hyp_get_vectors 2017-04-09 07:49:34 -07:00
irq.h KVM: arm/arm64: Enable irqchip routing 2016-07-22 18:52:01 +01:00
reset.c KVM: arm/arm64: Move timer IRQ default init to arch_timer.c 2017-06-08 16:59:56 +02:00
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vgic-v3-coproc.c KVM: arm/arm64: vgic: Implement VGICv3 CPU interface access 2017-01-30 13:47:25 +00:00