summaryrefslogtreecommitdiffstats
path: root/PcAtChipsetPkg
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-03-12 00:11:55 +0100
committerLaszlo Ersek <lersek@redhat.com>2016-04-06 19:21:51 +0200
commit9399f68ae359234b142c293ad1bef75f470ced30 (patch)
tree9a497f15908042e1f01df281b542ae9e9c26de43 /PcAtChipsetPkg
parentc6e2d064ab5c34b87c25fa801eadb9f76c15c3ca (diff)
downloadedk2-9399f68ae359234b142c293ad1bef75f470ced30.tar.gz
edk2-9399f68ae359234b142c293ad1bef75f470ced30.tar.bz2
edk2-9399f68ae359234b142c293ad1bef75f470ced30.zip
OvmfPkg: Virtio10Dxe: non-transitional driver for virtio-1.0 PCI devices
This driver implements the VIRTIO_DEVICE_PROTOCOL for non-transitional PCI devices, based on the virtio-1.0 specification (csprd05). Non-transitional means that it only binds QEMU's virtio-xxx-pci devices that receive the ",disable-legacy=on,disable-modern=off" properties on the QEMU command line. These devices have distinct PCI Device IDs from those that are bound by VirtioPciDeviceDxe. The central abstraction of this driver is the VIRTIO_1_0_CONFIG type. It is practically a "fat pointer" to a register block. The pointed-to register block - may or may not exist (the latter being mostly useful for virtio-1.0 devices that have no device-specific registers), - lives in one of the device's BARs, - lives in an IO or MMIO BAR, - lives at an offset relative to the BAR start, - has its size also maintained. Such VIRTIO_1_0_CONFIG "fat pointers" (i.e., the locations of the register blocks) are parsed from vendor capabilities that reside in the device's standard PCI capabilities list (in PCI config space). Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'PcAtChipsetPkg')
0 files changed, 0 insertions, 0 deletions