|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup." _. _( Z7 f- I
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。7 R0 U1 b) C0 \* F3 r3 w- s
代码如下:! B- K! V( z( g0 f; e
VOID CheckForKey( EFI_EVENT Event, VOID *Context )% K* |5 C' D+ K2 G! L, g1 ]
{
3 [8 v4 r- F. ` `% a5 z5 A, r7 p; s! t7 m, _" p
………..
U# t; o0 |; Z; U0 L' t, E3 j1 |$ J$ r UINT8 Data,Data1;
0 u" f4 g( a1 o! ]# D q+ e* B, W. g( W; Y
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
1 P- O; H: k8 { if (EFI_ERROR(Status)) return;5 b% k0 X3 o& d( Q: j
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
9 I) l# [+ |' T. h1 F3 b if((Data == 0x18)){
& h$ u+ q! R {, |/ s$ Y( A; \' o' f return;}1 Q9 x$ Z! i9 m9 Y4 Q G; }( S; R
……….…….% b0 ^& a: i' w& u* T
}( v4 H1 b* d$ q8 a
可是仍然从S4回来可以进入bios setup." U0 V4 `/ F& ], M3 Z4 o+ W
我想问1。PMBASE是不是在S4回来后被清空?
; T. ~: x: B6 q. m2 h' U 2.是何时被清空的?
4 z2 r; Y0 o+ ~" L! a9 n谢谢 |
|