找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 10245|回复: 1

bebug :从S4回来可以进入bios setup.

[复制链接]
发表于 2009-5-15 15:48:20 | 显示全部楼层 |阅读模式
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup." n- ]5 v5 Z  n$ g5 c
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
1 c& y& s8 Z! y1 x7 Q# L! O6 L代码如下:
1 e* z. H- F2 ZVOID CheckForKey( EFI_EVENT Event, VOID *Context )' t0 O* o$ |  J7 _- R; \' v
{
: m: t) k) B  }) m! i( _* T% M0 a& \9 s
………..  * h: O, C) [2 E
  UINT8 Data,Data1;
1 m* R% V/ @+ h; T6 _9 y3 I( r- P) c2 G' G* m& A9 q1 r* q
    Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
% B! l- D9 U7 X1 J; b+ w2 Q     if (EFI_ERROR(Status)) return;
  \0 y# ^* L% P' N9 ?    Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data);  //read PM BASE register 0x05,Get sleep type8 V6 H/ K5 g7 A( @2 N4 L
        if((Data == 0x18)){( P- S3 b6 I0 |- S
          return;}' q! }5 B, H5 l5 U4 y
……….……./ A' E6 X/ @4 D9 C1 {( y# ]
}
5 D( o) N( X# @& J5 A) o1 Q9 Z可是仍然从S4回来可以进入bios setup.
+ K9 k  b- ?, i# Y. h我想问1。PMBASE是不是在S4回来后被清空?9 R5 K2 [. \  T  d5 b+ O/ b5 }
       2.是何时被清空的?
( X0 G; h1 p# Q* a! p$ u% b6 k谢谢
发表于 2012-5-28 11:24:42 | 显示全部楼层
Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;
; A; b, M- q2 T5 R所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!' D: [3 v& b2 L. ~, ^
个人认为这样oK;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-2-1 04:16 , Processed in 0.054091 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表