coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Aaron Durbin a967f414df libpayload: usb mass storage detect empty media
There is currently a hard-coded 30 sec delay in the mass storage
driver while waiting for each device to become ready. However, mass
storage card readers that are empty return an error code on the
TEST UNIT READY command. A REQUEST SENSE command then needs to be
issued and interrogate the data to determine if no media is present.
If no media determination is found to be true the USB device is no
longer considered a candidate to be a disk.

This code does lead to the fact that the media card reader needs to be
populated at enumeration time. I suspect this is not an issue as it
appears the storage stack in libpayload can't handle removable media
coming online later.

Booted recovery and dev modes. Noted that removable mass storage
devices with no media were ignored without any boot delay.

Change-Id: Ida7a45614d97c6e6fbfc9bb099765aad4df550fd
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/57828
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/4225
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-11-25 23:56:13 +01:00
..
ehci.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ehci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ehci_private.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ehci_rh.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
generic_hub.c libpayload: Add a generic driver for usb hubs 2013-06-13 22:17:42 +02:00
generic_hub.h libpayload: Add a generic driver for usb hubs 2013-06-13 22:17:42 +02:00
ohci.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ohci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ohci_private.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ohci_rh.c libpayload: Rework connection state detection for OHCI 2012-11-24 08:46:34 +01:00
quirks.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
uhci.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
uhci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
uhci_private.h libpayload: Remove bitfield use from UHCI data structures 2012-01-10 00:02:54 +01:00
uhci_rh.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
usb.c libpayload: usb: Add interval attribute to endpoints 2013-06-13 22:16:39 +02:00
usb_dev.c Fix the USB code to find the headers after they were moved. 2008-09-11 17:29:00 +00:00
usbhid.c libpayload: Make keycode constants available outside of curses.h. 2013-03-18 20:45:48 +01:00
usbhub.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
usbinit.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
usbmsc.c libpayload: usb mass storage detect empty media 2013-11-25 23:56:13 +01:00
xhci.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
xhci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
xhci_commands.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_debug.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_devconf.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_events.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_private.h libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_rh.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00