|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.* W7 ^. {, y8 n
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
. {9 Z) N. C2 i# k5 V/ d代码如下:
0 Q1 v6 S+ o0 hVOID CheckForKey( EFI_EVENT Event, VOID *Context )" E9 C( t, t e: o2 s. k% ]9 Z3 x
{
2 V' L. R9 ]! w' x& u% p
: |* k/ A8 m+ | \. d# j. d……….. 0 \7 G) m7 ~/ S# Z$ y
UINT8 Data,Data1;
: d: k6 w" O" T* R4 D& P) S4 W& Y* M Z x3 E
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
! z, X: k1 G" u( p2 Q& R0 ^ if (EFI_ERROR(Status)) return;0 E2 y) w9 j. e7 T3 J7 L$ p, r
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
" Z! S! L' g$ W2 w* p5 L if((Data == 0x18)){
{/ i' @) n% l7 P9 v return;}1 b+ C$ U. A- r' z. f. G
……….…….
1 h5 I$ t( h) y8 ~}
! \. W/ b6 k+ q9 b; K可是仍然从S4回来可以进入bios setup.6 j: r3 w; |& g# N0 I
我想问1。PMBASE是不是在S4回来后被清空?, B; h$ c9 y1 s Y
2.是何时被清空的?
4 F# ]' q) t1 z谢谢 |
|