|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup., i. y+ \! w# E+ J7 S
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。$ {0 b1 J( z, u+ `* C
代码如下:
) F5 l! c; g1 z* ~VOID CheckForKey( EFI_EVENT Event, VOID *Context )8 x5 r6 j2 J* E, U
{$ `" U% ~: y t9 K
; J* Y) m2 l* e4 Z3 ]3 q6 H
………..
+ r6 e& U( q& K- r* Y1 T2 G/ ? UINT8 Data,Data1;' |' F3 N& P! a+ G+ f
2 o3 `. [: U8 L$ J* F9 e6 J
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);% E3 n" ~9 ] n- @3 M+ b5 B
if (EFI_ERROR(Status)) return;3 g' P+ d8 f1 ^$ _
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
) o5 Q: L* `2 [" T4 ?% m if((Data == 0x18)){! ]* r0 j9 x- U$ ^3 R9 Z
return;}
( |3 \/ n9 ^5 ]……….…….' m) C6 {2 {* q# b! v
}
; `- }; U: j: \: W7 ^% `5 ?2 [可是仍然从S4回来可以进入bios setup.* a5 d. s, G E' [. m) ^8 e U
我想问1。PMBASE是不是在S4回来后被清空?, }! y. s$ R/ B) G! ~
2.是何时被清空的?4 t$ z4 I" P4 ^0 v$ u- p! H
谢谢 |
|