coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Aaron Durbin 1c20e385a0 libpayload: usb mass storage card hot plug
Mass storage devices such as card readers show up as
as USB devices. However the media not be inserted. In those
situations the previous code would just fake a disk and
call usbcreate_disk. This is inappropriate because it forms
a 1:1 mapping of USB device to disk leading to the inability
to remove the disk and/or handle "hot plug" card insertion
and removals.

To alleviate this issue introduce the notion of ready to the
usbmsc structure. It tracks detached, not ready, and ready
states. The polling routine is then used to track not ready
to ready transitions thereby creating and removing disks
appropriately. This handles the case of inserting and removing
a card that shows up as a new disk.

Booted recovery mode. Able to observe inerstion and removal
of sdcard. Also able to insert valid USB flash drive to boot
as well.

Change-Id: I3eefbe537ec1b9c975744b8984b06c17ae236f40
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/57948
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/4226
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-11-25 23:56:22 +01:00
..
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00: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
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
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 card hot plug 2013-11-25 23:56:22 +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