|
|
! K: I2 v8 z" f5 c3 x
1. What’s it?' g- a7 E% K8 e0 R
6 d! E! I4 h' `/ l
1 ?6 ]1 v& [- U/ i) P
' f; \- K( y- J5 _* z" j+ r, z/ Q
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 W/ [5 |: l! b# B; F
" o* N4 s& Q" |- b2. Why need it?0 [0 t3 G1 ?" a7 n
+ Z$ L7 n3 b0 g8 \& N' ^
3 [6 P; c( R! O
' i! v$ ^' M0 T$ @" y+ W
3 p0 x* m; |0 f# e# o# z0 c" l- w4 i
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
+ d- K2 [# q b
" E' g- O, M: Y: d3 w E3. How to implement?
) s: V' |+ G6 `8 y/ `* l7 t& Y$ c; A
+ @; F, l; ~) @/ D! R$ w+ e
; [! {4 ^' U9 j( a- J
3 f) N9 \- Y, r: JAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,* b S& b# n: i. p6 b5 ]" y l
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
/ `5 O, J- @, ^4 m* y$ J B0 [) u6 }8 C5 }
" S7 G* `! e" }9 N& Z/ L
3 ]: `9 y2 u% ~2 I: }/ ~
图 1# j3 X1 {* H0 x$ k! n; q
# A$ O/ [# i+ H* e& d
0 H5 J) `4 {) o) j0 U* CPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|