|
|
8 g; b! L+ B0 X" ?
1. What’s it?8 O/ q* `$ ] Z: m0 h0 f" n5 ^
2 o% h$ |0 [7 R& p5 G2 h
3 s* s( l" H6 `% \5 }, V
) @7 j3 I9 x/ I2 P' pAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。5 d4 m2 n5 }' Z$ n" h |
1 f& W/ `! W I' f* z# K( C4 Y2. Why need it?
& r9 w/ r9 L5 s- O% }3 Q6 L/ \7 O
: ^; I2 C w" i& w/ G6 E. F# N7 B9 S+ a _. } G0 _8 |
; i6 D1 k2 h' J
! Z. O8 Q5 x$ `: {这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。2 u* j" x$ k- x
5 D! Y, M+ G& y$ h' U8 V4 _3. How to implement?
4 H" }/ ^3 C n" E V7 r4 `1 J1 S! V/ b
1 u( C+ i4 A. L6 q; e' I+ h$ E S% a( ?
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
" V; H* D# P3 b1 e然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
% p' ^/ y& g: e( U& q- o ; K: l- k+ M9 P7 C ~
( o# C9 i7 N; M- D% M. N
. v# C$ z7 o; t* P6 g图 1
# h0 |# n5 o2 j- v* E8 O
/ M# ?; H, l7 A& v/ V; z# n0 d& h' v' Y4 p3 L) `; I6 a
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|