peterdeng 发表于 2008-9-2 08:20:46

在Asl中开关USB 设备

各位大虾,请教一个问题。如何在ASL中开关一个USB 设备?
我目前有个功能:就是按键开关usb的camero,我在EC中检查按键的状态,填写一个status bit在EC SPACE中。目前我在OS中确定当我按键的时候,这个status bit有变化。在ASL code对应的Q_METHOD中我去检查这个 status bit的值来确定是否开关USB camero。但是目前的问题是:不知道如何在ASL中开关一个USB 设备?请各位大虾帮忙指点一下。

smile__xu 发表于 2008-9-2 09:40:39

我也想知道, USB的
:)

xtdumpling 发表于 2008-9-2 11:20:53

为什么不直接让EC来做?
EC可以检测到USB port的Status,不可以开关USB port的power吗?:L

peterdeng 发表于 2008-9-2 12:17:01

因为我们的硬件没有GPIO PIN去控制这个USB 设备的电源.如果是软件去实现改USB的寄存器的话,EC 应该是没有办法的.只有通过SCI EVENT 告诉OSPM,在ASL code中去开关USB设备.
目前小弟就是不知道在ASL code中如何去开关USB设备.

peterdeng 发表于 2008-9-2 12:20:20

如果是用EC的GPIO PIN去控制该USB设备的电源的话,是否直接在EC中控制GPIO pin的状态就OK 了?对WINDOWS而言,控制USB 设备电源的开关是否跟插拔USB是一样的呢?当电源enable的时候,WINDOWS中USB的driver是否会去自动initial 该设备?

xtdumpling 发表于 2008-9-2 12:59:08

应该是的.以前见过那么做的
如果硬件没有提供专用的Pin,就要看你的USB Camera Module有没有提供相应的接口了,
据我所知,chipset和USB Controller是没有开关USB port的register的.

peterdeng 发表于 2008-9-2 18:21:11

是的,通过HW添加电路去控制USB camero的电源就很简单了.EC只需要GPIO pin的高低而已,不需要系统BIOS去参与.所有的工作都交给camero的driver了.

wwwllllove 发表于 2008-11-13 13:35:57

哈哈BIOS是可以把某个USB port禁用的,问一下BIOS的就ok了。EC自己做的话加个开关电路找一个GPIO去开关设备的power

xtdumpling 发表于 2008-11-13 14:02:54

BIOS是可以禁用和启用
,而不是动态地开关!

凉风有讯 发表于 2009-4-16 15:22:07

回复 6# xtdumpling 的帖子

在CHIPSET中提供了REGISTER对某个具体的USB PORT进行单独ENABLE和DISABLE的,比如NVIDIA CHIPSET...

xtdumpling 发表于 2009-4-16 18:18:41

回复 10# 凉风有讯 的帖子

在POST结束后可以开关某个port吗?

freevanx 发表于 2009-4-18 10:21:37

最好拉GPIO了,BIOS是可以disable usb port了,不过注意disable的是root port,整个root port下面所有的东西都用不了,如果你觉得这样也无所谓的话,我可以告诉你大概用些什么代码~~~不过不提供EC envent处理的代码哦,没用过EC,不了解这方面的~~

凉风有讯 发表于 2009-5-9 23:34:09

回复 11# xtdumpling 的帖子

我记得NVDIA CHIPSET的南桥中提供了寄存器,其中的某些位是用来控制单独ENABLE/DISABLE某个USB PORT的。如果POST完成但是还没有进入OS,那么在BIOS中就可以通过直接访问这些寄存器来控制你要控制的USB PORT了(要注意你要控制的PORT是和哪个位对应的);如果是进入了OS(ACPI ENABLE后),也可以写ASL CODE来关闭USB PORT.
页: [1]
查看完整版本: 在Asl中开关USB 设备