|
|
# C: T- {2 I- {: W1 C7 N1. What’s it?- J) c# R* ^- M' n4 m% h
7 C. e* Z1 y6 s( k; j7 m$ @
2 \! ^$ `6 {# O4 w% j) q$ r
9 z4 |' g" F1 I( AAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。/ o/ |- P, h+ `# H1 `9 g
P- J" _% m/ L$ _, }
2. Why need it?
' m/ K/ a& Q P! c: _* ^) i6 m5 Y) R
3 k6 X& _! I0 ? i
+ \1 s# g5 Y; F7 Q; A" @. {$ l8 c
; @4 ^1 g `, |$ e7 G
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。( E6 F: A( a! h C% W/ c
+ y+ x4 @% @& f2 r
3. How to implement?1 B- r( y ], l( `2 o
/ h5 O7 t, M, X. [6 p7 X3 U# G" e' X, ?8 k0 ~8 ?
. x& X8 m% R) P
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status, R/ {0 a% P9 t
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:9 }( r* E9 _" O5 n
' D2 u( I$ H, Y: A. ?* D
5 i: \5 N& Z7 B3 W$ s5 |* _7 J! L# H( X$ [. }0 Y
图 1! K" f& ?) E! i" ^
8 l8 c \- I- x- m
$ P/ E1 {( }* H* F5 s, f' _: [Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|