|
|
7 j/ } Q9 Z$ B, ?0 S. C1. What’s it?
0 G* Q3 e( d1 W; t; I4 S- j) J & @ w& V# `' t1 m! ^
7 B& Q3 }9 b" [! B
; T& e' C( W% z" pAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。
& n( J* [$ j* m! q+ J3 |1 h
( u9 r$ k3 t8 @# K: z3 ^2. Why need it?0 J8 C0 u. ?& j1 j$ v
0 R% c# |. R3 p$ d6 ?, [. L. r
8 Y( A) A8 c& _' W h5 [: ?! F3 m. x2 J2 O7 G8 V$ c! L
; R# U3 B# T5 G6 G, \% ^- p这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。7 k# ~6 x: r4 G% h! t
- l' D7 s/ u" m2 Q8 i" ?% ^3. How to implement?
. @% s* ]+ z: D) p9 w6 i4 m: t1 M
8 `+ g; c) [3 `, j7 n" n
: u ^4 @4 ]" ?7 F2 g0 c% v( X! z' F) l) m( t
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,4 m" l2 q ^' s3 B) e/ q$ l
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:; }4 Y6 p$ d6 _4 Y6 H
1 Q$ ?7 |2 V6 R, g
( P) q: ^8 h. Z' y2 ~/ l1 r7 e3 n: h% K7 ]$ s
图 1
; X7 W' Q. J. M' f1 l1 Q4 T
/ a: B) J, R( m _( ]- _8 b* i. P! {! f' T* G* |! A+ ] ]* s
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|