![](http://datasheet.mmic.net.cn/380000/-PD9210FGC-7EA_datasheet_16745021/-PD9210FGC-7EA_47.png)
CHAPTER 3 DESCRIPTION OF USB HOST CONTROLLER FUNCTIONS
47
Figure 3-19 shows a flowchart for when input devices include a combination of USB keyboard or mouse devices
and legacy keyboard or mouse devices. In this case, processing of the USB keyboard/mouse data uses the same
flow as was described above. Meanwhile, legacy keyboard/mouse data is passed to the system software in the
same way as during emulation processing of USB keyboard/mouse data. When “1” has been set to ExternalIRQEn,
if an interrupt signal from the keyboard controller is detected, “1” is set to either the IRQ1Active bit or the
IRQ12Active bit in HceControl in response to the interrupt signal. When “1” is set to either of these bits, the HC no
longer acknowledges I/O access. Next, the HC checks that the Memory Access bit setting is “1”, the IRQ1Active or
IRQ12Active bit setting is “1”, and the ExternalIRQEn bit setting is also “1”, then generates an emulation interrupt. At
the point when the system software detects the emulation interrupt, data is read from the keyboard controller via 60h
I/O access and is written to HceOutput Reg. (108h) via a memory write operation, then “1” is set to the OutputFull
field. At the point when the system software confirms assertion of IRO1 (IRQ1) or IRO2 (IRQ12), the HC clears
IRQ1Active or IRQ12Active to “0” so that it is again able to respond to I/O access. After this change, assertion of the
IRO1 or IRO2 signal enables I/O read access to 60h. When I/O read access to 60h in software is performed, the HC
intercepts this access and outputs the HceOutput value to the data bus instead of the keyboard controller, and it sets
“0” to OutputFull and deasserts IRO1 or IRO2. During emulation, interrupts from the keyboard controller are masked
and are not received.
Figure 3-19. Combination of USB Keyboard/Mouse and Legacy Keyboard/Mouse (Input Emulation)
IRI1 = IRQ1Active
←
1
IRI2 = IRQ12Active
←
1
IR
Note 4
= 1:SMI
←
0
IR
Note 4
= 0:INTA
←
0
AOF
Note 6
= 0:IR01
←
1
AOF
Note 6
= 0:IR02
←
1
I/O Access to HC
Disable
Emulation for
USB Keyboard/mouse
I/O 60h Read
IRQEn = 1&
OutputFull = 1
FINISHED
Emulation Done
FINISHED
Keyboard/mouse
Data
from
Legacy Products.
Emulation Enable
= 1&
Operated USB
Keyboard/mouse
I
RQ1Active
←
0
IRQ12Active
←
0
EmulationEnable
←
1
SMI or INTA
←
1
I/O Access to HC
Enable
YES
NO
YES
NO
YES
NO
HceOutput
←
Data from keyboard
Output Full
←
1
Keyboard Date:AuxOutputFull
←
0
Mouse Date:AuxOutputFull
←
1
S
oftware (HDC, BIOS,
Driver)
proceed
MA
Note 1
= 1&
(IRQ1A
Note 2
= 1or
IRQ12A
Note 3
= 1)
I/O 60h
←
AccessIntercept
AD
←
HceOutput
OutputFull
←
0
IR01
←
0, IR02
←
0
Notes 1.
MA = PCI Command Reg. Memory Access
2.
IRQ1A = IRQ1Active
3.
IRQ12A = IRQ12Active
4.
IR = InterruptRouting
5.
An emulation interrupt is set independently of EmulationEnable.
6.
AOF = AuxOutputFull