找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 34000|回复: 15

请教关于EC响应84 80 81command等几个问题

[复制链接]
发表于 2008-1-7 16:58:02 | 显示全部楼层 |阅读模式
请问两个问题:
0 [. ]3 ~# v# p, y) C1)请问EC相应84command的Query Value完全是OEM自定义的吗?业界是否有标准遵循?+ Q! `5 n7 d9 T# y; y/ g% I
2)80/81command读写的EC space每个部分所放的信息是OEM自定义的吗?可否能给一些例子解释一下EC space的用法?
3 v) ~# i3 ^; q0 w4 p/ q* q! L8 x+ ^) L7 c3)host会通过何种方式控制EC下的 SM device? SM device接在南桥下和EC下有何不同?
* l& @+ K, @* T  z! k  p# }# x4)OEM修改EC firmware的时候一般使用什么方式的ISP?: T* ^" x9 h; ~: e0 t; {/ B
5)一个硬件问题:& f& d1 ]. a: ^: a$ I' M5 B, l' v
   如果我要观察主板上对EC chip的控制流程,除了看LPC信号外是否有别的好办法?5 t! O, Q8 l3 V3 ~2 P$ r5 |  U* B# k
   如果看LPC信号,OEM是使用一般的LA吗?还是有专用的LPC协议分析仪?6 I; e) ^* t* N! I
   OEM调试EC chip的时候都是直接把样片焊上去吗?有没有OEM测试FPGA阶段的EC功能的?7 [( N3 v% }+ t3 L( Q9 H% h" ~* u
, q6 ^" M0 R, X) i2 g: J6 i
谢谢!
; g# B: Y2 W" K5 Z9 B4 z' K4 k  M; a4 g1 G$ c- L! N
Screw
( G& n0 }; D  d7 A& w. B0 q* L5 n5 S/ ?% _( K5 L
[ 本帖最后由 screw 于 2008-1-7 17:04 编辑 ]
 楼主| 发表于 2008-1-7 16:59:51 | 显示全部楼层
补充一个问题:
8 q3 ^9 N- P2 B) Y+ B6)对电池充放电的工作完全由EC控制吗?host会不会直接控制EC下的SM device?
5 a( N4 `  T8 _+ A   电池的充放电算法复杂吗?
5 P+ Y: U: P3 E! F* }
/ |  v; t- T2 @( G: c  i8 r谢谢!
4 P3 V( G9 Y% H" o' u
! d5 D# D+ Z# a" PScrew
回复

使用道具 举报

发表于 2008-1-7 18:22:22 | 显示全部楼层
1、84 Command见ACPI spec,是ACPI所定义的Funciton,包括80/81,OEM也是依据SPEC来做。) f, b) c+ V& m" x2 e
2、EC Space由OEM自定义。考虑到EC工作模式,一般读写EC Space OEM会不占用OSPM的80/81 command,会由OEM自定义command来读写。Space的用法,你得先翻你的Project  对EC Space的定义。; O+ I3 ]" s- e$ d* |
3、你指HOST是南北桥吧,通过什么方式,是你想通过什么方式,这是你要确定的。SMB的Device挂南桥和挂EC,这就是不同。. _+ A5 `1 W9 W# n* G' _- \
4、OEM修改Firmware,是要看EC本身它支持哪些更新方式,见你的EC技术资料,或致电询问EC厂商。
+ k; ~7 ~2 I+ t6 ?# i, t. t5、你要观察哪一个控制和流程?例如风扇?这...你是要抓LPC总线的行为?就把线接在LPC线上,你要看什么东西,就接在什么地方。LPC协议不用专用分析仪,就那几根线,自己可以数得过来,当然有专门的何乐而不为呢,LPC协议规范见本站就有下载。你要调试什么东西,具体看你所获得的条件和资源。" c8 `6 `3 k. O) o* {$ b1 J2 ?
6,电池充放电是由EC控制,HOST往电池方向是被动的,也就是你想怎么着。你指的直接控制是指什么,HOST不会无缘无故的去乱来吧。电池部分请看Smart battery specification(SBS)。
- }! I% W5 b; Z& b- S) l
0 r4 R, A3 _7 T1 c" s! b" A希望能对你有所帮助,其中,这里所讲的东西所涉及到的规范手册,本站都有。自己可以用上面的Google Search在本站找到。
回复

使用道具 举报

 楼主| 发表于 2008-1-8 15:25:21 | 显示全部楼层
