|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.. G4 x7 O) \( H' d% J& J( R/ d
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。6 o( o0 B6 H) J, I
代码如下:( m" {* `, c: n# _/ k* z! Z
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
$ p5 \6 g- q' \3 Z5 ~; A{; a6 K& t8 }- l* \# M& P, X' w" h
" |# L- j! v# k, l H2 `5 e/ X) g
………..
! X* x; A" \7 B9 a% g UINT8 Data,Data1;! @; E2 I1 S: b- y7 }
2 f$ M5 h/ v# o' A' g5 A! c4 Z/ e! I Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);! m! d7 A" j) r5 H! D
if (EFI_ERROR(Status)) return;% Z- Y l/ c: B# _ B; c
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type9 ?- v7 d6 \. l
if((Data == 0x18)){; m- b0 Q* f+ C* a9 ?& ~* ?
return;}" V6 R% |. P+ q0 N+ K: n$ O v) j
……….…….! r2 r/ m+ Z- j" h) n
} r9 h6 q( @5 N# [; t2 g% |" h* K
可是仍然从S4回来可以进入bios setup.. M9 r% ?0 a% A
我想问1。PMBASE是不是在S4回来后被清空?
8 N# V$ k# f5 [" v 2.是何时被清空的?
' m5 l3 C- P i* L$ Y2 Z谢谢 |
|