|
|
) x6 N! o8 x, Y! \( F( `0 |9 I/ L1 d) O
1. What’s it?
. R* k5 b; a0 v }. p j) ] |
$ z: f; c5 d; u! d* }6 p
8 Y5 _1 J$ {. _* D! N
6 r2 E7 `" k& q& ^. s4 f: O3 tAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。- K5 Y$ |& X5 L1 J/ A" d
1 z/ F$ l6 a7 v* h2. Why need it?
) Q7 r) T$ J& [1 \5 o1 o' f
& Q8 L; K e2 _# X+ Q% p, g. b' X7 w5 L1 f0 }) k
- M- Q, t% @1 ]9 j5 x4 i& k& Q
3 o# _7 C! e1 \
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
% u- g( |4 z3 H4 G* K8 a9 s9 U m ! V7 r7 W. E$ @) s9 m4 X
3. How to implement?3 P; r' @8 @, A' w% l
; b: x0 z$ H6 X4 e
/ y4 {. z( x3 v- t/ E
: G: X$ G7 f$ u+ T# u. o% r
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,( r* P! }, ~$ O: ^, k! [
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
) |" t4 X* `6 a7 d9 N
7 q+ O! o* x# j4 o0 F
8 {( a; F0 T x5 \3 n$ i, p/ s) N/ U& I! V
图 1
4 Z0 H% Q1 |2 N# |) _9 Z
) _0 N$ M5 A j
. J2 [9 ?1 l1 d* c `* g0 YPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|