linux-stable/virt/kvm/arm
Marc Zyngier 4493b1c486 KVM: arm/arm64: vgic-new: Add MMIO handling framework
Add an MMIO handling framework to the VGIC emulation:
Each register is described by its offset, size (or number of bits per
IRQ, if applicable) and the read/write handler functions. We provide
initialization macros to describe each GIC register later easily.

Separate dispatch functions for read and write accesses are connected
to the kvm_io_bus framework and binary-search for the responsible
register handler based on the offset address within the region.
We convert the incoming data (referenced by a pointer) to the host's
endianess and use pass-by-value to hand the data over to the actual
handler functions.

The register handler prototype and the endianess conversion are
courtesy of Christoffer Dall.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
2016-05-20 15:39:49 +02:00
..
hyp KVM: arm/arm64: Get rid of vgic_cpu->nr_lr 2016-05-20 15:39:41 +02:00
vgic KVM: arm/arm64: vgic-new: Add MMIO handling framework 2016-05-20 15:39:49 +02:00
arch_timer.c KVM: arm/arm64: Move timer IRQ map to latest possible time 2016-05-20 15:39:41 +02:00
pmu.c KVM: arm/arm64: pmu: abstract access to number of SPIs 2016-05-20 15:39:43 +02:00
trace.h arm/arm64: KVM: Add tracepoints for vgic and timer 2015-10-22 23:01:48 +02:00
vgic-v2-emul.c KVM: arm/arm64: vgic-v2: Make GICD_SGIR quicker to hit 2016-03-09 04:24:03 +00:00
vgic-v2.c KVM: arm/arm64: Get rid of vgic_cpu->nr_lr 2016-05-20 15:39:41 +02:00
vgic-v3-emul.c KVM: arm: vgic: Drop useless Group0 warning 2015-06-17 09:58:12 +01:00
vgic-v3.c KVM: arm/arm64: move GICv2 emulation defines into arm-gic-v3.h 2016-05-20 15:39:44 +02:00
vgic.c KVM: arm/arm64: Fix MMIO emulation data handling 2016-05-20 15:39:42 +02:00
vgic.h KVM: arm/arm64: rework MMIO abort handling to use KVM MMIO bus 2015-03-30 17:07:19 +01:00