|
|
4 ]* j1 S( _& f6 S/ y/ q1. What’s it?
- u8 }. ?* h0 [5 b + U6 Y' @5 s- `% j
8 n7 a' j* W. r! ^, H+ t1 e) t. p: h; Q* W3 I, h
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。) ]& o' ?: i- w6 X: f% I/ T
1 q% n9 c1 ~9 e% a5 ]3 D' U' K2. Why need it?3 |& B7 R) R% A" L7 \: G
t+ z9 h, m3 M- @6 x7 C
7 k, ?0 o+ P0 P" T; s1 }) J" `
2 e5 Z$ ?5 H' L! e8 c5 f( u3 U4 J! D: u* X8 k
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。' {. c" k3 A8 c$ e$ f6 G3 J" \
+ q+ a5 s: f; q/ A
3. How to implement?) R. z) i4 _+ h. m5 k/ x
" B- g# d& z2 }+ D! F" ~# ~6 ^! C: i) q# |! M5 ?
5 V( \8 t. p7 e) Z" v* s* `' W+ i5 g8 s: {
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,/ s4 L4 s$ ~6 J4 Y8 G: I
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
' k6 S- F4 K$ f9 o9 [ 1 K+ o7 A2 S, E; M+ Y/ z Q
9 ?; w) E! @0 x- W* a' B# S% a6 k" _+ J; o8 G
图 1
8 q0 l% a0 q& y0 r
, S1 m" n j+ K5 r4 d7 X! A! A
* f/ v4 O0 e2 M; ?* e ~ HPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|