KVM: arm/arm64: vgic-new: Add GICv3 IROUTER register handlers
authorAndre Przywara <andre.przywara@arm.com>
Mon, 25 Jan 2016 16:45:37 +0000 (16:45 +0000)
committerChristoffer Dall <christoffer.dall@linaro.org>
Fri, 20 May 2016 13:39:58 +0000 (15:39 +0200)
commit78a714aba030395e72d03f0ff8a4c1481956e808
tree16fe9953857caf5510c55986f45dfbdc29479cbc
parent54f59d2b3a0a3d4e6f5038f5831aedb21350209d
KVM: arm/arm64: vgic-new: Add GICv3 IROUTER register handlers

Since GICv3 supports much more than the 8 CPUs the GICv2 ITARGETSR
register can handle, the new IROUTER register covers the whole range
of possible target (V)CPUs by using the same MPIDR that the cores
report themselves.
In addition to translating this MPIDR into a vcpu pointer we store
the originally written value as well. The architecture allows to
write any values into the register, which must be read back as written.

Since we don't support affinity level 3, we don't need to take care
about the upper word of this 64-bit register, which simplifies the
handling a bit.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
virt/kvm/arm/vgic/vgic-mmio-v3.c