1dc7d58 OvmfPkg: VirtioRngDxe: adapt feature negotiation to virtio-1.0

Authored and Committed by lersek 8 years ago
    OvmfPkg: VirtioRngDxe: 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>