|
3 f. j1 X" ~/ _# B/ f" `
1. What’s it?
- W7 l; U' y7 W. h0 e: w3 ? ( Y1 W& t& q! v8 Y) Z
+ G* l+ n! w; Z/ i$ ]5 t* v5 j( R9 y$ ^4 | e {9 i- a
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 F* d/ Y% q
! q% I5 Q, [. O- o( h0 G3 c0 l2. Why need it?" m3 T" P+ |4 _3 a2 e2 r
8 ]% j( T0 V0 i' {/ r6 d& {0 G8 f
# n! Z9 v! F) s- P7 H, u
# h. o9 e; } T- v8 Z' m
5 k2 _, z; y' ?/ w9 {这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。/ m1 ^) U' ~" M; O' L+ f
2 i# P+ O3 A$ `, |0 Z/ U3. How to implement?
3 B' z0 K5 w4 T" ^9 D3 r! h
5 {. F' u0 ?# [6 D$ D' W" B/ X% E* A3 n' g
" ^4 I# l0 x& XAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
+ r4 N; J4 R! D2 k" d1 H2 N然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:( o; Q8 y: }5 ^ r# c8 o8 D5 V
/ M$ O5 R9 G0 M9 b9 \2 S: R- k# G) u6 J- c- ^* j
0 S t( }& E1 H# F8 c7 ^图 1
( Q ?/ T4 ^, y( R( a8 a( @+ W0 A' ^0 I/ N. U$ _
( c) N+ Y9 ~: tPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|