找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 12065|回复: 12

在Asl中开关USB 设备

[复制链接]
发表于 2008-9-2 08:20:46 | 显示全部楼层 |阅读模式
各位大虾,请教一个问题。如何在ASL中开关一个USB 设备?) K! a4 q; o# G; z5 ~, h
我目前有个功能:就是按键开关usb的camero,我在EC中检查按键的状态,填写一个status bit在EC SPACE中。目前我在OS中确定当我按键的时候,这个status bit有变化。在ASL code对应的Q_METHOD中我去检查这个 status bit的值来确定是否开关USB camero。但是目前的问题是:不知道如何在ASL中开关一个USB 设备?请各位大虾帮忙指点一下。
发表于 2008-9-2 09:40:39 | 显示全部楼层
我也想知道, USB的
1 Q% c! d) g! ^/ l6 P0 s! V
回复

使用道具 举报

发表于 2008-9-2 11:20:53 | 显示全部楼层
为什么不直接让EC来做?1 [* k4 [' f4 [' n, u. A( A
EC可以检测到USB port的Status,不可以开关USB port的power吗?
回复

使用道具 举报

 楼主| 发表于 2008-9-2 12:17:01 | 显示全部楼层
因为我们的硬件没有GPIO PIN去控制这个USB 设备的电源.如果是软件去实现改USB的寄存器的话,EC 应该是没有办法的.只有通过SCI EVENT 告诉OSPM,在ASL code中去开关USB设备.% M2 [; \% y/ c1 a- F
目前小弟就是不知道在ASL code中如何去开关USB设备.
回复

使用道具 举报

 楼主| 发表于 2008-9-2 12:20:20 | 显示全部楼层
如果是用EC的GPIO PIN去控制该USB设备的电源的话,是否直接在EC中控制GPIO pin的状态就OK 了?对WINDOWS而言,控制USB 设备电源的开关是否跟插拔USB是一样的呢?当电源enable的时候,WINDOWS中USB的driver是否会去自动initial 该设备?
回复

使用道具 举报

发表于 2008-9-2 12:59:08 | 显示全部楼层
应该是的.以前见过那么做的
, N) t8 k/ r" z' J# s如果硬件没有提供专用的Pin,就要看你的USB Camera Module有没有提供相应的接口了,1 G' \$ n& R2 S/ q/ b
据我所知,chipset和USB Controller是没有开关USB port的register的.
回复

使用道具 举报

 楼主| 发表于 2008-9-2 18:21:11 | 显示全部楼层
是的,通过HW添加电路去控制USB camero的电源就很简单了.EC只需要GPIO pin的高低而已,不需要系统BIOS去参与.所有的工作都交给camero的driver了.
回复

使用道具 举报

发表于 2008-11-13 13:35:57 | 显示全部楼层
哈哈BIOS是可以把某个USB port禁用的,问一下BIOS的就ok了。EC自己做的话加个开关电路找一个GPIO去开关设备的power
回复

使用道具 举报

发表于 2008-11-13 14:02:54 | 显示全部楼层
BIOS是可以禁用和启用5 D2 Z2 f( n! |/ f* Y# ?% Z
,而不是动态地开关!
回复

使用道具 举报

发表于 2009-4-16 15:22:07 | 显示全部楼层

回复 6# xtdumpling 的帖子

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

使用道具 举报

发表于 2009-4-16 18:18:41 | 显示全部楼层

回复 10# 凉风有讯 的帖子

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

使用道具 举报

发表于 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.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-11-23 23:18 , Processed in 0.023763 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表