|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.1 z6 X5 w5 Y; t9 `2 a2 t
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。1 D& ]& ^" m6 P2 @8 O3 d) e+ S8 _
代码如下:- g4 Y# U9 Y9 Z' t# u
VOID CheckForKey( EFI_EVENT Event, VOID *Context ), ]5 K {% M( P4 y
{. V, }" Q1 N) u+ H. o4 i( j# [
8 x& B$ Q o7 g" J
……….. ; v* `! W( g6 s f( ]
UINT8 Data,Data1;
( a/ X" f1 m& [; \5 X# i
7 T* h# y- D1 l1 C Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);% m8 D+ X3 o- I- _
if (EFI_ERROR(Status)) return;
( w# z2 M8 H+ N% U Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
: u0 L o6 J& I Z if((Data == 0x18)){
! i* n* m6 I, k/ h1 g; Q return;}. f; H/ K0 [! p
……….…….. h3 t8 J$ v+ e6 z1 e
}
" c* _; ~$ F) n8 e- C可是仍然从S4回来可以进入bios setup.' t& W- t1 ~0 h! T& ~+ A+ [ v! m
我想问1。PMBASE是不是在S4回来后被清空?
1 D" u9 Q0 S; l; N Z, L6 s 2.是何时被清空的?* N2 ?" E8 A0 Y; w1 u# \% S9 q
谢谢 |
|