|
* f! j" V: _0 W/ ]! c4 s' I+ e* r
1. What’s it?- O) v+ X# s4 b& [
3 f! m2 M7 K0 J! r! b* c$ O' ]( O' W x E
8 _, q! }/ ^0 w& d2 a5 VAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
6 ~! Y4 s2 S+ C( b9 U9 F0 G9 ` ! ]+ d/ c4 {: F+ `- H- P2 B
2. Why need it? {9 |9 j! L9 p4 H& L! B% O$ a
5 x+ t/ x" Q( \7 [2 f
0 j4 Q- s- F% H+ P+ U: t8 z1 ~5 _1 h( J$ m8 h! O L3 B& \' ^
* f! G7 G! b& W" @7 ?这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。9 w2 n7 z6 C" v4 }, `8 q# [* A
6 a: u7 H. q7 F! b, R; _- G6 g; d
3. How to implement?
2 _# t/ N8 Q* i; ` 9 b5 }* o- w% ^( Y
0 d+ J: ?; D9 ?& y) P+ f
: u, N% s3 j+ o; c7 ^; XAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,4 S9 U* W( x& v2 ^3 {! Y4 X
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
* b- k6 T7 K) u- ?4 @! \
D5 z/ J% c" k) p+ Z/ n; }. i3 g" s0 y6 B" y. v
% P* V4 z. b! @% m* I7 c. @
图 1- ~9 D5 S& t! }9 y& b1 f
7 F; w ~: A+ j( N1 }. ~, y1 C5 `* E/ z
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|