|
|
, ?8 j$ U! l+ C8 _
1. What’s it?
$ [( B0 f/ J' N8 y+ N
) g0 E2 G( D9 M7 a1 d e$ x
2 ?$ K* Z( `. c. i! [( P
( ~3 D+ ?% o1 N/ i/ s# b8 gAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。3 h' |' r9 g r
# {# \: e7 ~/ k4 l2. Why need it?
* x2 d) r8 L8 f- C; F) x) o1 b4 g4 N ]) _% |: M2 p* T
+ C0 y3 R% |. S2 J3 X( L9 A# M4 F( C( b- i/ o D1 R& W
$ C# u+ @ Y$ Y, ^8 ~$ y, u这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。* P" u* X& w4 E5 u, v$ V, C# z
- l0 n6 b% l; k6 ~% d! C6 f; f3. How to implement?
! Z0 k# g, c l . ]) V. \" ^; T0 {9 p
7 \ U' H3 `' t0 Y P0 X' X: F
! L' Q' P' [/ S: lAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,. `2 `$ F/ T# x6 ?. e9 g8 |! k) P
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:, A$ f- K) P4 M2 u& ~' J
$ \4 z) ~1 Q1 ]4 M* @' r& p
2 q* [/ d$ ]% n9 j5 N: a5 R. [& F. j
图 1
8 B; Y' [# q% W) v& Q! P: J# K" |' O/ a6 U, ~
: R2 e& ]- z: }' \3 y; d7 aPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|