|
|
# o: F( h! U: I; `: Z8 P( t$ d
1. What’s it?
; I, U$ h2 H# h# h8 M - b# F7 J: X3 X- a. B# D
9 Z+ N4 w* I$ A k, Z) H2 s
8 o. d8 b( K4 \* M5 ~* w! v# L/ W) C
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。$ N7 J v; Z% H
' X% d4 S8 f8 W9 g4 a2. Why need it?
) F/ i. i% W; A9 r5 i; W
" r! l. R0 b% W B# L1 z
$ S- o% g/ Q) [4 y, O/ u
' O4 A9 r2 z0 W2 f6 U( {
- F! ]+ ? f2 o3 w4 Q& b" F# Q这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
" x1 _* P% ~% D1 [% L V3 y
5 J: f4 y8 e' t ^2 o+ I: S# d6 ]3. How to implement?. A$ l5 G ~, a4 ~
8 y0 K8 v% z1 S$ b3 B0 d
5 M) g' J0 d9 ?6 D" z
& d) |3 y8 `; [+ O7 t& HAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,# x# B* }4 F5 p& q; g5 Z% F+ o
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
# S) U. l9 Y5 Y) \) ]
+ e0 E: l7 N/ y" Z, R4 f% N9 G, o( V
9 i* f4 k: D8 O% c4 g ?# l0 q8 B
图 1$ A7 ]4 u5 F5 ?" e/ {8 d
4 G a2 z9 u L P& J+ E; P7 I; d) _- A, y
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|