diff options
author | Laszlo Ersek <lersek@redhat.com> | 2016-03-12 00:11:55 +0100 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2016-04-06 19:21:51 +0200 |
commit | 9399f68ae359234b142c293ad1bef75f470ced30 (patch) | |
tree | 9a497f15908042e1f01df281b542ae9e9c26de43 /Vlv2DeviceRefCodePkg | |
parent | c6e2d064ab5c34b87c25fa801eadb9f76c15c3ca (diff) | |
download | edk2-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 'Vlv2DeviceRefCodePkg')
0 files changed, 0 insertions, 0 deletions