coreboot/payloads/libpayload/include
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
..
arm/arch ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-03-07 04:54:49 +00:00
arpa Refactor the endianness conversion functions and header files. 2012-11-08 19:49:51 +01:00
pci libpayload: Fix renaming of REG_CLASS_DEV to REG_SUBCLASS 2012-12-10 16:45:00 +01:00
storage libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2013-08-14 17:05:33 -07:00
sys libpayload: Start using only internal and compiler headers. 2013-03-13 22:04:44 +01:00
usb libpayload: usbmsc: Implement limited LUN support 2014-05-06 00:08:25 +00:00
x86/arch libpayload: Make it possible to install callbacks for particular exceptions. 2014-02-13 04:15:59 +00:00
assert.h libpayload: Fix the format string of the assert macro. 2012-11-07 18:36:05 +01:00
cbfs.h libpayload: New CBFS to support multiple firmware media sources. 2013-02-12 11:34:20 +01:00
cbfs_core.h ARM: Generalize armv7 as arm. 2013-10-02 09:18:44 +00:00
cbfs_ram.h libpayload: expose cbfs ram functions 2013-05-24 16:27:51 -07:00
coreboot_tables.h libpayload: Parse CBMEM ACPI GNVS pointer 2013-12-13 03:55:53 +00:00
ctype.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +00:00
die.h libpayload: Add a new "die" function to fatally signal programming errors. 2013-11-27 01:46:00 +00:00
endian.h libpayload: Fix the license in some files which were accidentally made GPL. 2014-01-11 01:36:57 +00:00
errno.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +00:00
exception.h libpayload: Make it possible to install callbacks for particular exceptions. 2014-02-13 04:15:59 +00:00
getopt.h Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
inttypes.h libpayload: Start using only internal and compiler headers. 2013-03-13 22:04:44 +01:00
ipchksum.h libpayload: Fix the license in some files which were accidentally made GPL. 2014-01-11 01:36:57 +00:00
kconfig.h libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2013-08-14 17:05:33 -07:00
keycodes.h libpayload: Make keycode constants available outside of curses.h. 2013-03-18 20:45:48 +01:00
lar.h libpayload: Add LAR walking support 2008-05-07 20:34:02 +00:00
libpayload.h libpayload: console: Allow output drivers to print whole strings at once 2014-04-30 10:00:35 +00:00
limits.h libpayload: Improve compatibility 2011-07-16 11:09:28 +02:00
lzma.h LZMA: Add a version of ulzma which takes the input and output buffer sizes. 2013-08-14 17:05:34 -07:00
malloc.h libpayload: Provide atol(), malloc.h 2011-07-07 22:29:53 +02:00
multiboot_tables.h [PATCH] libpayload: Add multiboot support 2008-10-20 16:51:43 +00:00
panel.h libpayload: Add PDCurses and ncurses' libform/libmenu 2011-08-04 08:10:41 +02:00
pci.h libpayload: Add definitions for more config space registers. 2012-11-07 18:36:27 +01:00
stdarg.h libpayload: Don't sneak in compiler includes 2013-04-09 13:45:42 -07:00
stddef.h ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-03-07 04:54:49 +00:00
stdint.h libpayload: Fix type issues 2013-03-26 19:36:39 +01:00
stdio.h libpayload: Add the format attribute to functions in stdio.h. 2012-11-07 18:36:14 +01:00
stdlib.h ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-03-07 04:54:49 +00:00
string.h libpayload: Implement strlcpy 2011-07-07 22:29:35 +02:00
strings.h libpayload: Implement ffs() 2011-03-01 07:23:49 +00:00
sysinfo.h libpayload: Parse CBMEM ACPI GNVS pointer 2013-12-13 03:55:53 +00:00
term.h libpayload: remove trailing whitespace and run dos2unix 2011-11-01 19:08:23 +01:00
unistd.h libpayload: Don't sneak in compiler includes 2013-04-09 13:45:42 -07:00
video_console.h Add coreboot framebuffer support to libpayload 2010-03-25 18:56:26 +00:00