This method requires that SMM code be invoked based on the incoming USB data. The SMM code manages the0 b0 m7 t; W" n. T1 a( l
USB data queues, takes the received data, and writes it into the 8042 device using the "D2" (keyboard) or "D3": U4 D0 u4 }8 b3 e+ o# E
(mouse) commands. This instructs the 8042 controller to process the incoming data as if it had come from the ! v- R/ ^& F$ K+ Zstandard PS/2 keyboard or mouse. Once the data is placed in its registers, the 8042 controller generates the7 m- P8 W( Q6 N2 q
appropriate interrupt (IRQ1 for the keyboard or IRQ12 for the mouse). The data is then processed by the normal . g, m+ O& T0 b) tinterrupt handlers.
晚上抽空看了一下Universal Host Controller Interface (UHCI) Design Guide,第5章,发现确实是这样,USB Controller将keystroke or mouse movement. 产生的data 放在 main memory中,(而非USB KB或mouse产生的data是放在I/O LOCATION),然后产生SMI# ,然后依照4楼所述往下走,不知道我理解的对不对,请各位指教!!& q d+ v# H" P
不过还有点疑惑是:The USB controller must also be 2 n: b) A5 S1 |) n* C" ~! O( j3 Mable to generate an SMI# based on the data being stored to main memory,对这句话而言,难道不同的数据会产生不同的SMI# 吗(是不是不同的数据会引起调用不统的SMM code)?对SMI 概念还没理清~~呵呵, - P# g, t1 Y/ ^请各位前辈指教~~~ ( ~7 X! r$ @4 @4 _$ T5 I, x多谢