ARM: new VGIC: Add CTLR, TYPER and IIDR handlers
authorAndre Przywara <andre.przywara@linaro.org>
Thu, 8 Feb 2018 11:34:40 +0000 (11:34 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 28 Mar 2018 18:12:40 +0000 (11:12 -0700)
commit1fbde30f5af6216241bd2cb4d65453cbac619534
tree4494c737f90008db567cd285f1c24d5217507174
parenta812716f136ea5de96c6a9cec8575e62e7875331
ARM: new VGIC: Add CTLR, TYPER and IIDR handlers

Those three registers are v2 emulation specific, so their implementation
lives entirely in vgic-mmio-v2.c. Also they are handled in one function,
as their implementation is pretty simple.
We choose to piggy-back on the existing KVM identification registers,
but use a different variant (major revision).
When the guest enables the distributor, we kick all VCPUs to get
potentially pending interrupts serviced.

This is based on Linux commit 2b0cda878965, written by Marc Zyngier.

Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
Reviewed-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/vgic/vgic-mmio-v2.c
xen/arch/arm/vgic/vgic.c
xen/arch/arm/vgic/vgic.h