|
|
+ o1 f3 K( x( C' R
1. What’s it?. T! ^. N7 J T* \0 B; j3 ]$ u' d
. c7 k# }% Q9 w7 T( g5 O4 F: W7 ]% E7 `: T N. X, W
1 M* W7 t! v+ e' V$ N; W% l; T
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。9 ^- ^6 e3 a! j- \+ M: |% d4 P% v
$ i! t4 s$ J2 Y. `0 T0 g9 g9 h
2. Why need it?* Q$ u- h& \! ]' m, J$ k
! H0 x8 q5 L- x) q& @$ M; h0 d
# ]. _0 c- G" [/ h" [: Y, D' j" N. |2 b8 C1 @. \
+ O0 o" m, F' E# z Z4 s3 q这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
; `6 Y4 [ a2 A" Z E! { `9 ?' o9 \# ?
3 `- N' R0 O9 j P3. How to implement?
: N; L* z$ Y3 V; _1 P [, P& | x 1 W$ ]4 p, [9 a) Z: u* Q
3 z2 o: c' o8 Q8 t! a0 U+ K7 U; J+ N
6 U6 {5 h) U0 e* k# [; }# fAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
) g6 G. C" c1 t& O* A9 z( k然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:3 f) e$ p& C4 H% b: A- s
' S* y% P) h* D2 I: X. U# v, Z x
1 A! s3 h: s1 V; ]/ N8 W( Y7 a
8 J }* W7 X0 ]( t0 q图 1
. e; }7 @: D& r! a3 o$ q, J2 S7 K) q/ |
- L9 H3 H& q( S( VPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|