spapr/xive: add KVM support
commit38afd772f802ff787ea16af73b0c0d24a8c46b6c
authorCédric Le Goater <clg@kaod.org>
Mon, 13 May 2019 08:42:33 +0000 (13 10:42 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 29 May 2019 01:39:45 +0000 (29 11:39 +1000)
treefed30007e103eab9060ee0eec1309e819f312056
parent75de59416df857b429f1aac028855090c69f2ea9
spapr/xive: add KVM support

This introduces a set of helpers when KVM is in use, which create the
KVM XIVE device, initialize the interrupt sources at a KVM level and
connect the interrupt presenters to the vCPU.

They also handle the initialization of the TIMA and the source ESB
memory regions of the controller. These have a different type under
KVM. They are 'ram device' memory mappings, similarly to VFIO, exposed
to the guest and the associated VMAs on the host are populated
dynamically with the appropriate pages using a fault handler.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20190513084245.25755-3-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/intc/Makefile.objs
hw/intc/spapr_xive.c
hw/intc/spapr_xive_kvm.c [new file with mode: 0644]
hw/intc/xive.c
hw/ppc/Kconfig
hw/ppc/spapr_irq.c
include/hw/ppc/spapr_xive.h
include/hw/ppc/xive.h
target/ppc/kvm.c
target/ppc/kvm_ppc.h