|
|
+ ?" q7 U2 N" m: Z2 w
1. What’s it?
1 J% D$ {5 A5 l' a 8 z% z, R' {0 l3 v7 E
6 V% n- |; B3 \" {1 u
7 ?- L5 Z, o9 ^" D* @7 t
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
: V8 Z# w1 x* |3 B # n/ [. _. G, t6 _- {0 `
2. Why need it?6 q9 V( ]9 h x* H: m
/ O7 Y5 D5 K' h" k* z& N# W
6 A5 t0 k- a- V
# H0 e$ E/ @6 F7 ~
* S5 o: Q0 X4 v' L1 F9 c& G这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。. c* C0 U& @3 z5 u B; u8 k
: z5 w6 _" e- E
3. How to implement?
: T2 i* T9 w. p: P) @3 c7 m 7 K! m' N; q- J2 i( D5 p1 @* f" b0 @
) ], ]9 a( T. m+ Y) V+ W+ M
8 G% q4 Y7 g7 x
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
# }5 L4 }0 N: [( z9 O% ~然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:/ }- N/ o7 R; T* ^& r
1 \8 e0 I/ O. Y0 R
* f9 ]& |0 g; u# z
5 ?3 p, a. X2 c$ e2 c9 o! A图 1: w" ]% b: s* \6 m. L
" q; x% p+ y2 n" u w, ~8 A, f. p) w+ v$ {
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|