From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40492) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z9r4h-0001ey-Tg for qemu-devel@nongnu.org; Tue, 30 Jun 2015 04:39:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z9r4c-0000ij-O8 for qemu-devel@nongnu.org; Tue, 30 Jun 2015 04:39:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36061) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z9r4c-0000iE-Iv for qemu-devel@nongnu.org; Tue, 30 Jun 2015 04:39:22 -0400 From: Gerd Hoffmann Date: Tue, 30 Jun 2015 10:39:11 +0200 Message-Id: <1435653553-7728-21-git-send-email-kraxel@redhat.com> In-Reply-To: <1435653553-7728-1-git-send-email-kraxel@redhat.com> References: <1435653553-7728-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH v2 20/22] virtio: use version 1.0 if available (flip the big switch) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: seabios@seabios.org Cc: Gerd Hoffmann , qemu-devel@nongnu.org, "Michael S. Tsirkin" Signed-off-by: Gerd Hoffmann --- src/hw/virtio-pci.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/hw/virtio-pci.c b/src/hw/virtio-pci.c index f8f9c4e..1186603 100644 --- a/src/hw/virtio-pci.c +++ b/src/hw/virtio-pci.c @@ -261,16 +261,19 @@ struct vp_device *vp_init_simple(struct pci_device *pci) } if (vp->common.cap && vp->notify.cap && vp->isr.cap && vp->device.cap) { - dprintf(1, "pci dev %x:%x supports virtio 1.0\n", + dprintf(1, "pci dev %x:%x using modern (1.0) virtio mode\n", pci_bdf_to_bus(pci->bdf), pci_bdf_to_dev(pci->bdf)); + vp->use_modern = 1; + } else { + dprintf(1, "pci dev %x:%x using legacy (0.9.5) virtio mode\n", + pci_bdf_to_bus(pci->bdf), pci_bdf_to_dev(pci->bdf)); + vp->legacy.bar = 0; + vp->legacy.addr = pci_config_readl(pci->bdf, PCI_BASE_ADDRESS_0) & + PCI_BASE_ADDRESS_IO_MASK; + vp->legacy.is_io = 1; + vp->ioaddr = vp->legacy.addr; /* temporary */ } - vp->legacy.bar = 0; - vp->legacy.addr = pci_config_readl(pci->bdf, PCI_BASE_ADDRESS_0) & - PCI_BASE_ADDRESS_IO_MASK; - vp->legacy.is_io = 1; - vp->ioaddr = vp->legacy.addr; /* temporary */ - vp_reset(vp); pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_MASTER); vp_set_status(vp, VIRTIO_CONFIG_S_ACKNOWLEDGE | -- 1.8.3.1