This method requires that SMM code be invoked based on the incoming USB data. The SMM code manages the' {% o! w1 d( X5 V! |, o, Y" C/ C% Y
USB data queues, takes the received data, and writes it into the 8042 device using the "D2" (keyboard) or "D3" ) [6 G7 w: e- w# F7 `) _, X* u1 c5 ~(mouse) commands. This instructs the 8042 controller to process the incoming data as if it had come from the ( H/ O5 R2 F( H- Qstandard PS/2 keyboard or mouse. Once the data is placed in its registers, the 8042 controller generates the ! { M/ G' }( r: B \, b# _' j" Bappropriate interrupt (IRQ1 for the keyboard or IRQ12 for the mouse). The data is then processed by the normal 8 _/ R" ]& ^9 Q6 v- K: u3 ]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楼所述往下走,不知道我理解的对不对,请各位指教!! + |: x/ t# \; c/ W5 ]$ a不过还有点疑惑是:The USB controller must also be) {! ~5 j8 x0 M9 R# i, R
able to generate an SMI# based on the data being stored to main memory,对这句话而言,难道不同的数据会产生不同的SMI# 吗(是不是不同的数据会引起调用不统的SMM code)?对SMI 概念还没理清~~呵呵, ) s' y, \1 B! T s; ]5 S请各位前辈指教~~~6 [7 I3 z" R- q- B% h! a5 O7 l
多谢