dev, pci: Implement basic VirtIO support
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>
Sat, 20 Sep 2014 21:17:51 +0000 (17:17 -0400)
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>
Sat, 20 Sep 2014 21:17:51 +0000 (17:17 -0400)
commitbf2c2183c6292e8052cdf47c743e0b63f248f6ab
tree1346c169af344351d7b8d5d33d8f5955ce7667b7
parent0c5139310d634d6d366f4120d88deef66c9266af
dev, pci: Implement basic VirtIO support

This patch adds support for VirtIO over the PCI bus. It does so by
providing the following new SimObjects:

 * VirtIODeviceBase - Abstract base class for VirtIO devices.
 * PciVirtIO - VirtIO PCI transport interface.

A VirtIO device is hooked up to the guest system by adding a PciVirtIO
device to the PCI bus and connecting it to a VirtIO device using the
vio parameter.

New VirtIO devices should inherit from VirtIODevice base and
implementing one or more VirtQueues. The VirtQueues are usually
device-specific and all derive from the VirtQueue class. Queues must
be registered with the base class from the constructor since the
device assumes that the number of queues stay constant.
src/dev/virtio/SConscript [new file with mode: 0644]
src/dev/virtio/VirtIO.py [new file with mode: 0644]
src/dev/virtio/base.cc [new file with mode: 0644]
src/dev/virtio/base.hh [new file with mode: 0644]
src/dev/virtio/pci.cc [new file with mode: 0644]
src/dev/virtio/pci.hh [new file with mode: 0644]
src/dev/virtio/virtio_ring.h [new file with mode: 0644]