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

Reply via email to