|
W7 y4 s) A. x/ f# y
1. What’s it?
* ?& C, s& W1 ~( L5 a7 o" ] . C7 e% k" ] j9 F. |& @; m* t) J5 P, @
, ^9 r8 ~4 v! I8 j
Y1 M; P. X3 H: k& T& O$ P; u4 P7 DAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。 T: T* o- S% A f& d# i
" S' S$ z* X% U: M- T
2. Why need it?! `8 u/ _; n# l
- k0 t$ Z) X) [( G3 c" S, [; c
1 k9 y0 N$ ^+ M8 w" n: M3 S0 m8 D; A" X- e8 y2 c
7 D5 [% U) D9 e, a. n
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
' K, j( ]+ P) ?1 l* [/ n& L 2 G$ O" q1 h1 E; \
3. How to implement?
2 |4 y( d k4 @ [. `5 z $ s- D; x, Z2 E+ F; n
0 h* C: [" s+ j: m. w' N# A! A" `
3 ~! W9 f- e% a3 SAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,* m8 g$ A9 r0 K2 r4 A$ ^- B
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:6 s; X; f' @4 Z0 f% U
3 I0 L( f' V1 M+ [5 V# c$ P
! O0 B1 I2 F6 ~9 w
) S& `2 |6 |+ K8 s- T图 1
1 P* |& c7 a$ z* b6 n+ e% }) \4 }
, A6 N7 u* X& V N1 u& m& m v8 l9 qPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|