Hi,
This patch series adds virtio 1.0 support to the virtio blk and scsi drivers in seabios. With this series applied seabios happily boots in virtio 1.0 mode from both transitional and modern devices. This series also moves all virtio code to 32bit.
Tested with Fedora 22 guest, booting from virtio-scsi cdrom (live iso), virtio-scsi disk and virtio-blk disk.
The patches are also available in the git repository at: git://git.kraxel.org/seabios virtio
v3 changes: * change vp_device allocation. * fix capability detection. * add some cleanup patches (drop MAKESEGMENT and GET_* macros). * allocate virt queues in high memory.
v2 changes: * rename vp_modern_{read_write} to vp_{read,write} * switch legacy virtio code to vp_{read,write} too. * make vp_read return the values.
Gerd Hoffmann (25): pci: allow to loop over capabilities virtio: run drivers in 32bit mode virtio: add struct vp_device virtio: pass struct pci_device to vp_init_simple virtio: add version 1.0 structs and #defines virtio: add version 0.9.5 struct virtio: find version 1.0 virtio capabilities virtio: create vp_cap struct for legacy bar virtio: add read/write functions and macros virtio: make features 64bit, support version 1.0 features virtio: add version 1.0 support to vp_{get,set}_status virtio: add version 1.0 support to vp_get_isr virtio: add version 1.0 support to vp_reset virtio: add version 1.0 support to vp_notify virtio: remove unused vp_del_vq virtio: add version 1.0 support to vp_find_vq virtio-scsi: fix initialization for version 1.0 virtio-blk: fix initialization for version 1.0 virtio: use version 1.0 if available (flip the big switch) virtio: also probe version 1.0 pci ids virtio: legacy cleanup virtio-blk: 32bit cleanup virtio-scsi: 32bit cleanup virtio-ring: 32bit cleanup virtio-pci: use high memory for rings
Makefile | 2 +- src/block.c | 8 +- src/fw/pciinit.c | 4 +- src/hw/blockcmd.c | 5 +- src/hw/pci.c | 11 ++- src/hw/pci.h | 2 +- src/hw/pci_ids.h | 8 +- src/hw/virtio-blk.c | 112 ++++++++++++++++------- src/hw/virtio-pci.c | 228 +++++++++++++++++++++++++++++++++++++++++----- src/hw/virtio-pci.h | 252 ++++++++++++++++++++++++++++++++++++--------------- src/hw/virtio-ring.c | 65 +++++++------ src/hw/virtio-ring.h | 9 +- src/hw/virtio-scsi.c | 75 ++++++++++----- 13 files changed, 582 insertions(+), 199 deletions(-)