|
|
|4 Q: _ y/ T( G1. What’s it?
4 ~: H0 Q. C0 r P
" x4 R$ }& C6 [2 \3 y0 \
4 j$ i h4 O+ s& I$ J4 K0 A1 U
) l" r# M4 F' lAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。: N, S* F$ f" i
5 i5 D) U) q% W" P+ U f) u$ V2. Why need it?
* a( B* k- C/ n3 A6 m/ N$ ?4 x6 ~
~) z9 U; k" p
: S9 d9 E( \+ k1 z* x$ Z: M6 f1 c* e6 Y7 Q! S+ u% l9 ^
$ p. C) }. E; \$ }1 p
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
% G* [! q* m) o" Z1 ]5 h 9 |& B9 \0 m0 R) W' w9 P1 r( f
3. How to implement?% o+ H/ Q3 g2 O- ~
d4 Z! @% z; l; R/ R7 z& | s( B7 Q3 D A* e4 y* E0 s
8 |0 U( g9 o/ W) m; WAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
( }+ ^5 T* H0 M6 v" ?( M$ g然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:% B" Z3 k* f6 B7 f
3 _; C* s! g; v: \
8 l x( R4 V8 s3 q$ R7 }7 Q4 F3 A) E- {* g$ E5 _
图 10 ?* {! a. h# V* I/ R
3 V5 f1 m y S+ u. i+ R
7 M( m# {5 V1 y1 p. J, | SPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|