|
|
- M- f% m9 ?& [; ]0 b7 m/ c3 J
1. What’s it?( l4 L. m. a* J3 u5 u
3 {! g3 X$ @3 |; u) V/ b" P& m1 }( v' o+ H1 x4 }/ o& ]) T. E
6 T9 n6 T8 g$ w7 u w! ~4 R: gAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。8 T# P u$ w( V$ U/ k9 q) W
; K9 U4 y3 H* h2. Why need it?
# n& g1 B" B3 C/ N+ b% A# }% g8 O$ Z* e* s
# R) H3 b% N! O" k6 ~4 ~( O" o4 K
/ a6 P) C6 e) e( V0 y6 I; }; Z$ v
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
7 @ O' d" Z/ q+ o# E6 x ' w/ N5 E6 f+ m c+ x) I7 e9 _
3. How to implement?
{' i: b) H4 d9 \; L/ _
( `& }( K+ d. W0 E4 L; }
( ?; X: e" u' P: R! T) B
1 x! P, c# f7 B) n9 ]( e- z3 {Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
|2 \! N( N2 v/ a+ z6 D v然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
# `2 K' }) |7 O8 }/ R, j
y/ Q4 G+ p0 p6 f( x
3 `. `- P' E9 `. j$ N3 a
4 i/ R" x5 |0 e图 1
; [+ E: M% h) X9 w' B9 n6 o9 O, a6 a5 i" Z! l0 `
" b: x% D4 F# c' I% O' P8 jPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|