|
|
8 _( e) {1 Z0 s1. What’s it?
# R) n$ _4 i6 z# J2 q8 }/ R 1 `& P$ }5 ?! ~$ A9 Y( S. |: ~& k
4 ?7 q2 v$ l) Z0 K
" }) a+ v/ ~; v1 X5 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 功能。. X+ B" J1 C% A. v" |5 |' M: P2 d6 k
* Z/ `0 Z2 |+ A: T2. Why need it?
1 ^ f5 [4 g, N) K& D' g0 G+ F( I" ]6 K7 @! U- D
$ V4 [- a$ m* b& ~! j, i: ?! q8 A( h+ H+ n7 B+ a5 z& x/ m7 s a
: Y0 z( N: T# g& p这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
% Y' W( Y! d/ E, K' v% x ! B+ T% o$ I* J4 r, X
3. How to implement?
1 q/ X2 K3 J3 {6 f; i: S. L0 M; g " t, K% ?0 Y I3 e/ {: a/ ^* s
' ?' i4 O1 x1 c( F( v
% M2 b" r- j3 t6 c) n- i u
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,, I& e m$ G y3 k
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
; v- P4 }/ u, K0 m- r5 E
$ o0 X8 F% `8 h/ `5 u2 `0 v. M F! W/ d
2 N7 L2 T* G: Q图 1
2 q3 s. v5 [* F8 h s K1 S" h' g8 n9 j j# P
4 Y1 S' n5 k+ W) I. g% V) k$ ^! |Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|