|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.) W& M( d. \( G0 x9 E% a z' Z- r
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。9 l! R6 j3 u% s' C/ w
代码如下:
+ S/ t; i! k$ Y% w, }VOID CheckForKey( EFI_EVENT Event, VOID *Context )! P8 l7 f3 \# F! d. B: J9 X
{' ^- N3 f* M3 e0 B% C" a
" c: }$ e8 \1 k. c4 j5 ?
………..
+ [- k, d0 L) A/ N; ` X& m' O UINT8 Data,Data1;* z4 j4 @+ P! d+ l+ ^
% Z: w+ w% Y) Q1 n4 b& U Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);5 i+ b/ }3 k: A' g6 \
if (EFI_ERROR(Status)) return;
# I' ]+ h) z, r T Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
0 P( K1 p j4 y* v if((Data == 0x18)){# A, ]0 C0 _( G) J3 X9 U
return;}
9 }) M: I+ I- B) C+ E8 h……….…….
9 Q. o/ V1 }* c8 h}/ a+ {4 w" |% e( k# _5 N
可是仍然从S4回来可以进入bios setup.+ T& K: M, u# ~; U' v7 Q
我想问1。PMBASE是不是在S4回来后被清空?2 j9 ?3 f+ k8 v9 r) T
2.是何时被清空的?
" {2 J) P+ h( s谢谢 |
|