|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.( ]: J/ |, A: v2 Q4 m# {0 B9 M
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。/ M, P- _- v- k- m9 z/ A
代码如下:
4 Z' f6 M" a& p0 V' }7 R7 g6 XVOID CheckForKey( EFI_EVENT Event, VOID *Context )1 k( \" U7 W- M2 y: H* q# S2 V
{
- ?% c2 n; f. V) i% q3 n( Y) l" ]& `
……….. + M G7 Z* Q- M' s/ Y
UINT8 Data,Data1;. r- t7 ? r& U0 M' e- n
$ u B5 T+ D9 X8 _. ~* ]* J' {
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
/ y L5 {+ ? k8 n if (EFI_ERROR(Status)) return;) V4 G' Q% V2 X7 y" \, ^
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type! ^8 z& p* q4 E; ^* P5 p/ o
if((Data == 0x18)){ x! [8 e& ]- J6 F0 V* o
return;}
4 {7 U F" o6 @ P……….…….! L& J- f' a7 i5 H( {. Z0 `9 P
}( K: ~& Z- J& s5 c! N
可是仍然从S4回来可以进入bios setup.
& E- H- o: m& ~& d我想问1。PMBASE是不是在S4回来后被清空?! w4 j7 I# z1 s
2.是何时被清空的?
1 w* ?6 d+ V( `3 N8 ^( ]: O5 \谢谢 |
|