|
|
0 K9 U( f: O1 u1. What’s it?
# y, v! o" x" a" {( I" r
/ Q/ p# P0 v) ~" ?) w" _% b5 K+ l8 p; c& G$ E. V8 ^
$ I1 v- \' m: C' W$ r
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
5 _' c) a7 e3 C/ H K9 I, R * n" j( P! _0 J; O8 ~
2. Why need it?
# @6 l. T3 J8 V* s' m8 C2 t8 W
: J4 z) f# O* s( n- X
1 N) l4 U7 T! A# q4 }8 R3 M0 G7 s" h( h. w" t. B
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。$ i; z' u4 ^5 F2 c( W
9 @% ~) n% e$ z
3. How to implement?
: ^" Q1 P6 W' k' v+ [' I: B 5 \3 ` E1 x- }
3 O$ S$ L$ v# \7 g$ b H
9 H0 f7 U S- X4 qAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,0 m/ `0 U' I9 V: f: X
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
% M$ N- [4 }9 X' A3 ]
7 r' [3 Y/ p4 e0 A: k k5 |4 q+ G5 b6 ^
' V2 W7 n" @' E& a! k: g
图 1
9 v r: Q' Y+ i, p3 o9 Q" [4 _9 n8 n) D7 Z+ H
5 \" F' l5 `. @6 ^: Q
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|