找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
楼主: peterhu

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?, ^) e3 W! H2 Q/ n. m
看看是到哪里死掉的。
回复

使用道具 举报

发表于 2009-6-11 22:45:28 | 显示全部楼层

找到死机的原理了

感谢版主的回答,8 J7 D8 j4 G8 ?& K: y! ]0 K
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
4 H2 [- U" o% y' c- o1 }+ q我们在操作系统下用SE在64口下d4 .a7是发现在发d4的时候触摸板的数据线就被拉低了,而在发a7数据线又被拉高了。而且现在EC就死了。当发a8时又好了。现在我不知道在重启的时候是我们EC都会接到什么命令。还有这些命令是OS发的还是BIOS发的。现在感觉自己越来越糊涂了,还请版主指教!谢谢了
回复

使用道具 举报

 楼主| 发表于 2009-6-12 09:52:51 | 显示全部楼层
如果像你描述的状况,那么EC就没有死(还可以收CMD).在我们的code中A7,A8是disable touchpad,enable touchpad的命令* `) H6 V9 n* |* w
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check' {1 a5 b% n: C) W  L2 T
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析# \5 M" H8 G6 K4 F
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。: a$ E3 [  U! D6 @! s
7 R: K- |" q/ c* }  c5 x
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
8 e4 S9 B- {  l7 u& ~e83,5 X% t* p/ r- z. T4 O; i' O1 l( [
IFE,
( @/ G5 x0 _" c2 Ie23,oFA,; I9 p. \- n' E9 K0 _
ID1,DDF,LPC RST/ o+ q# Y' ]  \. [% A, b
Swrong LPC RST  Y1 l8 r+ u' B3 F, b) J. E
LPC_Reset_Flag=64

! L3 H* `. y: {6 |
9 @& P9 R) z) d2 G) V2 z: iID1,DDF,, ?+ g) ~. x1 T( B& {7 ]. u
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
# X: }# o; |) Q$ ?0 m3 JID1,DDF,# [2 L. l6 Z& b
I90,VED,C,RFA,OFA,V01,C,RFA,
1 i2 L8 F2 E. w" HID1,DDF,O,OFA,O,7 W1 L0 @% I4 c; i5 T; @" c- f$ F
e2A,>IDLE
& Z; s3 |1 H$ h$ J- v/ a, IoFA,<; x! ~+ O# K# h+ G
e00,; j1 }5 v' ]6 C6 e( Q% \
IAA,O55,O,# w7 d( R+ w2 S/ p
IAD,
2 x7 u% B/ A) X' t5 E- t& \. eID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
4 A1 D3 k' u; U' @( E% Z/ ?I60,O,D65,
& W2 a! G3 o7 M, u/ ~I60,D6D,VF5,C,RFA,OFA,K20,6 c2 i) Q7 C9 G4 F7 k3 I9 ~
IAD,
. \; x5 f8 L$ f% nIAE,O,VF5,C,RFA,OFA,K20,$ N: o& j6 ]  M+ p/ s* i3 w
IAD,, [8 v# ]5 U- c8 d$ y
IAE,O,
; C6 I+ V- O  ?3 W( I6 N  VIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,$ \/ W# z2 C* a
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
; ]5 y, a( b3 J% s( }' o+ L* [4 A4 WIAE,O,
! `: u5 p; ?; F- C0 M  O: re91,d2F,d00,
0 O8 G: |& f7 w9 g4 T2 N3 i  Ie10,d83,d2F,P3_K#3 H7 d8 ?( E1 D6 w1 Z5 v
P3_K#

; G9 K  N- j3 e
( N1 h) t6 h& [0 ~4 l7 }5 Y( q  f& [& [e23,oFA,5 r/ B+ \6 X6 G+ ]: Z! b
I90,VED,C,RFA,OFA,; K; R9 U+ B2 S0 D' S, Q  `4 M
IAD,
) L$ c' F8 t4 X9 t! ~. LIAD,O,% s9 b9 I! U' a' Q: m6 x
IAE,V03,C,RFA,OFA,) P( ?# v6 Y5 N4 h
IAD,3 n( J6 Z0 r1 P. w2 o
IAD,O,
) m) T4 U0 |' t. ^# Y: UIAE,; [6 C' e' s' X. @' _$ }+ M
I90,VED,C,RFA,OFA,
. N  r% q( f# TIAD,
$ `7 @) K$ x9 S- J: e( w: O4 f  EIAD,O,
0 B# W" N! ?4 @, _* l5 _6 JIAE,V05,C,RFA,OFA,
& X# D+ @$ N6 X1 xIAD,
$ \! M! z' S7 J  ~! ?2 ~1 I. |% wIAD,O,
% \8 e) i: s6 e' l: E2 k/ }IAE,O,3 m0 c9 @7 m6 b
e90,d2E,o00,* O9 ^. N! W8 s/ c, L- m4 p
e91,d2F,d00,P3_K#- B4 |9 t& O2 m, Y, H2 S9 y! e+ _
P3_K#

% ~, Y! y* S1 [5 v& T; R  Y7 g- j' P1 U& E
IAD,VF3,C,RFA,OFA,/ @* q- `7 h0 ^" b1 R1 z
IAD,
2 r! L+ B& k3 s3 RIAD,O,5 B% R* Y1 Y( G/ w8 Q; _
IAE,VF3,C,RFA,OFA,
* f3 z: K+ S7 JIAD,
% j& B2 J% W0 z7 W" d8 S+ u- j6 `2 @IAD,O,7 m2 P3 ]( m  f- D
IAE,V20,C,K10,RFE,OFE,K08,/ J6 k8 [* d9 f
IAD,
! _# \+ I! q* M0 yIAD,O,: V, B/ g1 a+ z! J( L7 e0 m+ v7 ^
IAE,V20,C,K10,RFE,OFE,K08,
( o" a. p; g0 OIAD,
; R3 a6 X5 W2 \+ {0 j7 OIAD,O,- |* }8 G3 {2 A- X& o9 k
IAE,V20,C,K10,RFE,OFE,K08,
" l8 {# `  @' G$ S0 N7 jIAD,
8 T* _' o* e$ t# E" C3 d" KIAD,O,- J0 K" L$ f* O- P
IAE,+ S8 s+ P+ Z1 [( m6 a
IAE,VF4,C,RFA,OFA,$ d4 e$ C8 ]4 L3 l
IAD,) ]% p7 Z3 W& y, S) A/ M
IAD,O,) M& @& Q* T8 n! c2 ]0 d; j4 y
IAE,VF4,C,RFA,OFA,3 E! E+ x4 q" ^, p
IAD,
% N( r$ r) j5 p7 ZIAD,O,' b# |- l" S; y$ t+ P  X
IAE,VF2,C,RFA,RAB,R41,OFA,: @" E4 D4 ]! A7 i0 i) N$ P
IAD,
9 i8 [: d+ Q% B8 v) K8 ~; |; C( _IAE,O,OAB,
% W; P6 Q" t2 D8 c7 ~) cIAD,
7 }" y2 Y. ?2 S6 a9 A( p6 H2 YIAE,O,O41,1 F7 I& D7 E2 I
IAD,
4 k; D. k. L2 l3 b& {IAE,O,VF2,C,RFA,RAB,R41,OFA,
& l* L* T) f9 \$ z- e+ bIAD,5 r  W! A3 v! q# ~% W
IAD,O,OAB,$ D, L0 J6 O8 U! u2 R
IAE,O,O41,$ C6 {7 ?, }: N8 g3 M+ b
IAD,
5 {  `, G! }; Y: k. r' Z6 j, zIAD,O,/ ]% D0 b2 f3 Y+ e% z. }- p" D
IAE,VF2,C,RFA,RAB,R41,OFA,; K6 @- Q8 ]6 F: p  z
IAD,
  W# ^1 l4 V& m$ o* d4 P! E' ]" }IAD,O,OAB,
. _! I. [- R9 C( [0 PIAE,O,O41,! c7 @. C+ y% y* j) P0 v
IAD,
% c: ~7 q+ `: X! EIAD,O,
' A' @# x- \! t9 tIAE,
9 ?, \; a* c  Y% E/ b! ~I90,VED,C,RFA,OFA,2 [2 m% P1 t0 W! {
IAD,
5 d3 A, ^. D! y8 J, ?IAD,O,
  E- X9 t! T, Z+ B# jIAE,V00,C,RFA,OFA,/ e" N& [  l4 o  W9 K
IAD,
1 p1 b! N2 z, D! @IAD,O,
* b* T8 S; d7 @& H5 b; ~$ NIAE,
  C4 B0 ]5 d. _* h2 e, I3 BID1,DDD,
- j: b' @( R  z. g9 \ID1,DDF,2 L# \& u. `' a! o2 [/ h% s
ID1,DDF,
8 x% [" v! ?! E1 }+ ]$ je22,oFA,
' c' L+ t; l" Ve83,) v2 ?( ?8 M9 F2 A: q' r) a# S
e83,# G6 g/ h; I; w, m/ [0 Y5 u
e83,
+ `" G0 _4 d1 M* n- Q3 Z8 C& `  qe83,
' u6 b# G8 [# ^7 l6 o" `e83,- N& O* E4 S2 U: i2 B6 k" }0 G# l# M/ B
e83,
: ?% p9 N, r6 L) q* R. v5 Ce83,* \# [" X7 `/ g# l) S
e83,- W: l, q- j/ R9 G
e83,( m, @( Q6 ~$ @+ n8 T9 f8 h+ S
IAD,
8 a3 R$ K6 o$ S7 V. v3 MIA7,
; O( M3 s; Q; H' p* n, b9 }IAE,O,
+ C% E* }# {5 C0 S& F+ q/ yIA8,
: W! U' a' T# iI60,D44,
+ u) f0 Z$ H) _, V0 d+ z" f/ |) R/ sIAD,1 n# r5 l% S5 l5 p0 p. T  g6 d
IA7,: S; R  S, G- _+ e0 p% P
IAE,O,
. V& X! i/ V, z) Q7 y0 ^IA8,VFF,C,RFA,OFA,RAA,OAA,
  |) B' ]. g7 JIAD,O,K20,
; F3 G" T8 y% I6 [* |# ^7 lIA7,
7 f4 r- z: I: aIAE,O,0 }3 ?  V3 K/ x
IA8,- z& \8 A* K1 @' U$ i; N
I60,D04,
2 [# k9 h% i/ }7 gIAD,
2 C' h, n+ {- [: P7 @- ZIA7,
9 v, ^& W1 G; h7 ?3 }! F8 k3 BIAE,O,4 ^* F3 z6 ^( h. ?) C
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
5 u7 D) i6 U3 f2 M" h. c, w2 p9 lIAD,O,
" q0 V: @# O9 W0 D. R2 z4 [$ ]' V: fIA7,
- k9 X6 J+ B! h* h. a5 BIAE,O,
" S1 S( O) n# s, mIA8,
" d. k5 E! r/ S: S4 c1 V6 YI60,D44,
$ z* _) f7 [) O8 }IAD,
7 L$ b# M% N. G& _IA7,
% x7 ~5 V& J3 d% v5 a/ iIAE,O,( m9 K$ z2 F( U; ~+ j+ K5 N8 m  Y
IA8,
; y+ p' O% u4 x# gID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,% B8 s( u1 D, e4 g9 b) h2 ?
IAE,O,
( t2 C- W) x8 s5 rIA8,0 J3 ?+ M0 j9 m- X' u0 [2 t8 e
IAD,
8 c: \" x. B7 b( F0 xIA7,
, H4 B% A- G6 H( r8 T; E* ]3 C, FIAE,O,6 l" o/ h" D+ X* A$ }/ \/ S7 Q# Q$ |
IA8,; f, U. a' u- A- r2 E
I60,D47,
5 H) f% j# j) B5 H4 v, K! y% ?IAD,* G4 h) E# C$ s
IA7,
% E  U! H# S6 U+ O5 W3 v: TIAE,O,
6 O9 ?: H2 O5 l9 p$ l; tIA8,+ E1 A/ I+ w5 {3 g$ L/ }" \
ID4,VFF,$ [4 D$ ~) |( H+ ]2 r: V7 K
e83,C,RFA,OFA,% y3 U; w; g5 b1 C4 d' K
e83,O,RAA,R00,OAA,O,O00,
' m& g' Y4 U0 s/ _/ Y; _* DID4,VF2,O,C,RFA,R00,OFA,O,O00,, c% k  p0 ^' s) M  x
ID4,VE8,O,C,RFA,OFA,
6 K1 Q9 ?2 }$ aID4,V00,O,C,RFA,OFA,
  O! N. {. y2 o% ^ID4,VE6,O,C,RFA,OFA,/ ~: k' c. m( M* p
ID4,VE6,O,C,RFA,OFA,
: o9 [$ [3 z8 Z, XID4,VE6,O,C,RFA,OFA,
# j6 H/ x5 ]  p1 W  |ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,' M0 F9 I6 Q3 H# p; C7 w( h5 O
ID4,VE8,O,C,RFA,OFA,/ w' h# U' S; J! Q; r
ID4,V03,O,C,RFA,OFA,; d! J3 X6 {1 A+ L4 s( u8 S
ID4,VF3,O,C,RFA,OFA,
- o7 G1 Y, S( }2 i0 gID4,VC8,O,C,RFA,OFA,! P2 S+ U% n; R2 C5 j& z6 S
ID4,VF3,O,C,RFA,OFA,, C) _: N+ ?' _
ID4,V64,O,C,RFA,OFA,
# N* c2 @( V" nID4,VF3,O,C,RFA,OFA,) o8 V, h  ^. n' d) l# E
ID4,V50,O,C,RFA,OFA,
; q( e# V9 G& U6 R/ |ID4,VF2,O,C,RFA,R03,OFA,O,O03,  {( f4 d4 ^4 M: N6 C
ID4,VF3,O,C,RFA,OFA,) r1 J# i7 d! {& n$ R7 y8 U8 f
ID4,VC8,O,C,RFA,OFA,2 u$ ], I& o4 I) P( \5 G# k4 Y
ID4,VF3,O,C,RFA,OFA,
: ^( b" v/ v0 `( FID4,VC8,O,C,RFA,OFA,
+ p( |/ T& K$ W8 c$ c: n# \- eID4,VF3,O,C,RFA,OFA,- H$ M% P, L! N0 v, P9 S$ B
ID4,V50,O,C,RFA,OFA,
3 l4 C. ~( j) B9 e1 Y# nID4,VF2,O,C,RFA,R03,OFA,O,O03,2 n' `' w3 u1 @
ID4,VF3,O,C,RFA,OFA,# ^6 D, H" t  j# C
ID4,V64,O,C,RFA,OFA,; }% f; q: t. H5 \- V/ m
ID4,VE8,O,C,RFA,OFA,+ s1 M, |, U, Z+ l  S' C9 z" b
ID4,V03,O,C,RFA,OFA,
8 m2 A( z0 v9 y. `! cID4,VF4,O,C,RFA,OFA,O,
3 [  N* z% \" ^1 e0 ~- Y$ Be83,
" c1 l2 Z) s% q# H& Oe83,
/ z2 g. N, W8 }' Le83,
* _1 y$ F7 q5 n2 ?7 ie83,4 e& Y9 \# d0 e/ Y* K  ?+ Y
e83,
) R+ c, h* P9 r) m' Re83,
0 F! G4 E$ J, H! H3 v' oe83,
9 e% g( \; E% w  t* C6 u9 o# m$ ~" q: ce83,& U/ x5 F* Z; a$ ^* G* ]/ Z& x
e83,0 @+ X/ Q+ A5 s6 s4 i) c' f& t
e83,00,C8,2E,+ V1 |6 L* i/ ^" a0 E
e83,00,C8,2E,. P9 P. V' X) k4 A- i6 g  L/ I- i4 }
e83,00,C8,2E,
% v/ b" a7 P0 V& P& be83,00,C8,2E,3 d! o$ [1 m! V
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
* `$ V7 D- A1 _% [% @e83,7 A, _% l- P. i3 G8 M4 S

  z$ Z% C2 Q% a- ], E
" a0 {5 L% T4 G" I( _2 r[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

发表于 2009-6-12 22:21:11 | 显示全部楼层

感谢

谢谢您的答复( u5 q, U) d9 k1 L
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
* Z5 K" o2 l  f) I& w2 e6 w8 a! G6 N      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!+ w) B" q1 {) o) M/ O  X! X  [
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
5 l/ m5 k2 _1 c/ @7 p      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!' k6 B$ N9 p; {
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
" @9 A% ]7 k3 [+ l, F! \+ k5 UDevice(EC0) {# F6 P& s& T3 P+ r1 Q
Name(_HID, EISAID("PNP0C09"))
2 i! b5 k  f/ r% n( [0 K, [......! v. U. h3 B+ y) c# A/ ?+ T
}
: x* e4 c# U) H$ I0 w$ rPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,2 W; ^. v0 d! `: ?* j  o
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
+ U: w1 N9 w5 S2、   
! @7 u& _! X' l5 P* y$ @Name(_CRS,ResourceTemplate(){             ~: s8 U* S4 V3 G
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x840 a1 ?* n/ O; Y" W# d& [) B
            IO(Decode16, 0x66, 0x66, 0, 1)
+ T! G+ M) L- s        })4 D/ s5 m. g- g$ w
3、接着就是
/ `! O! i4 |& F0 Y3 g; M% w$ DName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7# l& A' i- k4 H$ G4 ?+ Q. H
通过这个声明,OS知道EC和哪个GPE关联起来+ n" D5 ^' V2 V# u
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
0 ?& m" x* Y* W) x8 v% }EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。" _- S+ I3 R& ?6 U1 Q" B; f4 `
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。9 Q6 w$ b' D/ O1 G8 b0 y
3、OK,看看linux是如何处理SCI中断的
5 I; J$ ]+ p" c% w, m9 M* |acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute8 n0 R- a* j1 H, Q! h4 e
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
& I. j& U, S4 Z0 r" Q; Z4、EC接到0x84查询命令之后,就把Q事件号传给OS; B" n5 J4 k! B8 R3 z0 c8 U
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

发表于 2009-6-13 10:49:19 | 显示全部楼层
高手还是很多啊!感谢您的回答!
5 b! N' J" a, Q) V, ?! P    主要是我们现在很难看到BIOS的代码,其实代码我到时有就是没有看AMI代码的环境!您写的这些代码应该是BIOS代码吧!是不是可以这么理解,BIOS会提交一个ACPI的表给OS。这个表有我们EC的设备号和通过什么端口进行通信对不对,还有就是如何区分那个SCI是我们EC发的,这一切的动作完全由BIOS设置并给OS。是不是可以这么理解请指教
回复

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分4 F. e- r0 Y1 Q, d; T3 ^0 |
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
! B) n) q" @7 _% f; B& W2 w有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。& U( A4 W& I0 P4 M
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
5 s/ F! N0 q! U  U  ]9 Sbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。- i/ Y: w4 s; u" J4 U$ x
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

发表于 2009-7-3 16:07:30 | 显示全部楼层

分析的很好

分析的很透彻,学习了
回复

使用道具 举报

发表于 2010-4-7 10:31:29 | 显示全部楼层
好文章,收益不少,peter
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:53 , Processed in 0.083219 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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