|
6 q* X3 n3 `% p5 m1. What’s it? o/ C( a; [3 B3 |/ H! ~; M! [1 P
7 X: W, Z9 ]) B: c& Z, S# o. [
5 p6 j2 l. @( K0 o/ ~
2 Z, t* p! \2 uAuto Detect Function 指的是BIOS和EC配合探测NB上存在哪些device。常见的device如wlan,bluetooth,camera ,3G等都是USBDevice,它们都接在usb port上面,而始能信号则是由EC控制。探测结束以后,当用户按下hot key时EC可以根据探测的结果给出相应Function。比如当wlan不存在时,该hotkey的功能可能就是search key 功能。* J/ x# d" q! R" h' J
% B; w1 L7 @$ Z0 V: e: u2. Why need it?8 g* T4 U# v. h6 [2 `7 ~7 C
3 j' H* e" R d: O F4 p! k
! p4 s1 C# r- @5 U4 {
* B7 [* \9 _- w7 [+ T+ D2 l. R: G4 x- m9 ~; z
这个功能的存在主要是因为同一个model在出货的时候因为客户要求,或者市场地位的不同可能配置会不一样,比如搭配不同的cpu,上不同的外围Device等等。这样EC就需要知道哪些设备存在,否则就会出现漏电以及配合NB上层软体出错的状况。另外Auto Detect还有一个功能就是它能够保持device的前一次的开关状态,这样只要没有断电就算是下了S5再回到S0,这些设备还会保持下S5之前的状态,这样可能会比较人性化一些。
, H& P' A n5 ?2 Y, \( a: ^ " E2 c( Z7 b# f. e( k. D/ a
3. How to implement?; `3 y) q7 H, {8 l$ T/ I. ^
- m M# h( ?8 n f( G
7 L$ R O U+ }- t0 c% s" V* _. m- d* b8 s9 U7 C/ ~
Auto Detect听上去挺神秘,其实实现起来也还是挺简单的J。因为这些device都是接在usb port上,如果它们power on那么usb port上的Connect status 就会显示device is present on port,如此BIOS就可以检测出设备存在与否。具体来讲是这样首先BIOS要从EC读回所有device的上次power status,
/ W( V8 }( T1 ~4 [& D然后BIOS发命令让EC power on device,BIOS读取相关usb port上的状态确定device是否存在;接下来BIOS回填探测到的设备存在状况到EC相应位置;最后BIOS将读回的power status送给EC,EC根据这些状态给device送始能信号,这样device就保持了上次的状态,这就是Auto detect的完整过程,完整流程如下图1所示:. L W" S$ b" }3 [# E
N3 P0 j8 z5 q, b) _9 |- s! N9 k
& o3 G' Y& c% @3 U4 G
图 1
9 ~8 b7 P- V6 S
/ h$ ]/ o. Z* l4 m7 j" Q7 H9 q: r+ M! }
Peter |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|