|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.# v b3 \* G0 M w
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
m! s% a# _6 i+ e8 j( D代码如下: A. S4 G* T- K& F
VOID CheckForKey( EFI_EVENT Event, VOID *Context )6 D$ l8 k' O5 P0 x- D& V
{6 ]. Z3 J$ i% e( U1 @
: n/ ?/ @: D) Q7 {( Q. g$ C$ B& z$ m5 C K. }……….. . f+ @7 S" U" B& [( C# [1 z
UINT8 Data,Data1;
" R2 p* k% [8 @: |% G1 W% ?8 S% ?2 w) J9 L r( I& y
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);% H+ z4 [; s) E* M4 N) x5 P
if (EFI_ERROR(Status)) return;9 M+ n0 e) o7 n- w/ b& H1 b1 f
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type3 J7 u" f+ ^; K- L. `
if((Data == 0x18)){
7 e0 E. G2 c8 x; y9 M8 J return;}! @. E# f$ d* p7 V0 ]9 @
……….…….$ d9 ]$ r, K& [; Y: ^9 f( L
}" ]6 H" m, v9 @
可是仍然从S4回来可以进入bios setup.
. R0 S9 W8 ^# T我想问1。PMBASE是不是在S4回来后被清空?
/ `+ {- i$ w, t 2.是何时被清空的?
) Z' h a9 K" o! C/ E) |谢谢 |
|