|
) \0 U7 b' s8 F2 u1. What’s it?$ H! I0 S8 Z! B& ?* M
) y" D) u% f2 ?# b
/ r9 k5 x2 P: {9 V$ Y/ {! k8 R n
9 v; a8 n( U3 W4 K/ TAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
$ a# g0 n: O: ]! u1 Q
9 q/ w4 F; z5 r0 I4 g2. Why need it?" Q% U5 p1 Q; b0 z O d8 W3 j
# G; E9 {# g$ f! i T* V. V
: x+ ~7 M4 }& e
1 [& u; a/ o- Q0 r0 z
4 ]4 R% m1 d+ t" V* p这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
E1 ]& H6 e. m) [" j8 {* V# }' u
+ X4 v& G+ f& O1 h$ z: o! z3. How to implement?
6 ]( F" |% N" s
$ \- T- T+ z0 j6 F% l* F" k3 X7 P. Q" e) q# ?; ^* t( J* W* N" {, j
1 L h9 E: I2 L4 k
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
, f; l( u( F0 i1 T然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:( J" B- J4 }# c- i
2 t% K# T7 H) T# c+ q! Z
& ]6 w# R. h3 H& }1 i6 [! Y( X
# z% W+ h$ F" p) }4 E1 W- M7 _图 1 J$ W) v' C4 Y# o/ t
: d7 ~/ ^' N+ D
6 h8 K, C/ L" l$ W3 U( `) E" sPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|