
CHAPTER 3 DESCRIPTION OF USB HOST CONTROLLER FUNCTIONS
45
3.8 Legacy Operations
This section describes legacy functions. Legacy functions are provided to directly support the software belonging
to an older (“l(fā)egacy”) type of keyboard or mouse device by enabling data from USB keyboard or mouse devices to
operate via a legacy keyboard or mouse device interface. These legacy functions are valid when the LEGC pin and
AT pin are both clamped to “H”. Operations are defined for three conditions: when all connected keyboard/mouse
devices are legacy devices, when all are USB devices, and when one or more of each type of device is connected.
Figure 3-17 shows an operational flowchart of input-related legacy functions. When the legacy functions are valid
(enabled), the HC first checks HceControl’s EmulationEnable and ExternalIRQEn fields. If EmulationEnable has
been set to “1”, connected USB keyboard or mouse devices are emulated to operate like legacy keyboard or mouse
devices (only USB keyboard or mouse devices are valid). If ExternalIRQEn has been set to “1”, connected USB
keyboard or mouse devices are emulated to operate like legacy keyboard or mouse devices, and compatibility of
legacy keyboard/mouse operations is maintained (both USB and legacy keyboard or mouse devices are used).
Figure 3-17. Input-related Legacy Operation Flowchart
I/O Access to HC
Disable
Legacy support
INPUT
Emulation for
USB Keyboard/mouse
ExternallRQEn
= 0
EmulationEnable
= 1
ExternallRQEn
= 0
Keyboard/mouse Data
from
Legacy Products.
Emulation for
Legacy or USB
Keyboard/mouse
Interrupt Through
IRO1 = IRI1
Note
IRO2 = IRI2
YES
YES
YES
NO
NO
NO
Note
Even if IRI1 is ON, IRQ1Active remains at “L”. Similarly, even if IRI2 is ON, IRQ12Active remains at “L”.
When “0” is the value of both EmulationEnable and ExternalIRQEn, only legacy keyboard or mouse devices are
valid, which means that IRQ1 (keyboard interrupt) and IRQ12 (mouse interrupt) are sent from the keyboard controller
to the system directly via the HC. The HC does not receive I/O access (60h/64h), which is direct access to the
keyboard controller, and does not perform any special processing.
Figure 3-18 shows an input emulation flowchart for USB keyboard or mouse devices. The HC always performs
interrupt list service for each frame. When the transfer that is performed according to the TD is completed, the TD is
linked to the Done Queue and a write operation to HccaDoneHead and the WritebackDoneHead interrupt occur after
a specified amount of time (Delay Interrupt). If the correctly transferred data includes USB keyboard or mouse data,
the system software sets “1” to CharacterPending in HceControl. The HC checks that Command Reg.’s Memory
Access field has been set to “1”, HceStatus’s OutputFull field has been set to “0”, HceStatus’s CharacterPending field
has been set to “1”, and HceStatus’s EmulationEnable field has been set to “1”, after which an emulation interrupt
occurs. The output destination for this interrupt is set via HcControl’s InterruptRouting field.