If you want to use a USB keyboard, you'll need to enable this CONFIG.
It is disabled by default, since we usually use serial access and it is
a source of interference. Sometimes you want a keyboard for debugging.
Signed-off-by: Barret Rhoden <
br...@cs.berkeley.edu>
---
kern/arch/x86/Kconfig | 10 ++++++++++
kern/arch/x86/init.c | 4 ++++
2 files changed, 14 insertions(+)
diff --git a/kern/arch/x86/Kconfig b/kern/arch/x86/Kconfig
index dbff2afcd4d9..e467b5409f67 100644
--- a/kern/arch/x86/Kconfig
+++ b/kern/arch/x86/Kconfig
@@ -72,4 +72,14 @@ config X86_DISABLE_KEYBOARD
Say 'y' if you have such a machine and do not need the keyboard.
+config ENABLE_LEGACY_USB
+ bool "Enable Legacy USB"
+ default n
+ help
+ Say 'y' if you want to use a USB keyboard. Given that we do not have a
+ USB stack, disabling legacy USB means USB keyboards will not work. We
+ disable legacy USB by default, since our primary console communication
+ is serial, and legacy USB support results in SMM interference that
+ affects all cores.
+
endmenu
diff --git a/kern/arch/x86/init.c b/kern/arch/x86/init.c
index 126d75b8a565..b724360f7333 100644
--- a/kern/arch/x86/init.c
+++ b/kern/arch/x86/init.c
@@ -91,6 +91,10 @@ void arch_init()
perfmon_init();
cons_irq_init();
intel_lpc_init();
+#ifdef CONFIG_ENABLE_LEGACY_USB
+ printk("Legacy USB support enabled, expect SMM interference!\n");
+#else
usb_disable_legacy();
+#endif
check_timing_stability();
}
--
2.6.0.rc2.230.g3dd15c0