usb attached scsi boot support

This patch adds support for booting from UAS (usb
attached scsi) devices.

For now only usb 2.0 support is there.  On usb 3.0 the
UAS protocol uses streams, so changes will be required
to make usb 3.0 devices fly once we have a xhci host
controller driver.

So far the driver has been tested on qemu-emulated
virtual hardware only.  In theory should just work on
bare metal too.

Signed-off-by: Gerd Hoffmann <>
diff --git a/src/usb-uas.h b/src/usb-uas.h
new file mode 100644
index 0000000..ed1d473
--- /dev/null
+++ b/src/usb-uas.h
@@ -0,0 +1,9 @@
+#ifndef __USB_UAS_H
+#define __USB_UAS_H
+struct disk_op_s;
+int uas_cmd_data(struct disk_op_s *op, void *cdbcmd, u16 blocksize);
+struct usbdevice_s;
+int usb_uas_init(struct usbdevice_s *usbdev);
+#endif /* __USB_UAS_H */