|
|
' J4 G# m2 a% `% h1. What’s it?
8 a# Y! E9 c" o0 n) y. h6 D
' R* i8 |. b5 c2 u. H# H' q) y" z2 E! j
D1 q0 O' M- @, ^# V V: y
Auto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。" i$ K9 I$ a7 \
: w, U) R- B7 l$ K- t8 V& q" V
2. Why need it?
# B, f+ T6 i2 z u
! x" V& R$ P( J- k {/ Z) S- M% C \6 F: l7 u
! u9 c& d7 N4 H; i
$ @5 f& E* {. c, d4 Q: y* d这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
5 s C9 y' l" z+ j$ j 0 o: m p8 x* r! M
3. How to implement?# A& a5 `1 j4 X' G+ E
9 [) u; }7 U" E# d( z1 I o& P/ Y1 {2 D7 H. s) q3 l# W
0 C& U8 g5 q4 U- s, I5 X' j' }
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,. L, a2 R$ F7 V4 V0 a- }- ]7 I. _
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
9 W& L* D9 r3 p( ]6 D3 m7 F
% t9 [- N. r4 Y# D k8 j- c
+ ~, n% H H0 w
2 `' k. D- _! B0 y9 Y7 j- |" o图 1* {# y) C$ a% k# S
- _+ o) w1 } @( ^4 W: M% S3 W& o( @6 p3 n
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|