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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?+ u, T& i% W  O, [. G+ U
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
; _; H& D: [$ N- x今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。1 t" W1 t/ \$ |) T3 V0 T% w, f0 T& Z* [7 ^% T
我们在操作系统下用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的命令  J1 _: c6 G6 h: [
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
( q# j; j. ?& S+ g1 X8 J5 j; [这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析% P0 B8 [. Y' J& G7 X! @
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
; D! J( W7 ~/ }$ a% c0 u  d/ j+ _- |8 k! I" S1 h
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,! o# t# W! k, q! X' x2 J
e83,: B: G& x( }7 [& z& \! C
IFE,
  u# W8 @4 K. j- D! o: _e23,oFA,# T( [9 p/ W$ b" O# x. }# g$ A
ID1,DDF,LPC RST' q) r8 ]3 d; j
Swrong LPC RST2 p( E: a( {; S$ }9 t$ p8 e, w  N
LPC_Reset_Flag=64
' L# ^9 g0 i2 S: M7 P
* ^8 g9 I( C, e6 |" [
ID1,DDF,  M, P; E( L5 X; _# y
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,4 \$ I& G0 v  d
ID1,DDF,
( p" k  R, c. t, @3 h. z& T8 \' ~: CI90,VED,C,RFA,OFA,V01,C,RFA,
% r: q$ o' L  P4 }, ?8 _ID1,DDF,O,OFA,O,' D  B1 Z* z+ f# K
e2A,>IDLE
/ t$ k/ X1 p5 E" a4 F; n" _oFA,<
1 W/ L6 F7 ^: U- c1 Z. w& Ne00,
4 _; e' @$ e+ O- eIAA,O55,O,. R# ?* ^6 @9 k$ P- z  c
IAD,# C  N% W  K/ ~
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,) E9 `1 I( w3 l: ?
I60,O,D65,$ q# `; s& ^2 U
I60,D6D,VF5,C,RFA,OFA,K20,
  c, Q. |" H$ d' P$ ~IAD,
' Y; r9 ~0 ~; K/ \9 \6 ]$ ^IAE,O,VF5,C,RFA,OFA,K20,3 T/ C& {$ M. I+ a
IAD,8 g! o/ e& R1 f$ Q( L# c# D5 o5 L. ?
IAE,O,& u, X* u0 ?- l- T' t
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,3 m- O; F; o% L2 l4 |
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
) F7 o% I; H# }. Y; hIAE,O,
" [0 z7 O+ j5 M1 S7 O' R8 u! w- de91,d2F,d00,- V1 y. i4 E2 D: n; Q7 _5 v$ r; h
e10,d83,d2F,P3_K#
+ c- k0 C$ p; i& NP3_K#
8 h4 [( P& d  i1 f) E
, x* n- q  i+ a2 v
e23,oFA,
3 N; K: T5 j" NI90,VED,C,RFA,OFA,
; c" P* C: q# l8 pIAD,3 c" J( e) [! {$ ~4 A  b$ y
IAD,O,; m) h7 Z1 j& t/ n
IAE,V03,C,RFA,OFA,/ i2 l$ @6 a8 d5 O1 l) W1 o
IAD,
# N0 z+ E# t0 L# s8 ?( gIAD,O,1 f* l- P, Y# `) |
IAE,
! d& [" p% S+ n& UI90,VED,C,RFA,OFA,
9 v/ d( r0 }6 L4 f' c4 [IAD,
# ]8 s( i' N7 ~- M  O. j2 n* l4 nIAD,O,
& R9 ], G  }- r- B+ a, z+ m: aIAE,V05,C,RFA,OFA,) q+ w$ y* G2 v8 W3 ^0 U% N
IAD,
6 m; \2 ~7 J# ]% t' ^4 o4 dIAD,O,; F+ J( x* X: \* G; S! d  X% o( W
IAE,O,
. N. e* k/ s( G! B: ~- ge90,d2E,o00,2 Q6 t$ s! D5 p+ L& v/ |
e91,d2F,d00,P3_K#6 f0 P9 o) G& g* h) c' J6 W
P3_K#

5 P/ p8 k1 K* G! D3 w0 [6 B$ ]3 I- `! W
IAD,VF3,C,RFA,OFA,5 Y+ i$ S: D4 O8 r- s% K
IAD,) k9 n+ j* y) S. t& o% |( T
IAD,O,  K0 ?6 W  j( h7 S& \/ w" p
IAE,VF3,C,RFA,OFA,6 i$ D: v5 i0 @+ B
IAD,
6 N7 M5 S6 K6 u- [IAD,O,# P5 j( r' M# Z, e8 R& Z
IAE,V20,C,K10,RFE,OFE,K08,
. H3 d1 u: b8 W! y( CIAD,
6 ?. M4 e0 p* @( w- w1 [2 u9 ]' }IAD,O,4 l5 b; I, l, S+ X
IAE,V20,C,K10,RFE,OFE,K08,! |7 }3 w- ]" P' j" r5 v
IAD,& ~4 ?, |% Z0 {. M7 R+ y
IAD,O,
8 r' h' K1 `" ]4 Y2 MIAE,V20,C,K10,RFE,OFE,K08,
% n; v  ?3 s- B8 t2 @  E6 b7 SIAD,1 ~  o$ B# Y% [6 ~9 n; r
IAD,O,
$ m+ D& C: S3 K  t  m6 @IAE,- A" I6 Y* E' H* l6 K) {9 y& c
IAE,VF4,C,RFA,OFA,
( ~. }; }: _0 R- WIAD,
2 `& n: X0 Q+ l7 ]% Z: mIAD,O,
) M" O$ w( C4 i, z" O3 RIAE,VF4,C,RFA,OFA,
: I$ X8 R' A. C% |5 Z7 h- ?IAD,
2 q- L* L2 }) a: vIAD,O,
( r2 S: E& @5 H; O! r/ V. l1 E2 \IAE,VF2,C,RFA,RAB,R41,OFA,0 R7 C. K, o# n4 P6 D
IAD,% @  s! o0 P+ X5 J+ x7 h* E
IAE,O,OAB,
; P  R1 [( ?. L& S8 B8 [IAD,9 [7 Y4 u# P7 P
IAE,O,O41,
6 K# K, P- ?3 K! O- N5 y% M& iIAD,. v3 ^% M! V/ i. N' K
IAE,O,VF2,C,RFA,RAB,R41,OFA,! I  {: `$ S2 J0 P! c# W  T
IAD,
1 V' G& V. H0 a; T& ?4 DIAD,O,OAB,
% z& k% ^+ l* h) SIAE,O,O41,
/ b. ]/ `, C# z- KIAD,
# Z& Z9 O7 n' P. ?! \: vIAD,O,
% P0 ~+ n2 X9 I: AIAE,VF2,C,RFA,RAB,R41,OFA,
* ]/ t$ z* q4 @7 }3 iIAD,
6 W  S. `" [$ ~+ c" IIAD,O,OAB,, s2 u+ V1 V2 M6 m
IAE,O,O41,
: t% h# _* M. i7 @6 U. w+ rIAD,7 H3 h2 q1 F  Q. T( i
IAD,O,
5 B3 l& c: p% N) Q( o/ UIAE,3 x, s5 j0 T, X: w
I90,VED,C,RFA,OFA,: W/ T. I5 w0 T7 R: V. E
IAD,! V7 V! h% ^; U) c
IAD,O,
* E" c, ?* \  W1 S9 F6 ZIAE,V00,C,RFA,OFA,' F' t2 V; y3 X3 X+ s4 c+ _7 f
IAD,5 o8 p( {; r) e5 x; S
IAD,O,
4 ~- V' a3 G; FIAE,
" X* K6 ~5 W) g' tID1,DDD,
7 O. j5 s+ W3 w$ ]4 cID1,DDF,0 U2 `( s( r1 E+ c) G+ k
ID1,DDF,
$ p7 @5 a9 y1 e1 p4 g- j0 me22,oFA,
2 @1 I7 a& `! W9 i3 t. j' S0 ye83,
. L5 u3 C* w7 j( F% p; h, E( {e83,
; d! A3 B% A0 Ge83,/ H- e" \: f+ g  |9 z
e83,: H# O$ Y( Y. g7 P
e83,
6 [. t. A/ F" Fe83,
1 H. `8 d4 i$ le83,( Y* j3 g7 j( @, e% L; s
e83,# J5 t9 e  ]' O0 E# K8 g& _" @2 t
e83,
& N+ J# T  d5 F9 SIAD,
9 ~. T. m7 z7 X/ |4 `5 C  JIA7,
5 h" h+ l& E* }2 B$ WIAE,O,
1 y9 T& ?8 u1 ~IA8,
- n8 T+ E* Q/ B0 j. x& J8 aI60,D44,
  G9 `7 q. y4 D, G. k6 D3 ~' k) LIAD,
/ Q1 g# z& v7 \% G% x% d9 \IA7,5 k( i, _* d0 r
IAE,O,
2 h' L6 z( ~. [% w# {$ l+ p- DIA8,VFF,C,RFA,OFA,RAA,OAA,4 B+ X, L$ n- W
IAD,O,K20,2 W) @5 b! b$ O* _2 B
IA7,
$ I% M& Z6 @; x! q1 k9 WIAE,O,
% @9 j: O6 y9 i' i; W. w8 f/ qIA8,6 i+ v2 o2 {6 H( t$ p, e
I60,D04," e: E. S0 c8 @6 K: j% o9 _
IAD,3 ?& M7 T& G  R9 |/ s
IA7,  ], R$ N" ?: r5 S( ?
IAE,O,+ |% X9 G8 h' \1 N' J' |- J
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
/ V) Q3 r/ X  J" v+ q: n- mIAD,O,
( o/ `* O( D7 ^" e! u5 w1 c6 c  xIA7,
4 ~7 A, z" R5 M4 TIAE,O,
/ J7 e& k- e( d$ DIA8,( G# D& t- r# c+ x, j1 t1 i# l
I60,D44,
: W: c4 V. ]! Z/ ^$ `. oIAD,
' i& j2 X5 [/ z4 J. i) sIA7,
, y2 v4 Y0 c1 M# `0 G* D! r& E9 GIAE,O,1 m4 _+ ^, L& n
IA8,9 L( k- R  Y/ n6 w6 v
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
( ]8 B) a* \3 f/ [' Y' X8 h* kIAE,O,2 \2 a, @- |1 l8 A! N
IA8,
0 F: p9 G6 }5 Q1 \IAD,
$ @. t% \( d6 f; c+ eIA7,
- E$ g$ d9 @4 r+ M3 [# J7 j6 {$ l+ iIAE,O,
( `, y/ S  j' I" OIA8,
: L5 m+ M, f) c8 u' ^& ~& s, r' tI60,D47,
2 {3 b( \+ c' d" T$ A6 @8 F1 fIAD,
0 y& A  @5 K: U4 G8 ]* `" F4 ZIA7,8 D6 m- M9 j: d, D- \) }( ]6 L4 f
IAE,O,
3 s8 d/ D) P; C% p9 O, W7 |5 n) vIA8,5 A' l9 ~4 O3 d1 K$ b6 F7 }* D
ID4,VFF,% l9 s+ ^! y2 ~9 n7 X$ w
e83,C,RFA,OFA,4 j8 w( Z' e2 F8 b
e83,O,RAA,R00,OAA,O,O00,
, ?- J. Z. k' P0 x" W  J2 mID4,VF2,O,C,RFA,R00,OFA,O,O00,0 p: ]# L) l3 q1 L. D- x
ID4,VE8,O,C,RFA,OFA,
+ B  R9 g# Y+ A2 g6 J3 VID4,V00,O,C,RFA,OFA,
/ o7 O% ~( d- `+ B0 T+ ^) n5 ?ID4,VE6,O,C,RFA,OFA,3 Z2 t* V, |' j. D1 F; ?5 O  Z* c
ID4,VE6,O,C,RFA,OFA,- H. V  I& c$ P+ ^6 f; O6 S1 ]
ID4,VE6,O,C,RFA,OFA,; S9 L; m# u. O+ _+ s0 t( Z. }! ]& K
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
* @5 H& c# p" f: E( bID4,VE8,O,C,RFA,OFA,
: k2 n0 Q: \/ `) ~- G' FID4,V03,O,C,RFA,OFA,; ~7 ^1 f+ k0 _9 {( ?$ j' Z
ID4,VF3,O,C,RFA,OFA," H$ r3 @3 I! z# @
ID4,VC8,O,C,RFA,OFA,
  G* o& v' R& TID4,VF3,O,C,RFA,OFA,
( [5 ^' \, r! o  ~ID4,V64,O,C,RFA,OFA,
: r/ X  f8 P4 _4 |( X! v; t, NID4,VF3,O,C,RFA,OFA,
  g- r% V( i8 o3 M) z9 BID4,V50,O,C,RFA,OFA,0 `% g  ~- C( p; P
ID4,VF2,O,C,RFA,R03,OFA,O,O03,9 b6 k$ F' T8 E" J- D6 k" }
ID4,VF3,O,C,RFA,OFA,) |! _- H8 @- g  R/ ~
ID4,VC8,O,C,RFA,OFA,
8 Q1 E' S( d/ Y" p0 c7 HID4,VF3,O,C,RFA,OFA,4 \/ t  y4 i9 {( S7 c% L! v+ G9 D
ID4,VC8,O,C,RFA,OFA,% S4 D  h: B, b8 l1 f
ID4,VF3,O,C,RFA,OFA,2 B. q/ U+ @' s0 @& A9 n3 ^2 M2 i
ID4,V50,O,C,RFA,OFA,
" _  R" i+ o4 A9 v* E# {; OID4,VF2,O,C,RFA,R03,OFA,O,O03,6 W1 D* g) X7 J7 [7 I/ e
ID4,VF3,O,C,RFA,OFA,
8 M7 w$ Z. o4 P3 W0 J+ O9 o# WID4,V64,O,C,RFA,OFA,6 q/ ~, x' b6 E2 J7 `. t3 ~
ID4,VE8,O,C,RFA,OFA,
  i9 ^7 ^( l* }/ a5 dID4,V03,O,C,RFA,OFA,
/ V5 [! e1 i% `1 K2 KID4,VF4,O,C,RFA,OFA,O,
2 f' ?4 i. B! q  ze83,3 b: N( K  |0 w2 R2 S3 s% F1 S: z
e83,
5 ?# ?  G# J, k2 N7 V! X% Ie83,8 O/ g, J6 I8 e0 K0 j' Y
e83,# q9 f7 E3 ?2 c4 q8 }1 I* _$ t
e83,
* G# E, k/ l+ J1 Q  E7 Ce83,, i! K* X# D) T6 f8 Z* N7 f
e83,
$ e4 f2 X! p7 u+ ]e83,- W8 V4 M0 o2 T9 t2 R
e83,! F! |+ |$ C8 d! }. ?& x
e83,00,C8,2E,
" I8 S  z- y. Q8 W# d9 ze83,00,C8,2E,
: p4 U% L% p7 r8 q) {& l& a. x8 oe83,00,C8,2E,% x3 B' r, i3 _* `
e83,00,C8,2E,
' |# C8 A/ ^* U1 v% x1 re83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
  i+ J0 l9 `) ~: n& ee83,5 `+ h5 x- |3 S+ P0 v  p9 `
4 Y2 ], i8 x6 ?$ Y5 i

9 ~) o  ~( h+ Y, H* _[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
1 Z+ ~9 W8 _) b     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。% ?% A" _6 B& c0 g0 N& T5 _
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
; `& _- j2 h: b1 m      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
  `& S4 D. q8 [      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!; n0 @$ F% G" v2 D0 _
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
* h: Z7 ?( Z+ p. N: k7 ?) [! KDevice(EC0) {
  a+ Q7 s& @+ }  v- D8 BName(_HID, EISAID("PNP0C09"))
1 E( H. s. @3 ~......
8 p) Y. M9 b8 T: G) t}5 n% r& _9 y5 y/ P6 ^4 w+ q
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
, j7 N" V) j% d" S' O) j就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
, T0 l) i9 n' v" d$ }2、   
3 J2 A8 q8 \7 d! C4 C; x- `7 TName(_CRS,ResourceTemplate(){           
7 [$ c* ~4 ^; S  V% v8 f; c7 i1 ~        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84- Z  ^/ T* `8 k8 b4 |0 \8 Z6 |
            IO(Decode16, 0x66, 0x66, 0, 1)& u  \3 c5 I/ X% h8 x+ \+ C5 Z
        })
, f$ t+ }# S# V) q  ~4 w) m3、接着就是
& R: [; ~  M" }/ ~3 nName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
  e) t. J; [+ K  I8 k% b通过这个声明,OS知道EC和哪个GPE关联起来
, Q$ x* d* F  ^8 t+ o1 B2 k而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
: A& D% E; u1 Y7 @EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
" r6 K- S1 Q$ }, p# C6 @) g而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
2 \2 V7 p  Z6 `. o! m) y; R3、OK,看看linux是如何处理SCI中断的# [$ ^# I" G: o: X9 E- l5 x' e
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute$ ~" U3 O! ?& T& I* b0 Q$ E. ?! m
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)) p: W- X0 y% L) H3 K
4、EC接到0x84查询命令之后,就把Q事件号传给OS9 R3 n/ u/ h! c" q
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
0 M% Z8 |! N8 I% u9 A你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了( G8 v* w( C' D& {' u
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
" W1 E& P. @) f% Rqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm/ m7 Z6 w7 {# G& F, }" l
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
# L: `& Z: }1 L9 ]7 s9 T6 Q- x版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 17:47 , Processed in 0.052890 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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