On 03/14/16 13:53, Laszlo Ersek wrote: > This series enables OvmfPkg and ArmVirtPkg to work with non-transitional > VirtIo 1.0 PCI devices. The first 12 patches rework our edk2-only, > private VIRTIO_DEVICE_PROTOCOL (and its two existent implementations), > and adapt the four device drivers we have. (The 1.0 specification is not > fully backwards compatible.) This is done without disturbing the current > (legacy, 0.9.5) functionality. > > Patch 13 adds a VIRTIO_DEVICE_PROTOCOL implementation that conforms to > VirtIo 1.0. > > Patches 14 and 15 include the new driver in OvmfPkg and ArmVirtPkg. > > Public branch: <https://github.com/lersek/edk2/commits/virtio10_v1>. > > If you would like to test this series with VirtIo 1.0 devices, patch 13 > has some instructions about the QEMU command line. If you also want to > boot Linux guests on them, then you will need a fairly recent (4.2 or > 4.3+) guest kernel, *plus* the following (pending) QEMU bugfix: > <http://thread.gmane.org/gmane.comp.emulators.qemu/400142/focus=400161>. > > Cc: Ard Biesheuvel <[email protected]> > Cc: Jordan Justen <[email protected]> > > Laszlo Ersek (15): > OvmfPkg: VIRTIO_DEVICE_PROTOCOL: widen the Features bitmap to 64 bits > OvmfPkg: VIRTIO_DEVICE_PROTOCOL: remove GetQueueAddress() member > OvmfPkg: VIRTIO_DEVICE_PROTOCOL: pass VRING object to > SetQueueAddress() > OvmfPkg: VirtioBlkDxe: don't clear non-negotiable feature bits > OvmfPkg: VirtioRngDxe: clear all feature bits more explicitly > OvmfPkg: IndustryStandard: add definitions from the VirtIo 1.0 spec > OvmfPkg: VirtioLib: add Virtio10WriteFeatures() function > OvmfPkg: VirtioBlkDxe: adapt feature negotiation to virtio-1.0 > OvmfPkg: VirtioNetDxe: adapt feature negotiation to virtio-1.0 > OvmfPkg: VirtioRngDxe: adapt feature negotiation to virtio-1.0 > OvmfPkg: VirtioScsiDxe: adapt feature negotiation to virtio-1.0 > OvmfPkg: VirtioNetDxe: adapt virtio-net packet header size to > virtio-1.0 > OvmfPkg: Virtio10Dxe: non-transitional driver for virtio-1.0 PCI > devices > OvmfPkg: include Virtio10Dxe > ArmVirtPkg: include Virtio10Dxe from OvmfPkg > > ArmVirtPkg/ArmVirtQemu.dsc | 1 + > ArmVirtPkg/ArmVirtQemuKernel.dsc | 1 + > OvmfPkg/OvmfPkgIa32.dsc | 1 + > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > OvmfPkg/OvmfPkgX64.dsc | 1 + > ArmVirtPkg/ArmVirtQemu.fdf | 1 + > ArmVirtPkg/ArmVirtQemuKernel.fdf | 1 + > OvmfPkg/OvmfPkgIa32.fdf | 1 + > OvmfPkg/OvmfPkgIa32X64.fdf | 1 + > OvmfPkg/OvmfPkgX64.fdf | 1 + > OvmfPkg/Virtio10Dxe/Virtio10.inf | 40 + > OvmfPkg/Include/IndustryStandard/Virtio10.h | 81 ++ > OvmfPkg/Include/IndustryStandard/Virtio10Net.h | 31 + > OvmfPkg/Include/Library/VirtioLib.h | 47 + > OvmfPkg/Include/Protocol/VirtioDevice.h | 42 +- > OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.h | 15 +- > OvmfPkg/Virtio10Dxe/Virtio10.h | 56 ++ > OvmfPkg/VirtioNetDxe/VirtioNet.h | 4 +- > OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.h | 15 +- > OvmfPkg/Library/VirtioLib/VirtioLib.c | 75 ++ > OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice.c | 1 - > OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceFunctions.c | 37 +- > OvmfPkg/Virtio10Dxe/Virtio10.c | 1061 > ++++++++++++++++++++ > OvmfPkg/VirtioBlkDxe/VirtioBlk.c | 33 +- > OvmfPkg/VirtioNetDxe/DriverBinding.c | 2 +- > OvmfPkg/VirtioNetDxe/SnpInitialize.c | 64 +- > OvmfPkg/VirtioPciDeviceDxe/VirtioPciDevice.c | 1 - > OvmfPkg/VirtioPciDeviceDxe/VirtioPciFunctions.c | 40 +- > OvmfPkg/VirtioRngDxe/VirtioRng.c | 31 +- > OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 32 +- > 30 files changed, 1565 insertions(+), 153 deletions(-) > create mode 100644 OvmfPkg/Virtio10Dxe/Virtio10.inf > create mode 100644 OvmfPkg/Include/IndustryStandard/Virtio10.h > create mode 100644 OvmfPkg/Include/IndustryStandard/Virtio10Net.h > create mode 100644 OvmfPkg/Virtio10Dxe/Virtio10.h > create mode 100644 OvmfPkg/Virtio10Dxe/Virtio10.c
Ping _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

