|
+ t( D0 y# t* b* t( `+ J# S, M4 F
1. What’s it?8 C( A1 d3 X" Q) e7 X! j% v6 b; ^
4 O, N! V6 a' d% t& J9 t
2 v; d; W/ t: I2 L5 k0 j" f
/ ^: r7 _ j( S" [- _Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
$ Q2 f4 m/ |# g$ T0 C. C
( w f+ F3 l+ \; `7 k3 n2. Why need it?
F, {: h: s/ P4 {7 z/ T
( P" o+ q; [) X3 M3 J
9 R) X4 _7 l8 Y& q) y" p6 G! g
2 {! Y; M# p" c1 W! _. F, g2 e- @- @, c: h1 | ]% D
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。; y" ^* _3 P2 F7 f2 F' {! m
* W- e8 H2 l5 v0 K% u4 m( q9 V. k2 }2 f
3. How to implement?+ T- W( @. @' O. t
2 j) q% D$ W! ], ?$ Q* c& l' q( A3 t$ Y4 J4 L, V" M* K
+ f& d* k9 v( `) ~7 l c- |9 o/ d
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,2 j0 Q8 \6 V' Q- b! d# j* S) L
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
2 ?0 S* s2 ?2 R# W
( a2 L3 V! H% a! W: W8 n& }4 D: e1 U2 d# m5 e
* @: s( x$ j& L. O* Z图 1
' T, m. \/ }& R3 r5 ` l3 k* J) @* U4 ]+ J
2 x! d. y% A8 K
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|