|
i) G6 w/ h- L; i
1. What’s it?! ?( A& O; C0 r' r
' V9 w' s2 `& P9 Q1 B& A
f9 X. O% h. k+ t- i) h8 j. D
( r; @6 w# Y* m0 j* j# G" K
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。0 y1 b% h; g% Y7 I/ x2 e
0 k( @2 i4 m2 T+ ?2. Why need it?
+ e8 }) ], |! L- G- j
u: M" j/ _) B9 _; W, V" w( }3 Z% w
* J1 {4 A5 ^+ G% ^( m7 U
! }/ ^1 E/ C4 g; y# F& j0 i' M2 ]这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
8 B4 T& b P9 U. G2 `+ `5 f ( U J) n8 z1 g) ]+ a
3. How to implement?; |! W( J# N) S- K) G: G# H
' e+ n# L2 m3 p. y' L2 s5 S- G" J6 v! s; t. s& f
- N* `6 D- T; X. h+ I) ^: ~
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,; d! _9 d/ z5 {! M# A
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:( m& p* u0 ]' [
; x: }$ }0 |" D- P2 P& ?1 I8 g: X8 ]- F
) X- F+ z* E+ |* ]4 p7 [3 L/ n/ X* G- q
图 1" y- P" ^! O2 ~( l6 C+ @! v6 u
: }1 K" t6 d& |* w$ \) e. X8 o4 ]' A4 C8 G, D8 t
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|