summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorMichael Brown2015-09-10 18:22:03 +0200
committerMichael Brown2015-09-14 23:11:37 +0200
commit5df081d6c039924506c07c0c7a2cf7e2c699709f (patch)
treebe5be151ecfc2372a1267372215dc49f3ca67340 /src/config
parent[usb] Allow for wildcard USB class IDs (diff)
downloadipxe-5df081d6c039924506c07c0c7a2cf7e2c699709f.tar.gz
ipxe-5df081d6c039924506c07c0c7a2cf7e2c699709f.tar.xz
ipxe-5df081d6c039924506c07c0c7a2cf7e2c699709f.zip
[efi] Expose unused USB devices via EFI_USB_IO_PROTOCOL
Allow the UEFI platform firmware to provide drivers for unrecognised devices, by exposing our own implementation of EFI_USB_IO_PROTOCOL. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/config')
-rw-r--r--src/config/config_usb.c7
-rw-r--r--src/config/defaults/efi.h5
-rw-r--r--src/config/usb.h16
3 files changed, 23 insertions, 5 deletions
diff --git a/src/config/config_usb.c b/src/config/config_usb.c
index 4e5843b9..17296d27 100644
--- a/src/config/config_usb.c
+++ b/src/config/config_usb.c
@@ -53,3 +53,10 @@ REQUIRE_OBJECT ( usbio );
#ifdef USB_KEYBOARD
REQUIRE_OBJECT ( usbkbd );
#endif
+
+/*
+ * Drag in USB external interfaces
+ */
+#ifdef USB_EFI
+REQUIRE_OBJECT ( efi_usb );
+#endif
diff --git a/src/config/defaults/efi.h b/src/config/defaults/efi.h
index cdf41c54..502bef1d 100644
--- a/src/config/defaults/efi.h
+++ b/src/config/defaults/efi.h
@@ -26,6 +26,11 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define IMAGE_EFI /* EFI image support */
#define IMAGE_SCRIPT /* iPXE script image support */
+#define USB_HCD_XHCI /* xHCI USB host controller */
+#define USB_HCD_EHCI /* EHCI USB host controller */
+#define USB_HCD_UHCI /* UHCI USB host controller */
+#define USB_EFI /* Provide EFI_USB_IO_PROTOCOL interface */
+
#define REBOOT_CMD /* Reboot command */
#define CPUID_CMD /* x86 CPU feature detection command */
diff --git a/src/config/usb.h b/src/config/usb.h
index 6d80e7f6..d2519d87 100644
--- a/src/config/usb.h
+++ b/src/config/usb.h
@@ -15,16 +15,22 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
* USB host controllers (all enabled by default)
*
*/
-//#undef USB_HCD_XHCI /* xHCI USB host controller */
-//#undef USB_HCD_EHCI /* EHCI USB host controller */
-//#undef USB_HCD_UHCI /* UHCI USB host controller */
-//#define USB_HCD_USBIO /* Very slow EFI USB host controller */
+//#undef USB_HCD_XHCI /* xHCI USB host controller */
+//#undef USB_HCD_EHCI /* EHCI USB host controller */
+//#undef USB_HCD_UHCI /* UHCI USB host controller */
+//#define USB_HCD_USBIO /* Very slow EFI USB host controller */
/*
* USB peripherals
*
*/
-//#undef USB_KEYBOARD /* USB keyboards */
+//#undef USB_KEYBOARD /* USB keyboards */
+
+/*
+ * USB external interfaces
+ *
+ */
+//#undef USB_EFI /* Provide EFI_USB_IO_PROTOCOL interface */
#include <config/named.h>
#include NAMED_CONFIG(usb.h)