|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.. B3 Y3 _/ V/ l4 z
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。! g. q f( b1 k$ A( e7 g
代码如下:
3 T; _5 p, ]; ^VOID CheckForKey( EFI_EVENT Event, VOID *Context )
# I( n6 i; b$ m/ |{! Z$ m/ P9 q9 }) g
, v3 S$ L5 L5 n7 v
………..
$ F* c# e# J$ i: h6 u UINT8 Data,Data1;3 q# b ~: _6 i2 m) q, Z
1 ^. P# {0 d0 Y Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
! E7 s H3 j7 p* b7 |% n+ \ if (EFI_ERROR(Status)) return;
K" ^( X+ q5 D Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type$ W- G+ _! [/ ]! g2 J
if((Data == 0x18)){" {' p) z4 F6 Q/ E; O; y! \
return;}& p ?5 l3 |% h5 a
……….…….
% c- Y A2 j$ b; M}. H8 d7 \* `! Y2 o7 A
可是仍然从S4回来可以进入bios setup.
- ^1 B: T+ l; j' Z我想问1。PMBASE是不是在S4回来后被清空?3 B" u/ Y4 ~: o# w" M' f U% k6 Y
2.是何时被清空的?
2 ^! N$ s! C( ~ C* O谢谢 |
|