linux/arch/arm64/kvm
Marc Zyngier fb5ee369cc arm64: KVM: vgic-v2: Add the GICV emulation infrastructure
In order to efficiently perform the GICV access on behalf of the
guest, we need to be able to avoid going back all the way to
the host kernel.

For this, we introduce a new hook in the world switch code,
conveniently placed just after populating the fault info.
At that point, we only have saved/restored the GP registers,
and we can quickly perform all the required checks (data abort,
translation fault, valid faulting syndrome, not an external
abort, not a PTW).

Coming back from the emulation code, we need to skip the emulated
instruction. This involves an additional bit of save/restore in
order to be able to access the guest's PC (and possibly CPSR if
this is a 32bit guest).

At this stage, no emulation code is provided.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2016-09-08 12:53:00 +02:00
..
hyp arm64: KVM: vgic-v2: Add the GICV emulation infrastructure 2016-09-08 12:53:00 +02:00
debug.c KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00
guest.c KVM: ARM64: Fix typos 2016-06-14 11:16:27 +02:00
handle_exit.c arm64/kvm: use ESR_ELx_EC to extract EC 2016-06-21 17:07:38 +01:00
hyp-init.S arm64: KVM: Simplify HYP init/teardown 2016-07-03 23:41:27 +02:00
hyp.S arm64: hyp/kvm: Make hyp-stub extensible 2016-04-28 12:05:46 +01:00
inject_fault.c arm64: KVM: Set cpsr before spsr on fault injection 2016-08-01 15:09:47 +01:00
irq.h KVM: arm/arm64: Enable irqchip routing 2016-07-22 18:52:01 +01:00
Kconfig KVM: arm/arm64: Enable irqchip routing 2016-07-22 18:52:01 +01:00
Makefile arm64: KVM: Move the AArch32 conditional execution to common code 2016-09-08 12:53:00 +02:00
regmap.c arm64: KVM: 32bit GP register access 2013-06-12 16:42:14 +01:00
reset.c KVM: arm64: vgic-its: Enable ITS emulation as a virtual MSI controller 2016-07-18 18:14:38 +01:00
sys_regs_generic_v8.c arm64: KVM: Correctly handle zero register in system register accesses 2015-12-04 16:29:54 +00:00
sys_regs.c arm64: KVM: report configured SRE value to 32-bit world 2016-08-17 12:46:23 +02:00
sys_regs.h arm64: KVM: Correctly handle zero register in system register accesses 2015-12-04 16:29:54 +00:00
trace.h KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00