Just register that pci host bridge specific to passthrough. Signed-off-by: Tiejun Chen <tiejun.c...@intel.com> --- hw/i386/pc_piix.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 4148028..f015238 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -50,7 +50,8 @@ #include "cpu.h" #include "qemu/error-report.h" #ifdef CONFIG_XEN -# include <xen/hvm/hvm_info_table.h> +#include <xen/hvm/hvm_info_table.h> +#include "hw/xen/xen_pt.h" #endif #define MAX_IDE_BUS 2 @@ -496,11 +497,25 @@ static void pc_init_isa(MachineState *machine) } #ifdef CONFIG_XEN +static void xen_igd_passthrough_pc_init_pci(MachineState *machine) +{ + pc_init1(machine, 1, 1, TYPE_I440FX_PCI_HOST_BRIDGE, + TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE); +} + +static void xen_pc_init_pci(MachineState *machine) +{ + if (xen_has_gfx_passthru) + xen_igd_passthrough_pc_init_pci(machine); + else + pc_init_pci(machine); +} + static void pc_xen_hvm_init(MachineState *machine) { PCIBus *bus; - pc_init_pci(machine); + xen_pc_init_pci(machine); bus = pci_find_primary_bus(); if (bus != NULL) { -- 1.9.1