|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.. _5 _3 c- p3 ]' p4 M! | D
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。4 }( z. }# j. d g% L: t! H. @
代码如下:/ z+ G6 T# r% g% H- P
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
3 K T8 v' V* S. H, m) t7 |{
' S8 g4 n! f4 B- f0 e6 n; K& b
+ c; [% g9 l6 o1 d0 k* W……….. ) U }, q0 p$ K- y) `
UINT8 Data,Data1;& r8 c4 {, n2 U$ j
7 G+ Q- z7 a2 @) w6 a1 m
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo); }" F+ Y; z1 J, e5 n
if (EFI_ERROR(Status)) return;
. V6 p% B C& z. l; e6 s Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
( v6 B e4 k9 E! h* j( X if((Data == 0x18)){
y7 Q+ k5 G" M' ~ return;}
; N$ g: s$ n& x- j% W……….…….7 E. ~: R) F j
}
8 A* v( k# _7 f1 l: e可是仍然从S4回来可以进入bios setup.
3 S) |, @# O* \5 ^" g- s我想问1。PMBASE是不是在S4回来后被清空?- b! C, k( l& {5 u! _8 o) W4 ~
2.是何时被清空的?
4 m& {0 g1 F9 z" V/ S6 ]2 E- k谢谢 |
|