|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.
7 x# N) H+ w/ T6 {我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
k- j; y# A8 }8 o代码如下:
( ]: J: K4 F8 O; l" z1 i1 v* ]2 sVOID CheckForKey( EFI_EVENT Event, VOID *Context )/ \! L7 h) Z) e2 j! {! l1 `
{
8 K2 C4 w7 n4 ^7 o% O/ c1 n& E
# O' \) K k6 A………..
- |! ^" |' ~3 T UINT8 Data,Data1;
) _' c. f/ P2 A! z. Y3 d% p) U5 j! c' U& t- f/ `0 U, W
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);: U. [9 F& f; I G6 |7 E7 k) ^
if (EFI_ERROR(Status)) return;
9 Q: P2 p2 A4 V. b2 O$ F; x1 ` Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
# r/ Y- Q9 f F" [/ h if((Data == 0x18)){
% x% }6 c; a0 x" w) m( N return;}
( {6 u/ O( f+ q! A……….…….! b' [& u/ a$ G; C2 G
}
E# W/ b9 Q9 F2 |) m4 e9 k可是仍然从S4回来可以进入bios setup.
7 e$ f% _# u& I% U我想问1。PMBASE是不是在S4回来后被清空?
$ a; b$ Q0 R$ f! V5 K' H& e 2.是何时被清空的?
/ N$ d# n {$ G2 O$ |3 X( h6 l" m8 m谢谢 |
|