|
|
3 V2 Z2 n; t6 ]4 r& H6 @
1. What’s it?
' W1 K1 q) q( h4 F+ J* `$ A + N$ j M7 d) P5 F& D2 Z ^
/ c4 {2 a0 A( S, ~
6 r* A7 r7 o' f! 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 功能。
$ x) Q( n4 N4 W2 Y, r
u( ^5 Y, H0 P5 j, M2. Why need it?
6 u# C9 q: l8 O# e8 d/ Y; X: B1 ?- I% z( t- Q# A6 S
! ?2 T K" O" W, w' ~- `3 y2 l& V5 B- Y8 b9 S% ?3 g
, k _- v) r. a. c n
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。) b: R! j4 P: D3 K- j0 n
) v3 f9 g r+ ?' m
3. How to implement?& j( X" N; z5 a1 c0 M. K
# T8 W& I6 H5 R' v( D, K7 \. T
- N' c/ i& k- \/ a+ l- j$ @. n6 m
& C; P: B' y' W, ]
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
' |$ U u& ^6 R& r! L然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:2 h; n' g8 a0 u: w* A
! S% Z$ H0 M$ _" J- |" k& F: M. ?5 n! e. b4 u( |
. V& Q: V3 K5 K- z: |
图 1) s. U5 J$ H$ N F' M0 e, ?' D% g
, D9 P4 _- u( Y: f% Y: u$ v0 \/ f1 e+ @! V, S. h* {. M: k
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|