]> git.proxmox.com Git - mirror_edk2.git/commit - OvmfPkg/VirtioScsiDxe/VirtioScsi.c
OvmfPkg: VirtioScsiDxe: adapt feature negotiation to virtio-1.0
authorLaszlo Ersek <lersek@redhat.com>
Sat, 12 Mar 2016 13:41:26 +0000 (14:41 +0100)
committerLaszlo Ersek <lersek@redhat.com>
Wed, 6 Apr 2016 17:21:50 +0000 (19:21 +0200)
commit39c2d339621bf1bdcb31a5501379e76996ed6bf6
treee8b236a297845fcaa436727d254d3afcb0a46caf
parent0a781bdc7f87f87b8c3ef57c2837f116daa8b580
OvmfPkg: VirtioScsiDxe: adapt feature negotiation to virtio-1.0

Relative to virtio-0.9.5, virtio-1.0 reverses the order of queue discovery
and feature negotiation. In virtio-1.0, feature negotiation has to
complete first, and the device can also reject a self-inconsistent feature
request through the new VSTAT_FEATURES_OK status bit. (For example if the
driver requests a higher level feature but clears a prerequisite feature.)

Furthermore, we retain the VIRTIO_F_VERSION_1 feature bit if the
VIRTIO_DEVICE_PROTOCOL provider has high enough revision.

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>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
OvmfPkg/VirtioScsiDxe/VirtioScsi.c