|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.
M: a R% k& K! v& c% @我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
5 @: E) l2 u& G$ [" ~% {代码如下:, P( @2 l( x4 p4 x* [& o: I
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
+ r+ J( g: r* O* Q* e{5 H- |/ j, n& e# C
, O2 u! u, i5 V, x
………..
5 J! r3 [$ I+ F9 q5 Y8 m& `# Z7 H UINT8 Data,Data1;. P! i; |3 f# O3 |/ m+ |
! ~; X7 O- p# u- M6 u
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);2 I$ t. o% v; G
if (EFI_ERROR(Status)) return;" ]% @/ @' v3 O
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type3 `" S8 L" ~ e$ p
if((Data == 0x18)){0 H6 Q: C5 |- `, @2 p
return;}0 t6 L% i1 \* _0 |8 j3 ?2 ^' s
……….…….2 R4 Q/ c9 w6 k# o1 o
}
( {" E0 P$ E! ~! c7 B [# @6 X可是仍然从S4回来可以进入bios setup.
4 c t7 O( ]( r6 d% t我想问1。PMBASE是不是在S4回来后被清空?
- b$ X4 F J/ U 2.是何时被清空的?: ^; G% \: P' J3 V' |
谢谢 |
|