coreboot-kgpe-d16/payloads/libpayload/include
Julius Werner e30e4e7efa 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.

Original-Change-Id: I3df4ca88afe2dcf7928b823aa2a73c2b0f599cf2
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/198101
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
(cherry picked from commit 960534a20e4334772c29355bb0d310b3f41b31ee)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>

Change-Id: I39909fc96e32c9a5d76651d91c2b5c16c89ace9e
Reviewed-on: http://review.coreboot.org/7904
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
2014-12-30 19:01:14 +01:00
..
arm/arch ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-12-09 18:39:34 +01:00
arpa
pci
storage libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
sys
usb libpayload: usbmsc: Implement limited LUN support 2014-12-30 19:01:14 +01:00
x86/arch libpayload: Make it possible to install callbacks for particular exceptions. 2014-12-09 18:39:06 +01:00
assert.h
cbfs.h
cbfs_core.h ARM: Generalize armv7 as arm. 2014-09-08 18:59:23 +02:00
cbfs_ram.h
coreboot_tables.h arm: libpayload: Add cache coherent DMA memory definition and management 2014-08-13 00:04:14 +02:00
ctype.h
die.h libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
endian.h libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
errno.h
exception.h libpayload: Make it possible to install callbacks for particular exceptions. 2014-12-09 18:39:06 +01:00
getopt.h
inttypes.h
ipchksum.h libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
kconfig.h libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
keycodes.h
lar.h
libpayload.h libpayload: console: Allow output drivers to print whole strings at once 2014-12-22 21:44:37 +01:00
limits.h
lzma.h LZMA: Add a version of ulzma which takes the input and output buffer sizes. 2014-08-10 22:29:51 +02:00
malloc.h
multiboot_tables.h
panel.h
pci.h
stdarg.h
stddef.h ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-12-09 18:39:34 +01:00
stdint.h
stdio.h
stdlib.h ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-12-09 18:39:34 +01:00
string.h
strings.h
sysinfo.h libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
term.h
unistd.h
video_console.h