|
|
发表于 2008-7-13 19:09:03
|
显示全部楼层
回答:请教关于EC响应84 80 81command等几个问题
2年前我也遇到有和你相似的问题,甚至更多。尤其是和host打交道的很多东西都不清楚。下面是我的一些见解,班门弄斧一下。
; T3 p B- ]0 a Z9 K+ a1)请问EC相应84command的Query Value完全是OEM自定义的吗?业界是否有标准遵循?
: W7 B5 x/ e& K# ~8 r* gR 事件基本上都是每家不同的,没有标准,在加Q事件的时候,Q值取多少完全取决于BIOS和EC sw的心情,只要不和自己以前定义的冲突就可以了,还有就是不要和kernal code里面的冲突。( Q# D' E0 N, W" O) C6 N
2)80/81command读写的EC space每个部分所放的信息是OEM自定义的吗?可否能给一些例子解释一下EC space的用法?. `( P7 _9 F5 I$ K1 r U
R:基本OEM自定义。不过电池部分要小心,电池的信息一般会集中放在EC space的一个区域,在这个区域里面不要定义ECspace的东西。其他的有的被映射了EC 的GPIO,这部分也不要碰它。给个例子:假如cpu温度放在0x13。使用debug32:o 66 80;o 62 13;i 62
) S2 v0 H* n/ H' }0 A" W$ e3)host会通过何种方式控制EC下的 SM device? SM device接在南桥下和EC下有何不同?" X+ D# b4 q' Q3 g9 h
R:host通过62、66口访问EC的SM device,EC内部会给host搭一个桥。具体和南桥的sm有什么不同我不清楚,呵呵。
" ~2 j. r: [% t6 D2 w; E6 _4)OEM修改EC firmware的时候一般使用什么方式的ISP?3 ~8 s$ s& t2 M: u; [+ g" |6 E
R:有两种方式:1,能开机到dos,然后使用dos下的flash tool;2,关机flash,可以使用JTAG,这个比较高科技,如果配合一起第三方的工具可以在线调试,不过这个比较贵,如果程序外挂在flash里面可以想办法直接flash外挂rom,我自己做了一个,需要的可以共享一下。2 D6 k8 h! |2 h1 f$ ?
5)一个硬件问题:
& k9 i* P! D" I1 W8 z. b% MR:debug观察LPC信号似乎用处不大,不过看看Fram信号可以知道这部分有没有工作。Serial IRQ和SCI信号倒是很有用。host和EC通信的一般用60、64和62、66,如果Serial IRQ有信号,说明在访问64、60,和键盘鼠标打交道,如果sci有信号,在访问62、66,读取ACPI的东西。Serial IRQ是参考33M时钟信号,用示波器可以读出来是IRQ12还是IRQ1
" q9 d) o7 P* ^. u6 \6)对电池充放电的工作完全由EC控制吗?host会不会直接控制EC下的SM device?
, q( l/ U7 Q( L! i, i$ S$ V 电池的充放电算法复杂吗?
7 `- y+ t% S6 N/ I0 Z1 n0 W, }R:电池充放电的工作不完全由EC控制,EC会做一些接口让host控制,比如电池校正,电池充放电测试。电池充放电算法不是很复杂,但是是搞这个必须非常细心,而且一定要对smart电池的特性有一定了解。$ M: m) N% L: |/ L- I( c( E8 ^
smbus和I2c协议2年前我以为他们只是频率的差异,后来发现他们是两个不同的概念,最直观的理解就是i2c是夫妻关系,smbus是婆婆和媳妇的关系。: R9 r7 _* S/ [% B5 k. U! k& N* V
7,EC会出GA20和KBRST的脚位,这些都是为了跟旧有的PC标准兼容,GA20是286之后为了跟x86兼容地址选择,KBRST是软复位,那么EC在什么时候要决定发这些信号出去?是EC自己的fw决定?还是BIOS或OS高速EC要置位?
0 h& A) r+ y& t$ L( k3 WR:GA20和KBRST由bios控制,但是初始值得ec做好,否则连机都开不了。GA20进dos后会拉底,其他时候都是高。KBRST在windows重启FE命令的时候会拉底6~12us,其他时候为高,当然如果机器重启死机可以用这个做补丁。
2 d. w+ l2 Q; U3 ~+ r/ V5 Z5 m/ P以上仅是是我的个人观点,如有错误请指出,希望多多交流。 |
|