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

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

[复制链接]
发表于 2009-5-15 15:48:20 | 显示全部楼层 |阅读模式
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.* W7 ^. {, y8 n
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
. {9 Z) N. C2 i# k5 V/ d代码如下:
0 Q1 v6 S+ o0 hVOID CheckForKey( EFI_EVENT Event, VOID *Context )" E9 C( t, t  e: o2 s. k% ]9 Z3 x
{
2 V' L. R9 ]! w' x& u% p
: |* k/ A8 m+ |  \. d# j. d………..  0 \7 G) m7 ~/ S# Z$ y
  UINT8 Data,Data1;
: d: k6 w" O" T* R4 D& P) S4 W& Y* M  Z  x3 E
    Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
! z, X: k1 G" u( p2 Q& R0 ^     if (EFI_ERROR(Status)) return;0 E2 y) w9 j. e7 T3 J7 L$ p, r
    Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data);  //read PM BASE register 0x05,Get sleep type
" Z! S! L' g$ W2 w* p5 L        if((Data == 0x18)){
  {/ i' @) n% l7 P9 v          return;}1 b+ C$ U. A- r' z. f. G
……….…….
1 h5 I$ t( h) y8 ~}
! \. W/ b6 k+ q9 b; K可是仍然从S4回来可以进入bios setup.6 j: r3 w; |& g# N0 I
我想问1。PMBASE是不是在S4回来后被清空?, B; h$ c9 y1 s  Y
       2.是何时被清空的?
4 F# ]' q) t1 z谢谢
发表于 2012-5-28 11:24:42 | 显示全部楼层
Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;  J& U" l, N- H, x2 U; L
所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!) H# R, T1 J* T& I9 @! {
个人认为这样oK;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 21:00 , Processed in 0.199532 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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