|
$ v& u% ?7 k, Q ^# K1. What’s it?% @5 e) J' ~5 J
" t+ C3 ]/ ^* q6 n1 L' c1 s
1 i& s1 \5 O$ H% w$ z9 f3 G6 }: v, `+ y/ g
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
; b6 F1 m3 |3 g9 W2 w/ r# O7 J , J6 t" Q( f' C! Q: i7 z2 A
2. Why need it?( @. B/ T3 x, C' m& R
) o6 f4 [" E! a0 a& T3 F- O
, E' v0 S) ^ T9 T# g& a. w
2 {5 [: }3 R' g5 g7 P/ R$ j) T4 [. R! j4 ]7 g& f/ [
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。# `% c$ ^; Z6 f! T/ R) w, @* N
5 M6 U6 c3 t1 g3 ~+ k
3. How to implement?) D* v: q7 K$ z, X
9 s0 Q* {/ O# y' }( x9 l7 E
- d. `1 S+ Z" P7 r$ _( Q9 y; W$ }' h% k6 n* W' d+ |
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
1 p9 H# m& V2 m! E x4 Y# `/ U然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:8 g% @* K7 J; A8 w
2 P; l- z2 e8 m
/ p, h/ m" q: c& ^+ q
* q N( g7 z3 Z2 {- \6 R6 ?
图 1' ~& N3 ^- _" d) p+ S
; [/ |8 g3 h2 J7 x, m; z
- O+ i1 E5 ?' V' |, nPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|