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

在Asl中开关USB 设备

[复制链接]
发表于 2008-9-2 08:20:46 | 显示全部楼层 |阅读模式
各位大虾,请教一个问题。如何在ASL中开关一个USB 设备?
% m7 |) I* |4 I% L& u- D1 z3 U4 W我目前有个功能:就是按键开关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的
0 c# I' a& p# W6 f2 Z+ B: }
回复

使用道具 举报

发表于 2008-9-2 11:20:53 | 显示全部楼层
为什么不直接让EC来做?, o2 z2 B- P2 t5 ?! A; t
EC可以检测到USB port的Status,不可以开关USB port的power吗?
回复

使用道具 举报

 楼主| 发表于 2008-9-2 12:17:01 | 显示全部楼层
因为我们的硬件没有GPIO PIN去控制这个USB 设备的电源.如果是软件去实现改USB的寄存器的话,EC 应该是没有办法的.只有通过SCI EVENT 告诉OSPM,在ASL code中去开关USB设备.
1 W/ X: T2 f* O. [, x目前小弟就是不知道在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 | 显示全部楼层
应该是的.以前见过那么做的" G: B/ U9 w/ {9 V
如果硬件没有提供专用的Pin,就要看你的USB Camera Module有没有提供相应的接口了,
: P  n) @. O# M# _* Y7 f, W据我所知,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是可以禁用和启用; S* @9 U; I5 r( ?4 Y
,而不是动态地开关!
回复

使用道具 举报

发表于 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-14 14:44 , Processed in 0.028735 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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