|
7 J5 [% Q6 e1 m2 t9 D9 S1. What’s it?$ p! A" _; @# _& I
0 ]4 A% p8 a; c- b1 w. N% c0 B& R2 }5 r, g
% A- A* }% L" E: F$ `Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
2 ~5 X- j) @. i. \ 9 m9 q& G* H4 I! X I: x. v
2. Why need it?1 ?& t1 _+ C* J; `1 ^
2 x+ P. s: ?, P* S7 W* H% H; y5 m- o" K6 G- J
7 d0 I. |* m l, K/ _) r
, _! I6 u" h' n/ @1 X1 W9 D
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
* q8 l8 M# q) x6 h 2 x% H: @2 r/ u2 r! o- i+ N
3. How to implement?& Q w2 I) _3 P4 `( d0 y' v
: `) y+ R% w5 O. L, G _+ m6 v
; A6 X1 T5 ]# D2 N3 g
6 B9 f' V: j8 n0 y$ d2 ]Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
, m* L4 b' ^/ ]9 k" j& M* N- H然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
* q8 T# K5 ~8 S" i
% u; Y& c9 B' Z, D! v) P7 ?) W3 u2 ?+ X0 n; T
( ~0 {% D! p( h, v, S5 G$ W6 E1 [图 1$ K4 o0 n M* r; y* O
* B: t0 n" W. Y8 r4 n" X6 O
/ H( c+ Q2 h; APeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|