Functional Description
5-118
Intel
82801BA ICH2 Datasheet
When the ICH2 detects a resume event on any of its ports, it sets the corresponding USB_STS bit
in ACPI space. If USB is enabled as a wake/break event, the system wakes up and an SCI is
generated.
5.16.8
USB Legacy Keyboard Operation
When a USB keyboard is plugged into the system and a standard keyboard is not, the system may
not boot and DOS legacy software will not run; this is because the keyboard is not identified. The
ICH2 implements a series of trapping operations which snoop accesses that go to the keyboard
controller and put the expected data from the USB keyboard into the keyboard controller.
Note:
The scheme described below assumes that the keyboard controller (8042 or equivalent) is on the
LPC bus.
This legacy operation is performed through SMM space.
Figure 5-18
shows the Enable and Status path. The latched SMI source (60R, 60W, 64R, 64W) is
available in the Status Register. Because the enable is after the latch, it is possible to check for
other events that didn't necessarily cause an SMI. It is the software's responsibility to logically
AND the value with the appropriate enable bits.
Note also that the SMI is generated before the PCI cycle completes (e.g., before TRDY# goes
active) to ensure that the processor does not complete the cycle before the SMI is observed. This
method is used on MPIIX and has been validated.
The logic will also need to block the accesses to the 8042. If there is an external 8042, this is
accomplished by not activating the 8042 CS. This is done by logically ANDing the 4 enables
(60R, 60W, 64R, 64W) with the 4 types of accesses to determine if the 8042CS should go active.
An additional term is required for the “Pass-through” case. The state table for the diagram is shown
in
Table 5-76
.
Figure 5-18. USB Legacy Keyboard Flow Diagram
Decoder
PCI Config
Read, Write
Comb.
AND
60 READ
EN_SMI_ON_60R
S
Clear SMI_60_R
R
D
OR
SMI
Same for 60W, 64R, 64W
To Individual
"Caused By"
"Bits"
KBC Accesses
AND
USB_IRQ
EN_SMI_ON_IRQ
S
Clear USB_IRQ
R
D
To "Caused By" Bit
To PIRQD#
AND
EN_PIRQD#
Powered by ICminer.com Electronic-Library Service CopyRight 2003