This method requires that SMM code be invoked based on the incoming USB data. The SMM code manages the+ x7 q3 _$ ?9 d/ ^
USB data queues, takes the received data, and writes it into the 8042 device using the "D2" (keyboard) or "D3" 8 {0 ~& q$ _# J( F! b(mouse) commands. This instructs the 8042 controller to process the incoming data as if it had come from the+ r* C: f2 Y) f5 d
standard PS/2 keyboard or mouse. Once the data is placed in its registers, the 8042 controller generates the5 ]+ a. Z2 v4 d3 n w0 k! Z
appropriate interrupt (IRQ1 for the keyboard or IRQ12 for the mouse). The data is then processed by the normal) L: s5 e1 m5 S' t
interrupt 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楼所述往下走,不知道我理解的对不对,请各位指教!! v( Y5 B+ g {- h5 h a9 L不过还有点疑惑是:The USB controller must also be0 |; t9 f9 M5 ~* A& P+ `' a5 A
able to generate an SMI# based on the data being stored to main memory,对这句话而言,难道不同的数据会产生不同的SMI# 吗(是不是不同的数据会引起调用不统的SMM code)?对SMI 概念还没理清~~呵呵, " B* E8 b- I* d) C请各位前辈指教~~~2 J8 Q4 I, K/ d6 I% D% Y
多谢