|
|
& `- x; T) e. a
1. What’s it?
4 H# J3 {4 X( `2 M 6 g) W' x7 H3 P! V5 }$ O' D+ M2 U. C
, l. U$ `2 F) q$ T' `. S( z W
: g, ?4 s- g9 |& h! bAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
$ L7 @. V o/ G( l6 a/ e1 m 1 r3 Q0 U) G+ @3 b; w& W/ g
2. Why need it?
4 V# J3 j4 L$ R- a3 P3 s" f! a/ S0 q4 u9 q% ]- E
; Z# Y9 T3 u& x5 q/ r# U; L2 ^! z' \7 _# i" f K7 H
; n5 W1 |- u, I+ @( U" ^
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。3 u3 w1 d9 P. i8 z) Z1 y
! k4 i, b) [' e) A8 Q. |- k3. How to implement?
1 Q1 W; v# c% Z0 t2 P
: n+ m5 L! M9 j* z2 E, g Q$ \
( E. Z2 t: E% }, w$ Y$ }9 B$ s9 M$ i: T2 a1 y6 m& u
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status," c5 ^# ]: G: h6 E7 J) U
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:* L* _% d; j3 a6 U
0 ~& z6 t4 ?! L
2 C( B. d: u1 H% U% ^
) \ Z$ G0 R' c2 ^0 D% {图 1
2 L* M& ?* |# H% x! {2 u& j* q
" G7 [1 e+ o8 d8 R6 X; n
* i, b' O4 t% f9 Z; g$ i3 _Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|