coreboot-kgpe-d16/payloads/libpayload/include
Gabe Black dc9e77f451 libpayload: Add usb_generic_(create|remove) functions for unrecognized devices
It might be useful to provide a USB driver in the payload itself instead of in
libpayload. For example there are multiple payloads being built and linked
against the same libpayload, and they might not need or even want to have the
same set of drivers installed.

This change adds two new functions, usb_generic_create and usb_generic_remove,
which behave like the usbdisk_create and usbdisk_remove functions which are
defined for USB mass storage devices. If a USB device isn't recognized and
claimed by one of the built in USB class drivers (currently hub, hid, and msc)
and the create function is defined, then it will be called to give the payload
a chance to use the device. Once it's removed, if usb_generic_remove is
defined it will be called, effectively giving the payload notice.

Built and booted depthcharge on Link. Built depthcharge for Daisy. Built
a netbooting payload, called usb_poll() with those functions implemented, and
verified that they were called and that the devices they were told about were
reasonable and the same as what was reported by lsusb in the booted system.

Change-Id: Ief7c0a513b60849fbf2986ef4ae5c9e7825fef16
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: http://review.coreboot.org/2666
Tested-by: build bot (Jenkins)
Reviewed-by: Kimarie Hoot <kimarie.hoot@se-eng.com>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-03-13 23:08:58 +01:00
..
armv7/arch libpayload: Catch exceptions and print out an error message. 2013-03-04 22:39:09 +01: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
powerpc/arch Refactor the endianness conversion functions and header files. 2012-11-08 19:49:51 +01:00
storage libpayload: Export device count in storage interface 2012-11-14 17:39:03 +01:00
sys libpayload: Start using only internal and compiler headers. 2013-03-13 22:04:44 +01:00
usb libpayload: Add usb_generic_(create|remove) functions for unrecognized devices 2013-03-13 23:08:58 +01:00
x86/arch libpayload: rename i386 to x86 2012-12-14 22:29:17 +01: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 libpayload: New CBFS to support multiple firmware media sources. 2013-02-12 11:34:20 +01:00
coreboot_tables.h libpayload: Add CB_ prefixes to some constants in coreboot_tables.h. 2012-11-09 22:54:04 +01:00
ctype.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +00:00
endian.h libpayload: Add more parenthesis to the endian conversion macros 2013-03-13 19:12:31 +01:00
errno.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +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 Move the definition of ipchksum into its own header file. 2012-11-07 18:30:21 +01:00
kconfig.h libpayload: add kconfig.h 2012-12-14 23:59:05 +01:00
lar.h libpayload: Add LAR walking support 2008-05-07 20:34:02 +00:00
libpayload.h libpayload: Add a function to retrieve the rows and cols of the video console. 2012-11-09 19:02:26 +01:00
limits.h libpayload: Improve compatibility 2011-07-16 11:09:28 +02:00
lzma.h libpayload: Make the source for lzma decompression const 2013-03-13 18:16:35 +01: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: Improve compatibility 2011-07-16 11:09:28 +02:00
stdint.h libpayload: New CBFS to support multiple firmware media sources. 2013-02-12 11:34:20 +01:00
stdio.h libpayload: Add the format attribute to functions in stdio.h. 2012-11-07 18:36:14 +01:00
stdlib.h libpayload: Some more compatibility (for flashrom) 2011-08-17 16:26:20 +02: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: Use #ifdef for CONFIG_* checks 2012-11-15 18:51:17 +01:00
term.h libpayload: remove trailing whitespace and run dos2unix 2011-11-01 19:08:23 +01:00
unistd.h libpayload: New AHCI, ATA and ATAPI drivers 2012-10-27 02:52:58 +02:00
video_console.h Add coreboot framebuffer support to libpayload 2010-03-25 18:56:26 +00:00