|
|
8 Z/ b, }% x; W4 @$ v* V& ?
1. What’s it?( i# `0 P6 F3 S, M i; ~4 m
; P/ P$ Z1 |" N& E2 |/ J* W' p
& p9 G* l8 k6 @ @8 m( }4 Q5 Y& z
7 T/ z, Z' Z; i) eAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
" |- {5 L& K4 z. w+ ?2 w3 V, U
' [7 {5 Y! v1 K$ L# T' [2. Why need it?
2 ^! u9 Q5 M2 s& H1 H2 x5 ^- k9 P# Q0 |8 G2 D4 F. Q0 e
( A8 Y1 w& j% ^% T* ?1 J
* T( t5 q# Q, w" W: g7 T" @6 }9 J, f' H% r& C
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。* E$ p p1 L1 z' r0 H% v- C7 y
: o& g" S5 F# Y3 E: K6 M2 ^2 r8 w6 S3. How to implement?" l% `- U5 P. K" S8 Z
1 D5 A1 ^, ?+ I" k
: u) V/ D/ X, U% G. o
; a6 \2 | p$ ^) hAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,% d4 N7 ]+ K6 L1 l( g$ J+ B% B
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
4 M- N) R" \. |) ]# x ! G3 @1 M+ l+ W
; y6 V ~4 h0 X4 c
- j5 G; ~# D& {" m/ v' O图 1
3 b1 P' Z1 Z1 s3 i7 W- H
* B8 J5 \" U6 T/ S
% \- L2 y' ~! H" w' UPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|