diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2018-05-22 18:50:57 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2018-05-24 10:42:13 +0200 |
commit | f2581064a68f37d3406b90f9a0929801d97b2758 (patch) | |
tree | c2bf151fe6f989cbada29127cc614d05d5d2dba4 | |
parent | 33ebad54056f0e54b9db1d675d34eed097479c69 (diff) |
bochs-display: add pcie support
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180522165058.15404-6-kraxel@redhat.com
-rw-r--r-- | hw/display/bochs-display.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c index 9607df1c34..c33524b558 100644 --- a/hw/display/bochs-display.c +++ b/hw/display/bochs-display.c @@ -253,6 +253,7 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp) { BochsDisplayState *s = BOCHS_DISPLAY(dev); Object *obj = OBJECT(dev); + int ret; s->con = graphic_console_init(DEVICE(dev), 0, &bochs_display_gfx_ops, s); @@ -280,6 +281,12 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp) pci_register_bar(&s->pci, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram); pci_register_bar(&s->pci, 2, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio); + if (pci_bus_is_express(pci_get_bus(dev))) { + dev->cap_present |= QEMU_PCI_CAP_EXPRESS; + ret = pcie_endpoint_cap_init(dev, 0x80); + assert(ret > 0); + } + memory_region_set_log(&s->vram, true, DIRTY_MEMORY_VGA); } @@ -342,6 +349,7 @@ static const TypeInfo bochs_display_type_info = { .instance_init = bochs_display_init, .class_init = bochs_display_class_init, .interfaces = (InterfaceInfo[]) { + { INTERFACE_PCIE_DEVICE }, { INTERFACE_CONVENTIONAL_PCI_DEVICE }, { }, }, |