coreboot/payloads/libpayload/drivers/usb
Julius Werner 960534a20e libpayload: usbmsc: Implement limited LUN support
I always thought the support for multiple logical SCSI units in the USB
mass storage class was a dead feature. Turns out that it's actually used
by SD card readers that provide multiple slots (e.g. one regular sized
and one micro-SD). Implementing perfect support for that would require a
major redesign of the whole MSC stack, since the one device -> one disk
assumption is deeply embedded in our data structures.

Instead, this patch implements a poor man's LUN support that will just
cycle through all available LUNs (in multiple calls to usb_msc_poll())
until it finds a connected device. This should be reasonable enough to
allow these card readers to be usable while only requiring superficial
changes.

Also removes the unused 'protocol' attribute of usb_msc_inst_t.

BRANCH=rambi?,nyan
BUG=chrome-os-partner:28437
TEST=Alternatively plug an SD or micro-SD card (or both) into my card
reader, confirm that one of them is correctly detected at all times.

Change-Id: I3df4ca88afe2dcf7928b823aa2a73c2b0f599cf2
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/198101
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2014-05-06 00:08:25 +00:00
..
ehci.c libpayload: usb: Fix up usb_shutdown() code paths 2014-04-10 01:07:24 +00:00
ehci.h
ehci_private.h
ehci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-04-10 01:07:24 +00:00
generic_hub.c libpayload: usb: Remove generic roothub reset port function 2014-03-11 05:53:56 +00:00
generic_hub.h libpayload: usb: Remove generic roothub reset port function 2014-03-11 05:53:56 +00:00
ohci.c libpayload: usb: Remove automatic clear_stall() calls from transfers 2014-04-10 01:10:25 +00:00
ohci.h
ohci_private.h libpayload: usb: Make OHCI work with ARM systems 2014-04-10 01:07:20 +00:00
ohci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-04-10 01:07:24 +00:00
quirks.c
TODO
uhci.c libpayload: usb: Remove automatic clear_stall() calls from transfers 2014-04-10 01:10:25 +00:00
uhci.h
uhci_private.h
uhci_rh.c libpayload: usb: Fix up usb_shutdown() code paths 2014-04-10 01:07:24 +00:00
usb.c libpayload: usb: Try to avoid reusing device addresses 2014-04-30 10:00:43 +00:00
usb_dev.c
usbhid.c
usbhub.c
usbinit.c
usbmsc.c libpayload: usbmsc: Implement limited LUN support 2014-05-06 00:08:25 +00:00
xhci.c libpayload: usb: Fix up usb_shutdown() code paths 2014-04-10 01:07:24 +00:00
xhci.h
xhci_commands.c
xhci_debug.c
xhci_devconf.c
xhci_events.c
xhci_private.h
xhci_rh.c libpayload: usb: xhci: Treat port reset as a port status change 2014-03-11 05:54:00 +00:00