|
|
% n: @% o# i& \1. What’s it?
. ^0 t& ^: t: f' p4 l. s, Q % o- B# N7 F, T* e3 @
" B7 F5 i, t- x, z: X9 T% J4 J; a1 m
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。2 o+ y: h' ~) G) z7 v
2 d) z. w8 j I' B, k( r
2. Why need it?, o" ?" w. v. j3 N: L, R
& N9 v1 l, }$ P% D
: y/ i- X0 o4 D4 Y# _! W Q6 ^! | m0 P; v* t9 \; B( x: t/ Y
$ J4 }0 l/ K9 x; w! I这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
\" } a( W2 H. K, q# ?% r0 {! W
+ Y2 Q6 K B) J1 a4 h/ ~3. How to implement?
$ C' a( b3 E* V% ^- y' Q, i% V 4 H, e9 w* U9 W9 E/ n" \4 L
! [1 P) q4 Y+ V6 L! \
9 t) k: s1 C3 j, w3 n
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,! s2 m' w7 [; j4 l7 }
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
/ F& {5 c' p+ E- _3 S- F' g8 { 4 _& E2 t* a) R# y$ S5 F
( o/ C3 x: q0 U$ R0 T( t" ~9 E8 D7 P
图 1
0 a8 v w G& F" i& W& N* ?9 P) j" y- k, L
4 r; ~+ ]0 ?$ C: G% u0 N
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|