thrthth 发表于 2009-5-15 15:48:20

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.是何时被清空的?
谢谢

ludd 发表于 2012-5-28 11:24:42

Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;
所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!
个人认为这样oK;
页: [1]
查看完整版本: bebug :从S4回来可以进入bios setup.