HomeFreeBSD

virtio: Add VirtIO PCI modern (V1) support

Description

virtio: Add VirtIO PCI modern (V1) support

Use the existing legacy PCI driver as the basis for shared code
between the legacy and modern PCI drivers. The existing virtio_pci
kernel module will contain both the legacy and modern drivers.

Changes to the virtqueue and each device driver (network, block, etc)
for V1 support come in later commits.

Update the MMIO driver to reflect the VirtIO bus method changes, but
the modern compliance can be improved on later.

Note that the modern PCI driver requires bus_map_resource() to be
implemented, which is not the case on all archs.

The hw.virtio.pci.transitional tunable default value is zero so
transitional devices will continue to be driven via the legacy
driver.

Reviewed by: grehan (mentor)
Differential Revision: https://reviews.freebsd.org/D27856

Details

Provenance
bryanvAuthored on Jan 19 2021, 4:55 AM
Reviewer
grehan
Differential Revision
D27856: virtio: Add VirtIO PCI modern (V1) support
Parents
R10:1cd1ed3f5dd5: Revert: virtio: Support non-legacy network device and queue
Branches
Unknown
Tags
Unknown