#17238: [virtio] Support "direct attach" PCI virtio block
----------------------------------+---------------------------------
Reporter: kallisti5 | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: R1/beta4
Component: Drivers/Disk/Virtio | Version: R1/beta3
Resolution: | Keywords: virtio virtio_block
Blocked By: | Blocking:
Platform: All |
----------------------------------+---------------------------------
Comment (by kallisti5):
ah ha.
FreeBSD:
sys/dev/virtio/pci/virtio_pci_legacy.c
{{{
if (pci_get_vendor(dev) != VIRTIO_PCI_VENDORID)
return (ENXIO);
if (pci_get_device(dev) < VIRTIO_PCI_DEVICEID_MIN ||
pci_get_device(dev) > VIRTIO_PCI_DEVICEID_LEGACY_MAX)
return (ENXIO);
}}}
Freebsd
sys/dev/virtio/pci/virtio_pci_modern.c
{{{
if (pci_get_vendor(dev) != VIRTIO_PCI_VENDORID)
return (ENXIO);
if (pci_get_device(dev) < VIRTIO_PCI_DEVICEID_MIN ||
pci_get_device(dev) > VIRTIO_PCI_DEVICEID_MODERN_MAX)
return (ENXIO);
if (pci_get_device(dev) < VIRTIO_PCI_DEVICEID_MODERN_MIN) {
if (!vtpci_modern_transitional)
return (ENXIO);
devid = pci_get_subdevice(dev);
} else
devid = pci_get_device(dev) -
VIRTIO_PCI_DEVICEID_MODERN_MIN;
}}}
{{{
sys/dev/virtio/pci/virtio_pci_var.h:#define VIRTIO_PCI_DEVICEID_MIN
0x1000
sys/dev/virtio/pci/virtio_pci_var.h:#define VIRTIO_PCI_DEVICEID_LEGACY_MAX
0x103F
sys/dev/virtio/pci/virtio_pci_var.h:#define VIRTIO_PCI_DEVICEID_MODERN_MIN
0x1040
sys/dev/virtio/pci/virtio_pci_var.h:#define VIRTIO_PCI_DEVICEID_MODERN_MAX
0x107F
}}}
So..
* deviceid 0x1000 - 0x103F is "Virtio Legacy"
* deviceid 0x1040 - 0x107F is "Virtio Modern"
ugh.
--
Ticket URL: <https://dev.haiku-os.org/ticket/17238#comment:5>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.