|
|
1 w k# `7 w' M+ b/ u. P
1. What’s it?
1 m4 C( _2 [' W. y* Z
* Y9 K6 r0 i' A1 |* d/ c( L4 |0 W& P- ?! A0 R( \3 n
y- x' ?" k2 W- g v1 }) WAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。. ~; `$ q/ x, A1 S6 r$ I7 o" d
% D4 V" p7 b# g, O! O
2. Why need it?) U* N7 E% t( m; m3 K5 f7 l
; ~1 s- ]* x# p0 L1 e
" g. J8 @4 I8 [( t
& D9 f* s6 e/ B0 S$ q
' U | b4 L; I4 L这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
# ]% d8 S' Q2 [" B
9 A7 `0 T6 Q9 g* n, O4 s3. How to implement?
2 P3 i3 I9 q! ^# P+ T1 l" r5 n& t
( n2 _, t; K6 M0 g8 }% ^7 W5 Y4 s$ q, ?$ [0 F O& ^# \. A/ p
( @' a4 Z4 z1 a+ yAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
7 L# F B3 [7 y- d- |然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:
" z7 J- J+ s3 z- B; F
- R# w; R2 d, K3 `7 ?8 n2 T. X2 T& P- H( f: R, s1 p
% l; k" h# E8 g) O
图 1
1 V/ v) C& F# Q, I; }1 Z( m* d% U
' _ r# y3 e! E# @' b: f6 g0 l1 i( P' o. x# u* x4 u7 M
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|