]> xenbits.xensource.com Git - people/andrewcoop/seabios.git/commitdiff
virtio: use version 1.0 if available (flip the big switch)
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 26 Jun 2015 06:45:11 +0000 (08:45 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 1 Jul 2015 14:35:50 +0000 (16:35 +0200)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
src/hw/virtio-pci.c

index dcbf6d7b2e8e6d5aa4568166e842712e8e53d5ce..5cb0e73363b247b152c22c6f3c92f7aa870d40c3 100644 (file)
@@ -260,16 +260,19 @@ void vp_init_simple(struct vp_device *vp, 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 |