|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.4 n5 Y% x7 c$ r0 g( L2 ^4 d$ @
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。0 U) ^- Q. s& y/ [, y/ C
代码如下:! K5 Y' W6 J9 p2 H8 e6 v3 _7 }
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
" l' A& D, {- e1 O; r{
9 h3 c* n) K; l) c5 n
* b6 u0 d0 {$ z% G4 B* L: t……….. & }+ |# k" H- r
UINT8 Data,Data1;- p. x: {% }1 Y8 \" f
1 B3 W6 b! t0 g5 J& h% Z4 N5 e
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);+ ^! x0 q1 ^! l% n
if (EFI_ERROR(Status)) return;
0 k4 p$ _$ P* R; P' a- |0 k Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
^& D& V3 E8 E# b0 F if((Data == 0x18)){0 H, o% {; R T5 z8 ^
return;}7 w3 Z# a! C* O
……….…….& G: m8 c; b0 K5 i9 H9 q& Z# A
}$ u, _, }. E I( R
可是仍然从S4回来可以进入bios setup.
B0 T" W( e9 C我想问1。PMBASE是不是在S4回来后被清空?
+ D) K1 N/ c' J* t8 _ ~6 ?, t 2.是何时被清空的?3 s2 H. R2 F! \) B# K/ M
谢谢 |
|