|
|
. e- p6 V& F6 J5 w$ I
1. What’s it?* B. D: z( G) H+ O2 q, ^. C
{" N1 Q, b4 P3 X4 f
. ?' I; V& t0 y$ R* G3 R8 p5 O' l+ b# X# h3 R- 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 功能。
% c9 ?# n9 j: E; G; J
6 B- X% i: L4 d8 @# Z4 r2. Why need it?9 A7 }' Y' {& ?
/ Y0 [7 N6 r+ z! h! I! R/ o) b! @" {4 ]- Y% M
; @0 n. K& z+ j- v& t. W, I
2 O3 K% H" g3 Q. B7 |7 h
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。/ P& j' f4 W! {
, m3 R! E9 L* j, N6 p! h1 w5 n3 ?3. How to implement?! u* O7 u7 z. c- y6 ?; o7 j
. S: X* Y5 r' a4 A. Y3 Q2 u
, ]0 S/ c( `1 O9 G4 q( u) _* U# o v+ _* |
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,) S) W. g. N' Y% l& A: E( d
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
4 c6 Q7 ~8 A) K 7 j/ g3 I9 K& Z# ]+ F
' U. q; L+ n( `. S6 v5 @4 e7 C
. R6 ~' ]. K. `- F& x0 A& s4 j图 1
o& o9 z) ?" B) F* a7 D) ?% R4 a! w, \; `9 n$ E$ Q4 m. p
' x7 j3 h# A" j) E! X9 _
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|