|
|
) D$ u7 y/ V* [# ?' p( _ q$ ^7 c1. What’s it?
' M1 q. {, I( t5 |8 u0 T
+ u6 }+ `) L) o& I
' H* i# Z1 v; M
7 w2 n* a0 G* \; OAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。% |% I' N/ p5 r2 v2 j% z
1 o% T: s( r" y- i; F2 | t2. Why need it?4 C2 L9 g& I& v# ~6 d) `
7 ~8 i% R4 r. ~0 |- e8 K$ R
- n8 @& i" ]6 S+ c( n: Y* Q
* C5 X5 h* Y5 W* r& U
0 o. r; i9 S; ]/ v; t4 X( d1 }这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
; I2 p* k7 t- k 6 m1 ?) r6 H; ^) i Y
3. How to implement?! q% W/ N( C" F3 \; N
0 O; Q8 T( S7 _+ ^) r
5 Y) W' T0 ^' w# S( z9 s
) Q: L9 ?; l4 }- O+ p) I
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,/ T; f: r6 {: F2 j+ _
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:1 Y2 R) x* y& Q2 l
0 ~ Y B+ _7 e' [9 P$ a' g! i1 {+ \8 Z5 Q! g! Z2 P8 G4 o1 D1 Y
! h9 c' i4 x1 p' W, Z2 d, K
图 1
. O" X3 w7 _3 F& |0 B; m0 ^: r, o" S
2 Z# V; ^. w9 D1 o( T% A, f! V) R
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|