Hi all,
this are the preparatory bits for virtio-scsi support in SeaBIOS. They mostly aim at making code more generic in SeaBIOS for both SCSI and virtio, but (on the SCSI side) they also fix some bugs, so I'm sending them early to get more exposure.
New features are mostly visible on the USB side since that's currently the main consumer of the SCSI implementation. They include more robust LUN detection, support for hard disk geometry, and USB mass storage write support.
I also fixed for real the race that the RFC series was working around.
For virtio, the series adds a few extra interface bits that are common to both virtio-scsi and virtio-blk.
The two parts are logically separate but they have a small conflict, so I'm sending them together.
Paolo Bonzini (16): cdrom: use TEST UNIT READY to detect ready medium usb-uhci: reorganize wait_qh into wait_pipe usb-uhci: fix race against host controller usb-msc: support commands without payload usb-msc: add usb_msc_send usb-msc: support WRITE commands usb-msc: move READ CAPACITY to usb_msc_init, fix off-by-one usb-msc: pass drive to setup_drive_* usb-msc: rename INQUIRY types usb-msc: go through TEST UNIT READY for hard disks. usb-msc: move common scsi code to blockcmd.c usb-msc: move cdb dispatch to block.c scsi: get physical chs geometry from mode page 0x04 always specify virtio-blk rather than virtio virtio-pci: introduce vp_init_simple virtio-pci: allocate vq in vp_find_vq
v1->v2: do not send commands to CDs until they are actually selected for boot; fix usb-uhci race for real; virtio-scsi driver not yet included.
src/Kconfig | 4 +- src/block.c | 34 ++++++++++-- src/blockcmd.c | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/blockcmd.h | 42 ++++++++++++++- src/cdrom.c | 58 +------------------- src/disk.c | 4 +- src/disk.h | 18 +++--- src/usb-msc.c | 132 ++++++++++++++------------------------------- src/usb-msc.h | 3 - src/usb-uhci.c | 91 +++++++++++++++---------------- src/virtio-blk.c | 25 +++------ src/virtio-blk.h | 2 +- src/virtio-pci.c | 33 ++++++++++-- src/virtio-pci.h | 3 +- 14 files changed, 364 insertions(+), 242 deletions(-)