谢谢您的回答!
. A! E, C& [$ H5 ~首先说明一下:我说的host是指南桥。$ b! T5 ^9 x4 O" P* ^  }+ O
1)这个问题我的意思是当84 commandOS要Q值时,EC送上去的Q值是否完全为OEM自定义?还是各家都遵循相同的约定?, e( b) \2 l; O& F1 ^
2)ACPI spec上提到的OSPM跟EC通信的command主要是80到84,比如80是read command,后面要跟address,然后EC回data。可是我怎么都弄不明白80/81后面跟的address到底是什么address啊如果是EC内部的register,OSPM也不知道啊,难道使用这个读host domain的register?可是host domain的registers(62,66)直接读就好了阿,没必要走80 command啊。
) P3 a  G  `' W3)我的意思是当SM device,例如电池挂在EC下面的时候,SM bus protocol级的控制是否只有EC来做?还是OS也会通过某些方式直接作SM bus host的角色?
% G/ ?( I: V. b8 u' B: m1 d* N4)这个问题的意思是,现在EC上比较流行的ISP方式是怎样的?比如,NS用JATG,ITE用并口。另外,您知道ITE的并口ISP方式到底说的什么意思吗?他的spec几乎没有任何信息。+ V# I" C2 u6 [% R2 f. o8 Y5 k# }: D
5)我的意思是,我想通过研究OS和BIOS对EC的操作流程来了解他们对EC会在何时作怎样的操作,有点反向的意思(当然只是行为,不是反向人家的电路 ),尤其是开机的时候!因此我想把他们的chip放在类似测试架的机构上观察信号,所以会问道有没有LPC协议分析工具(因为LA一下子抓不了那么多)。所以想知道EC厂家和OEM是怎么弄得.
. v0 F4 B, Q# o+ Y4 X# R: x/ [* [5 Z
谢谢!
回复

使用道具 举报

发表于 2008-1-8 16:27:25 | 显示全部楼层
1、Q值完全自定义,你可以把ACPI DSDT表拿出来看一看,没有一家是相同的。0 K/ H/ ~1 S2 c+ z. G+ R. R
2、一般OEM厂商会用自己的Command来读,不使用OSPM所使用的Command。因为有些做法是在ACPI Mode才开启80~84 Command,在DOS下或在BIOS POST时,EC处于非ACPI Mode(legacy Mode),会用OEM command来读写。读写EC SPEC,顺序:如是读,往COMMAND口写命令,然后往DATA口发送Index,再往Data口读数据。80/81 command,看OEM厂商定义的是EC的ACPI space还是EC所有的ram空间space,这个做EC的会清楚。具体见DSDT表里头的EC的位置定义与它的功能和含义,这address就是与EC acpi space位置相对应。7 Y( k3 C  O- ?, G* \
3、建议你看看SMBUS协义,本站有。
7 H. e" q0 F9 G7 m) Y% a8 H9 r4、我这边没有ITE EC的东西。
2 ^4 g* @+ y9 l6 a% i, `2 s5、建议多看spec,不看的话,你量到的东西是什么都不会清楚。
回复

使用道具 举报

 楼主| 发表于 2008-1-8 17:28:56 | 显示全部楼层
谢谢您。1 T! x3 b* ?" M* s

% I8 z1 M4 O# Z第1,2,4,5点我都了解您的意思了。只是我没有BIOS的code,要怎么才能看到DSDT表的内容呢?
- ~0 Y: X7 o! D" V, F: G
( U* H# G" S: p# _2 t8 e' z关于第3点:我看过SM bus的spec,基本跟I2C是兼容的。我想表达的意思是:在有EC存在的时候,当电池挂在EC的下面的时候,是不是南桥只会告诉EC现在要读电池状态等等的要求,具体对电池的控制是EC中的SM host controller去做?还是也可以有这种方式:电池还是在EC下面,然后EC跟南桥之间开出register,南桥可以直接往里面写SM bus protocol的命令,直接控制电池(就好象是电池直接挂在南桥的SM bus下面一样)?# e$ l: ?7 h7 l; z" U

2 u5 m1 u2 Q) J还有个问题:
) }& k4 p; E- ~) V  _  ^+ i; CEC会出GA20和KBRST的脚位,这些都是为了跟旧有的PC标准兼容,GA20是286之后为了跟x86兼容地址选择,KBRST是软复位,那么EC在什么时候要决定发这些信号出去?是EC自己的fw决定?还是BIOS或OS高速EC要置位?8 M0 i. d) k: h0 @5 \1 m
; R! v) n% }$ m# @$ H2 Y  @+ W: O
Screw
回复

使用道具 举报

发表于 2008-1-8 18:33:55 | 显示全部楼层
如何获取DSDT表?微软的ACPIVIEW工具(本站有下载),电池的定义与控制见DSDT里对BATTERY的定义,如何找smart battery的定义?你找pnpid,smart Battery的PNPID你自己找,PNPID的列表在本站就有,KBC Reset见我写的一篇关于系统启动的文章。接下来的问题,应该请看spec。
回复

使用道具 举报

 楼主| 发表于 2008-1-8 19:04:40 | 显示全部楼层
非常感謝!
+ R) W9 F: Z" n7 X# Z# |  `1 R& Z* P, e! L4 [8 S% Q% x' a
screw
回复

使用道具 举报

发表于 2008-5-22 19:19:45 | 显示全部楼层
非常好的一次Q & A
回复

使用道具 举报

发表于 2008-7-13 19:09:03 | 显示全部楼层

回答:请教关于EC响应84 80 81command等几个问题

