Back to home page

OSCL-LXR

 
 

    


0001 
0002 .. SPDX-License-Identifier: GPL-2.0
0003 
0004 ==================
0005 USB Legacy support
0006 ==================
0007 
0008 :Author: Vojtech Pavlik <vojtech@suse.cz>, January 2004
0009 
0010 
0011 Also known as "USB Keyboard" or "USB Mouse support" in the BIOS Setup is a
0012 feature that allows one to use the USB mouse and keyboard as if they were
0013 their classic PS/2 counterparts.  This means one can use an USB keyboard to
0014 type in LILO for example.
0015 
0016 It has several drawbacks, though:
0017 
0018 1) On some machines, the emulated PS/2 mouse takes over even when no USB
0019    mouse is present and a real PS/2 mouse is present.  In that case the extra
0020    features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may
0021    not be available.
0022 
0023 2) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause
0024    system crashes, because the SMM BIOS is not expecting to be in PAE mode.
0025    The Intel E7505 is a typical machine where this happens.
0026 
0027 3) If AMD64 64-bit mode is enabled, again system crashes often happen,
0028    because the SMM BIOS isn't expecting the CPU to be in 64-bit mode.  The
0029    BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit
0030    yet.
0031 
0032 Solutions:
0033 
0034 Problem 1)
0035   can be solved by loading the USB drivers prior to loading the
0036   PS/2 mouse driver. Since the PS/2 mouse driver is in 2.6 compiled into
0037   the kernel unconditionally, this means the USB drivers need to be
0038   compiled-in, too.
0039 
0040 Problem 2)
0041   can currently only be solved by either disabling HIGHMEM64G
0042   in the kernel config or USB Legacy support in the BIOS. A BIOS update
0043   could help, but so far no such update exists.
0044 
0045 Problem 3)
0046   is usually fixed by a BIOS update. Check the board
0047   manufacturers web site. If an update is not available, disable USB
0048   Legacy support in the BIOS. If this alone doesn't help, try also adding
0049   idle=poll on the kernel command line. The BIOS may be entering the SMM
0050   on the HLT instruction as well.