|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.8 k( ~) X* Y. ~
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
* N" z$ w* D, T! x R代码如下:
/ N* m9 z* G5 T/ A( `+ Y3 AVOID CheckForKey( EFI_EVENT Event, VOID *Context )8 J1 X# _( i, j( q1 L9 }3 l! F( c
{2 _, c6 M2 a: ?' w" F
: ~9 D6 C3 ?6 l# l2 G
………..
6 O: x/ c8 p" n) F UINT8 Data,Data1;
8 I! w% w: i% v" @. `/ r3 v9 f' l. @+ x; J
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
6 N+ c/ _. B k% C if (EFI_ERROR(Status)) return;
b8 y7 z& x- J Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
# c0 j9 |6 A' Q( M7 M% v5 b2 r( Y { if((Data == 0x18)){
3 s5 l" ?9 ]9 Q2 a, V \ V return;}
: F! D) n: B, p……….…….
+ |/ v5 ]/ P0 H' ]* _8 `, G. p; I}
% N, @3 {3 H& G; U可是仍然从S4回来可以进入bios setup." x7 Z8 K' b* N2 l8 c
我想问1。PMBASE是不是在S4回来后被清空?
, y1 X T7 P; C# U 2.是何时被清空的?
0 T" Y4 B& p, v; e7 |. D谢谢 |
|