[SeaBIOS] [PATCH 0/8] Add USB disk booting support

Kevin O'Connor kevin at koconnor.net
Thu Feb 18 05:38:55 CET 2010


This patch series adds the ability to boot from USB flash drives.  The
first seven patches are just cleanups.  The eighth adds the MSC
support.

This is only preliminary support - I've booted under qemu using a
"-usbdevice disk:foo" drive, and I've also booted my epia-cn with
seabios and coreboot.  However, handling of error conditions and
timers still needs to be improved.  Also, the current support is UHCI
only (no ohci).

Further testing on real hardware would be appreciated.

-Kevin


Kevin O'Connor (8):
  Dynamically allocate each drive_g with malloc_fseg().
  Move common "command data block" functions to new file blockcmd.c.
  Don't require a valid physical cylinders/heads/spt for logical
    mapping.
  Fix off by one error in strtcpy.
  Minor - arrange struct drive_s to clarify field roles.
  USB UHCI cleanups.
  Introduce helper functions for finding USB end-points.
  Initial support for booting from USB drives.

 Makefile       |    4 +-
 src/ata.c      |   36 +++-----
 src/biosvar.h  |    6 +-
 src/block.c    |   69 ++++++---------
 src/blockcmd.c |   78 +++++++++++++++++
 src/blockcmd.h |   19 ++++
 src/boot.c     |    2 +-
 src/cdrom.c    |   69 ++++-----------
 src/config.h   |    6 +-
 src/disk.h     |   33 +++----
 src/floppy.c   |    7 +-
 src/usb-hid.c  |   26 ++----
 src/usb-msc.c  |  261 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/usb-msc.h  |   25 ++++++
 src/usb-uhci.c |  142 +++++++++++++++++++++++++++++--
 src/usb-uhci.h |    4 +-
 src/usb.c      |   81 +++++++++++++++++-
 src/usb.h      |    6 ++
 src/util.c     |    2 +-
 19 files changed, 706 insertions(+), 170 deletions(-)
 create mode 100644 src/blockcmd.c
 create mode 100644 src/usb-msc.c
 create mode 100644 src/usb-msc.h




More information about the SeaBIOS mailing list