Merge tag 'x86_fpu_for_6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux-block.git] / Documentation / arch / x86 / usb-legacy-support.rst
CommitLineData
71892b25
CD
1
2.. SPDX-License-Identifier: GPL-2.0
3
4==================
1da177e4 5USB Legacy support
71892b25 6==================
1da177e4 7
71892b25 8:Author: Vojtech Pavlik <vojtech@suse.cz>, January 2004
1da177e4
LT
9
10
11Also known as "USB Keyboard" or "USB Mouse support" in the BIOS Setup is a
12feature that allows one to use the USB mouse and keyboard as if they were
13their classic PS/2 counterparts. This means one can use an USB keyboard to
14type in LILO for example.
15
16It has several drawbacks, though:
17
181) On some machines, the emulated PS/2 mouse takes over even when no USB
19 mouse is present and a real PS/2 mouse is present. In that case the extra
20 features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may
21 not be available.
22
232) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause
24 system crashes, because the SMM BIOS is not expecting to be in PAE mode.
25 The Intel E7505 is a typical machine where this happens.
26
273) If AMD64 64-bit mode is enabled, again system crashes often happen,
28 because the SMM BIOS isn't expecting the CPU to be in 64-bit mode. The
29 BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit
30 yet.
31
32Solutions:
33
71892b25
CD
34Problem 1)
35 can be solved by loading the USB drivers prior to loading the
36 PS/2 mouse driver. Since the PS/2 mouse driver is in 2.6 compiled into
37 the kernel unconditionally, this means the USB drivers need to be
38 compiled-in, too.
39
40Problem 2)
41 can currently only be solved by either disabling HIGHMEM64G
42 in the kernel config or USB Legacy support in the BIOS. A BIOS update
43 could help, but so far no such update exists.
44
45Problem 3)
46 is usually fixed by a BIOS update. Check the board
47 manufacturers web site. If an update is not available, disable USB
48 Legacy support in the BIOS. If this alone doesn't help, try also adding
49 idle=poll on the kernel command line. The BIOS may be entering the SMM
50 on the HLT instruction as well.