aboutsummaryrefslogtreecommitdiff
path: root/src/block.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-02-17 23:24:42 -0500
committerKevin O'Connor <kevin@koconnor.net>2010-02-17 23:24:42 -0500
commit7149fc813139cf564a4456815461c18a8b208e89 (patch)
treeb0866113b1380d34b1d9e1d4a1ffd8fc375f289f /src/block.c
parent3c160dde75b9920f048d4276026d680d0f582dc9 (diff)
downloadseabios-hppa-7149fc813139cf564a4456815461c18a8b208e89.zip
seabios-hppa-7149fc813139cf564a4456815461c18a8b208e89.tar.gz
seabios-hppa-7149fc813139cf564a4456815461c18a8b208e89.tar.bz2
Initial support for booting from USB drives.
This patch adds initial support for USB Mass Storage Controllers. This includes support for bulk transfers on UHCI controllers. Code to detect a USB MSC device is added, and wrappers for sending "cdb" block commands over USB are added. The scsi "inquiry" command is also added.
Diffstat (limited to 'src/block.c')
-rw-r--r--src/block.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/block.c b/src/block.c
index 365053e..3b43f97 100644
--- a/src/block.c
+++ b/src/block.c
@@ -10,6 +10,7 @@
#include "cmos.h" // inb_cmos
#include "util.h" // dprintf
#include "ata.h" // process_ata_op
+#include "usb-msc.h" // process_usb_op
struct drives_s Drives VAR16VISIBLE;
@@ -280,6 +281,9 @@ describe_drive(struct drive_s *drive_g)
case DTYPE_RAMDISK:
describe_ramdisk(drive_g);
break;
+ case DTYPE_USB:
+ describe_usb(drive_g);
+ break;
default:
printf("Unknown");
break;
@@ -308,6 +312,8 @@ process_op(struct disk_op_s *op)
return process_ramdisk_op(op);
case DTYPE_CDEMU:
return process_cdemu_op(op);
+ case DTYPE_USB:
+ return process_usb_op(op);
default:
op->count = 0;
return DISK_RET_EPARAM;