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

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

[复制链接]
发表于 2009-5-15 15:48:20 | 显示全部楼层 |阅读模式
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.) W& M( d. \( G0 x9 E% a  z' Z- r
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。9 l! R6 j3 u% s' C/ w
代码如下:
+ S/ t; i! k$ Y% w, }VOID CheckForKey( EFI_EVENT Event, VOID *Context )! P8 l7 f3 \# F! d. B: J9 X
{' ^- N3 f* M3 e0 B% C" a
" c: }$ e8 \1 k. c4 j5 ?
………..  
+ [- k, d0 L) A/ N; `  X& m' O  UINT8 Data,Data1;* z4 j4 @+ P! d+ l+ ^

% Z: w+ w% Y) Q1 n4 b& U    Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);5 i+ b/ }3 k: A' g6 \
     if (EFI_ERROR(Status)) return;
# I' ]+ h) z, r  T    Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data);  //read PM BASE register 0x05,Get sleep type
0 P( K1 p  j4 y* v        if((Data == 0x18)){# A, ]0 C0 _( G) J3 X9 U
          return;}
9 }) M: I+ I- B) C+ E8 h……….…….
9 Q. o/ V1 }* c8 h}/ a+ {4 w" |% e( k# _5 N
可是仍然从S4回来可以进入bios setup.+ T& K: M, u# ~; U' v7 Q
我想问1。PMBASE是不是在S4回来后被清空?2 j9 ?3 f+ k8 v9 r) T
       2.是何时被清空的?
" {2 J) P+ h( s谢谢
发表于 2012-5-28 11:24:42 | 显示全部楼层
Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;
% h/ y5 b! y( J* b0 F- P所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!& N/ {+ k4 i2 I/ N
个人认为这样oK;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 14:31 , Processed in 0.132659 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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