|
8 D% }0 i6 A3 H- Q# G- R, Q/ [1. What’s it?
% z; p G9 l" I F6 j* I ; _5 G% t2 I7 s- t4 k" y
" Q/ I2 M" T h
- x' x9 s, E% K1 w. j8 g' [. 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 功能。6 v; R# j# \9 _. e$ v7 p2 b
5 ^6 H6 x8 o( g) g9 ?1 i2. Why need it?. j7 J$ R6 ?( M/ n: w* s' ?
/ _- O* H! X( N
5 Y8 W- [, d' v9 i& a- ~+ B8 x: k6 W, O5 K& T8 o0 ~
& ~, T1 l- n# q, a4 p, [这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
# t9 K- |4 Y, h$ o1 \" u
3 P4 C0 a% U( W- c3. How to implement?
% d9 s# H( b& X9 E) ? * K4 O: Q( o V% c& y H/ k
$ ~: l, V# E' `! s0 @- q
+ Q. R' v0 m! u2 j5 ]Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,& P$ w% H: a, d
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
2 F5 d0 h& L- k( h: G
D3 b# D" l* O* Y) }
6 L; L5 R1 l+ c" V( c
) E0 T" H9 M, ]! E图 1
& D+ j# h& m& b2 E$ X& f
' V3 X% |7 y3 _+ a
8 ]9 ?8 w4 m8 o9 iPeter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|