|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.
. U+ q, x& p3 s8 J( o+ Y我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。, a1 a' v6 p8 R; @* t
代码如下:
* s% }) K @& _, Y1 \VOID CheckForKey( EFI_EVENT Event, VOID *Context )2 w1 r2 d( u* n- R
{. `+ E1 K" E1 }. C
3 M3 G4 E& {& }" d" G
……….. % ~, o/ _2 v# g) @- T2 g" s
UINT8 Data,Data1;
2 R( ^( a2 M) _& k: W7 K. [% q
# g+ ?- J% P4 d0 V Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
7 w: Y4 D. }$ M; { if (EFI_ERROR(Status)) return;
) d$ w# q: ~, ]: T$ T Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type, j7 J5 u/ l# R/ ?0 m' \: U: q( W
if((Data == 0x18)){
6 a4 P7 q' q u8 M0 T return;}; M$ [( h$ |% p% X) V/ r1 }
……….…….
; S! I7 C6 E) n; G% S# {3 {}. w7 y2 I# t% M/ b9 t+ }- s
可是仍然从S4回来可以进入bios setup.* t; C# _0 e7 h* G0 m; S
我想问1。PMBASE是不是在S4回来后被清空?3 J6 b& G+ [% p" `' w f1 M
2.是何时被清空的?: C. S5 y: g( W& u6 c1 E4 W1 u
谢谢 |
|