On 04/06/16 07:40, Jordan Justen wrote: > On 2016-03-14 05:53:17, 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 > > These 5 are Reviewed-by: Jordan Justen <[email protected]> > >> OvmfPkg: IndustryStandard: add definitions from the VirtIo 1.0 spec > > I'd like to see Virtio.h and VirtioNet.h get all version defines. (For > a quick VirtioNet.h hack, what if we include Virtio10Net.h after the > related 0.95 defs?)
I feel real un-clean about this. I think I changed my mind about "a lot of churn for nothing". Let me submit a small patch first, separately, that breaks out Virtio095.h and Virtio095Net.h, and keeps the current Virtio.h and VirtioNet.h files as thin wrappers around them. Then, as another step, I can rebase my main series so that it inserts the virtio-1.0 definitions (Virtio10Net.h and Virtio10.h) in-between. I agree this should be cleaner and follow the edk2 practice more closely. Thanks! Laszlo > With that and V0_95: > Reviewed-by: Jordan Justen <[email protected]> > > (Maybe Acked-by would be more appropriate given that I didn't check > the actual specs, but it seems like I gave you too much grief to not > add r-b. :) > >> 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 > > These 6 are Reviewed-by: Jordan Justen <[email protected]> > >> OvmfPkg: Virtio10Dxe: non-transitional driver for virtio-1.0 PCI >> devices > > Acked-by: Jordan Justen <[email protected]> > >> OvmfPkg: include Virtio10Dxe >> ArmVirtPkg: include Virtio10Dxe from OvmfPkg >> > > These 2 are Reviewed-by: Jordan Justen <[email protected]> > >> 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 >> >> -- >> 1.8.3.1 >> >> _______________________________________________ >> edk2-devel mailing list >> [email protected] >> https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

