bebug :从S4回来可以进入bios setup.
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
代码如下:
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
{
………..
UINT8 Data,Data1;
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
if (EFI_ERROR(Status)) return;
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data);//read PM BASE register 0x05,Get sleep type
if((Data == 0x18)){
return;}
……….…….
}
可是仍然从S4回来可以进入bios setup.
我想问1。PMBASE是不是在S4回来后被清空?
2.是何时被清空的?
谢谢 Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;
所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!
个人认为这样oK;
页:
[1]