summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorMichael Brown2015-05-11 16:42:54 +0200
committerMichael Brown2015-05-12 16:53:22 +0200
commit372672275e48a7f0fcd058476bd742bf950e4074 (patch)
treee4d781c7be57583d93aaac215c0fa5e01bd89d34 /src/config
parent[usb] Add generic USB human interface device (HID) framework (diff)
downloadipxe-372672275e48a7f0fcd058476bd742bf950e4074.tar.gz
ipxe-372672275e48a7f0fcd058476bd742bf950e4074.tar.xz
ipxe-372672275e48a7f0fcd058476bd742bf950e4074.zip
[usb] Add basic support for USB keyboards
When USB network card drivers are used, the BIOS' legacy USB capability is necessarily disabled since there is no way to share the host controller between the BIOS and iPXE. This currently results in USB keyboards becoming non-functional in USB-enabled builds of iPXE. Fix by adding basic support for USB keyboards, enabled by default in iPXE builds which include USB support. 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/pcbios.h1
-rw-r--r--src/config/usb.h6
3 files changed, 14 insertions, 0 deletions
diff --git a/src/config/config_usb.c b/src/config/config_usb.c
index 9c9305d7..dc0e6e6a 100644
--- a/src/config/config_usb.c
+++ b/src/config/config_usb.c
@@ -43,3 +43,10 @@ REQUIRE_OBJECT ( ehci );
#ifdef USB_HCD_UHCI
REQUIRE_OBJECT ( uhci );
#endif
+
+/*
+ * Drag in USB peripherals
+ */
+#ifdef USB_KEYBOARD
+REQUIRE_OBJECT ( usbkbd );
+#endif
diff --git a/src/config/defaults/pcbios.h b/src/config/defaults/pcbios.h
index dfd3e2f8..4ad81210 100644
--- a/src/config/defaults/pcbios.h
+++ b/src/config/defaults/pcbios.h
@@ -39,6 +39,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#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_KEYBOARD /* USB keyboards */
#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 0181c50e..52e82eaa 100644
--- a/src/config/usb.h
+++ b/src/config/usb.h
@@ -19,6 +19,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
//#undef USB_HCD_EHCI /* EHCI USB host controller */
//#undef USB_HCD_UHCI /* UHCI USB host controller */
+/*
+ * USB peripherals
+ *
+ */
+//#undef USB_KEYBOARD /* USB keyboards */
+
#include <config/named.h>
#include NAMED_CONFIG(usb.h)
#include <config/local/usb.h>