|
|
+ F$ v) G/ N. Z4 p: {/ Y1. What’s it?) S6 n6 B* j; \& S! _0 e- w
, X5 ~; x; a m0 h5 G/ x
+ D. b0 r6 }8 P( `* M6 i6 G0 U: ^; t; E0 V; N8 f- ^! y" {
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。8 b" U0 L1 M6 d! z" Z# q' K
, k9 @3 L2 [1 i, f/ E
2. Why need it?
: C: {" [; [3 G! E; {
' z+ R7 C5 D8 l6 y O0 F+ D% x$ v1 P* x, z. \
# v' E# m" x% g7 C+ Y$ i4 Z% D/ e+ i
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
2 a" Y7 [8 |3 [8 M' n
/ ~" w# r0 X- B+ d w6 G" f3 K+ U3. How to implement?$ j- ]; D* f9 r+ L1 Q: _5 v
6 ~& ]7 h' g4 e+ r. L; }
9 s0 K5 {5 F9 P4 U3 ~" r* g4 \3 ?
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,# w: n4 X. W3 M% V6 }# g
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:- N- `! D0 j- ~
( G5 b, \! u' `) e8 |) }/ J) T- D4 N/ t H
. o$ l2 o* m. o+ M6 A+ I e* W图 16 A+ u3 R' Y0 { r* z. b
# n; r. |0 K0 j+ S
) W, ]' ]3 C/ b7 G) b1 ~ s* W1 IPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|