|
|
; o1 O/ A$ a. r; I+ @1 i7 B
1. What’s it?
& ?) t2 H7 L, z3 ~3 ^; k
0 K+ B1 P( o0 m3 \' N3 S$ ~2 g& o% F+ Y# c0 w) p( \ }& a F& J! U' k
- t6 x8 z o2 AAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。5 H r& V7 l' b; x/ p, C8 V" x* z
! q$ B# J5 z6 Y2. Why need it?2 { f+ Y U8 t: Q# I
1 t, B; g. | n) a6 a) ~+ M# n/ c# g; x- w' [5 B
3 k4 t5 l R. B
V3 A t& M* K& b这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。+ C Z4 Z+ @7 n
8 R) @: C3 Q+ c- H6 j3. How to implement?7 f5 A. c. c; T" K% J! b5 e2 j% S8 ]8 q
9 [6 T( \+ ^1 \& N
! w6 [; E: z( A) Y+ I' ?# N
" t, J4 d- ^' @" ~. RAuto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,+ u$ @+ i& F6 S4 D+ P0 j
然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:7 O# E2 N. U: `' E3 u, a
# ~- `: X- r d1 Q3 @' g
0 H# `. X; T: G5 k1 `
9 m& Z& L. S' ? w0 E* B5 X图 1
; U! E$ O% }. t5 U; Y/ L0 t" x1 ]
2 R3 f' d# E, N0 O6 m" n! c% _! y
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|