|
|
& c2 l2 T4 H% d' I3 D! ?
1. What’s it?* d; T% B2 Y. @2 v+ n2 K) O
) s* n8 S7 d* [- C* k6 A) g$ \) U" W F
0 Y1 |( O. F- F7 ~# t" Z# U
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。0 E" |. s; Y1 Y3 z( w. C1 v2 f
- }# w( E9 T z8 J. f1 ?5 S2 \
2. Why need it?' k$ r- Y, W& i2 G1 x
3 t% P4 U, U' P' K7 C+ Q# O/ _/ a" e: M P( m
% J0 U; ?: Q& |
& r+ ^! a+ C) x1 a/ T- E9 K这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。# j. {6 J4 [! ~
% m( U9 }5 w3 o' z; M! R
3. How to implement?2 Y. @2 [( M) ]1 @
) O% e0 l; N: a6 _- ~& e
( q( b- @' H3 {5 J0 q) m F1 a# T* s+ e: _0 B; J4 G( a f% ?' c
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,9 o2 K% |. f# p+ p8 @: p) k
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:! |. i f/ [& E" x
0 I8 T& \; I' Q& i( c9 X# o! C/ D' c( l
- t7 R7 P# ]$ R. L/ b" Y
图 1 G: }8 K8 L5 _9 [4 \ b
3 k; m. a3 ?7 v: F5 c0 f2 W+ J' e; o8 A1 |9 [0 u: Q9 Q
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|