Legacy USB在两种情况下的实现

Legacy USB的实现分成两种情况:

第一,系统中有8042(KBC)

SMM代码从USB Keyboard/Mouse获得输入后,用0D2H(Keyboard)或0D3H(Mouse)把数据送入8042, 8042把他当成是PS/2 Keyboard或Mouse输入,触发IRQ1或IRQ12。INT9/INT74h从KBC读出Scan Code并完成中断服务。

第二,系统中没有8042(KBC),是Legacy Free的系统

SMM代码需要一种硬件机制来帮助触发IRQ1、IRQ12。

这是通过Software IRQ Generation Register来实现的。

地址:TCOBase+10h, bit1--IRQ12_CAUSE, when software set this bit to 1, IRQ12 will be asserted

                                          bit0--IRQ1_CAUSE,  when software set this bit to 1, IRQ1 will be asserted.

 

 

1. 如何判断8042是否存在?/ 如何判断一个系统是Legacy Free?

     从64H端口读出值来(IORead8(0x64)), 若为0xFF, 则KBC不存在,是Legacy Free的系统;

                                                                                 若不是0xFF,则KBC存在。

2. 如何Enable Legacy USB circuit to cause SMI#?

     PMBase+30H, bit3    LEGACY_USB_EN

 

3. ULKMC--USB Legacy Keyboard/Mouse Control

    LPC B0:Dev31:F0:Reg94H bit4:0, Enable USB interrupt/Port64 write/Port64 read/Port60 write/Port60 read cause an SMI event

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值