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

Reply via email to