2年前我也遇到有和你相似的问题,甚至更多。尤其是和host打交道的很多东西都不清楚。下面是我的一些见解,班门弄斧一下。
+ O" t+ ?& b1 g& _. L: r% ?1)请问EC相应84command的Query Value完全是OEM自定义的吗?业界是否有标准遵循?
- }% X, Q4 P: L( _" g% {& \R事件基本上都是每家不同的,没有标准,在加Q事件的时候,Q值取多少完全取决于BIOS和EC sw的心情,只要不和自己以前定义的冲突就可以了,还有就是不要和kernal code里面的冲突。8 F+ [1 c' ^1 B, }* ]
2)80/81command读写的EC space每个部分所放的信息是OEM自定义的吗?可否能给一些例子解释一下EC space的用法?. i! X! p* s% `. n
R:基本OEM自定义。不过电池部分要小心,电池的信息一般会集中放在EC space的一个区域,在这个区域里面不要定义ECspace的东西。其他的有的被映射了EC 的GPIO,这部分也不要碰它。给个例子:假如cpu温度放在0x13。使用debug32:o 66 80;o 62 13;i 623 t6 I( K6 [% h2 n1 e
3)host会通过何种方式控制EC下的 SM device? SM device接在南桥下和EC下有何不同?
4 t" j. |% p+ A6 t. o) N6 lR:host通过62、66口访问EC的SM device,EC内部会给host搭一个桥。具体和南桥的sm有什么不同我不清楚,呵呵。
- E- H4 n. J2 ]2 u! V! l! d4)OEM修改EC firmware的时候一般使用什么方式的ISP?
" g( y) Q' p6 t- T' `2 t0 t5 MR:有两种方式:1,能开机到dos,然后使用dos下的flash tool;2,关机flash,可以使用JTAG,这个比较高科技,如果配合一起第三方的工具可以在线调试,不过这个比较贵,如果程序外挂在flash里面可以想办法直接flash外挂rom,我自己做了一个,需要的可以共享一下。0 [5 c+ ]2 S+ O  R- a# m9 v' ~% Q$ c
5)一个硬件问题:( I# Y) G4 s" Z& y3 R
R: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
, L7 Z' j( {1 z: M& p3 h6)对电池充放电的工作完全由EC控制吗?host会不会直接控制EC下的SM device?2 \6 B  R0 p! I+ g% n( @. H
   电池的充放电算法复杂吗?
0 m0 m6 K* }6 S$ @1 c# _6 D0 PR:电池充放电的工作不完全由EC控制,EC会做一些接口让host控制,比如电池校正,电池充放电测试。电池充放电算法不是很复杂,但是是搞这个必须非常细心,而且一定要对smart电池的特性有一定了解。( P1 f; b) `7 v, W' A
smbus和I2c协议2年前我以为他们只是频率的差异,后来发现他们是两个不同的概念,最直观的理解就是i2c是夫妻关系,smbus是婆婆和媳妇的关系。
/ Y9 _& ~! k( L% U6 n5 r# [9 B" ]7,EC会出GA20和KBRST的脚位,这些都是为了跟旧有的PC标准兼容,GA20是286之后为了跟x86兼容地址选择,KBRST是软复位,那么EC在什么时候要决定发这些信号出去?是EC自己的fw决定?还是BIOS或OS高速EC要置位?+ A( `7 K/ B+ H; w
R:GA20和KBRST由bios控制,但是初始值得ec做好,否则连机都开不了。GA20进dos后会拉底,其他时候都是高。KBRST在windows重启FE命令的时候会拉底6~12us,其他时候为高,当然如果机器重启死机可以用这个做补丁。0 r0 \! T; e8 |+ O7 d; Z
以上仅是是我的个人观点,如有错误请指出,希望多多交流。
回复

使用道具 举报

发表于 2008-7-13 19:25:26 | 显示全部楼层
楼上是做EC的悍将,
回复

使用道具 举报

发表于 2008-7-14 16:46:01 | 显示全部楼层
原帖由 eric 于 2008-5-22 19:19 发表 " K/ k1 S2 \) S* l1 {' S  v( ^8 z
非常好的一次Q & A
2 x7 e& e# {7 t5 e7 A+ }& ^
回复

使用道具 举报

发表于 2009-8-5 18:38:05 | 显示全部楼层
学习了,对初学者太好的Q & A了,   
/ ]9 |% P# K1 ?1 k/ a& H/ @* A期待更多的交流
回复

使用道具 举报

发表于 2009-8-10 10:48:17 | 显示全部楼层
在ACPI spec里,EC的standard command,如80h会发二次SCI,81h会发三次SCI。
- C; C$ j/ M6 ]. P' `1 q4 p其它装置,如watchdog, smbus也会引发的SCI,其它装置的SCI会在80h command的二次SCI之间发生吗?6 `. N3 x$ A3 }; C% L
若会,是如何处理的?
回复

使用道具 举报

发表于 2009-9-2 09:43:35 | 显示全部楼层
赞一个
回复

使用道具 举报

发表于 2009-9-9 17:04:42 | 显示全部楼层
感谢精彩的交流!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-5-20 06:34 , Processed in 0.024697 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表