[SeaBIOS] [RFC PATCH 00/16] make SCSI layer more generic, introduce virtio-scsi driver

Paolo Bonzini pbonzini at redhat.com
Tue Nov 15 17:01:08 CET 2011


Hi all,

this is the first bit of working code for the mythical virtio-scsi
HBA.  This patch mostly aims at making code more generic in SeaBIOS
for both SCSI and virtio.

For SCSI, it introduces common bits for LUN detection and fixes some
bugs.  This is visible for example in that I can now boot the FreeDOS
image on bochs.sf.net from a USB drive.

For virtio, it adds a few extra interface bits that are common
to both virtio-scsi and virtio-blk.

The final patch adds the virtio-scsi code itself.  I think the first 13
patches can go in before the virtio-scsi QEMU code, anyway I'm sending
now the whole batch for review.

Paolo Bonzini (16):
  cdrom: use TEST UNIT READY to detect ready medium
  usb-msc: add usb_msc_send
  usb-uhci: wait tick after sending data
  usb-msc: support WRITE and TEST UNIT READY
  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: always go through TEST UNIT READY
  usb-msc: move common scsi code to blockcmd.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
  virtio-pci: add vp_set
  usb-msc: move cdb dispatch to block.c
  add virtio-scsi driver

 Makefile          |    2 +-
 src/Kconfig       |   10 ++-
 src/block.c       |   35 +++++++--
 src/blockcmd.c    |  155 ++++++++++++++++++++++++++++++++++++++
 src/blockcmd.h    |   42 ++++++++++-
 src/boot.c        |   14 ++++
 src/boot.h        |    1 +
 src/cdrom.c       |   58 +--------------
 src/disk.c        |    5 +-
 src/disk.h        |   19 +++--
 src/pci_ids.h     |    1 +
 src/post.c        |    2 +
 src/usb-msc.c     |  132 ++++++++++----------------------
 src/usb-msc.h     |    3 -
 src/usb-uhci.c    |    1 +
 src/virtio-blk.c  |   30 +++-----
 src/virtio-blk.h  |    2 +-
 src/virtio-pci.c  |   33 +++++++-
 src/virtio-pci.h  |   13 +++-
 src/virtio-scsi.c |  216 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/virtio-scsi.h |   43 +++++++++++
 21 files changed, 620 insertions(+), 197 deletions(-)
 create mode 100644 src/virtio-scsi.c
 create mode 100644 src/virtio-scsi.h

-- 
1.7.7.1




More information about the SeaBIOS mailing list