x86: Provide an option to enable legacy USB
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 19 Nov 2015 02:08:21 +0000 (18:08 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 25 Nov 2015 14:44:48 +0000 (09:44 -0500)
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 <brho@cs.berkeley.edu>
kern/arch/x86/Kconfig
kern/arch/x86/init.c

index dbff2af..e467b54 100644 (file)
@@ -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
index 126d75b..b724360 100644 (file)
@@ -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();
 }