arm/arm64: KVM: add virtual GICv3 distributor emulation
authorAndre Przywara <andre.przywara@arm.com>
Fri, 6 Jun 2014 22:54:51 +0000 (00:54 +0200)
committerChristoffer Dall <christoffer.dall@linaro.org>
Tue, 20 Jan 2015 17:25:31 +0000 (18:25 +0100)
commita0675c25d6392c2197b796a60c4a2a0138c86355
tree123679ec2053ab33bc40f9c67b9489c9508ca313
parent9fedf146778e6d1c26319ebaf56131a4f3a6be03
arm/arm64: KVM: add virtual GICv3 distributor emulation

With everything separated and prepared, we implement a model of a
GICv3 distributor and redistributors by using the existing framework
to provide handler functions for each register group.

Currently we limit the emulation to a model enforcing a single
security state, with SRE==1 (forcing system register access) and
ARE==1 (allowing more than 8 VCPUs).

We share some of the functions provided for GICv2 emulation, but take
the different ways of addressing (v)CPUs into account.
Save and restore is currently not implemented.

Similar to the split-off of the GICv2 specific code, the new emulation
code goes into a new file (vgic-v3-emul.c).

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm64/kvm/Makefile
include/kvm/arm_vgic.h
include/linux/irqchip/arm-gic-v3.h
include/linux/kvm_host.h
include/uapi/linux/kvm.h
virt/kvm/arm/vgic-v3-emul.c [new file with mode: 0644]
virt/kvm/arm/vgic.c
virt/kvm/arm/vgic.h