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

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

[复制链接]
发表于 2009-5-15 15:48:20 | 显示全部楼层 |阅读模式
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.
. U+ q, x& p3 s8 J( o+ Y我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。, a1 a' v6 p8 R; @* t
代码如下:
* s% }) K  @& _, Y1 \VOID CheckForKey( EFI_EVENT Event, VOID *Context )2 w1 r2 d( u* n- R
{. `+ E1 K" E1 }. C
3 M3 G4 E& {& }" d" G
………..  % ~, o/ _2 v# g) @- T2 g" s
  UINT8 Data,Data1;
2 R( ^( a2 M) _& k: W7 K. [% q
# g+ ?- J% P4 d0 V    Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
7 w: Y4 D. }$ M; {     if (EFI_ERROR(Status)) return;
) d$ w# q: ~, ]: T$ T    Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data);  //read PM BASE register 0x05,Get sleep type, j7 J5 u/ l# R/ ?0 m' \: U: q( W
        if((Data == 0x18)){
6 a4 P7 q' q  u8 M0 T          return;}; M$ [( h$ |% p% X) V/ r1 }
……….…….
; S! I7 C6 E) n; G% S# {3 {}. w7 y2 I# t% M/ b9 t+ }- s
可是仍然从S4回来可以进入bios setup.* t; C# _0 e7 h* G0 m; S
我想问1。PMBASE是不是在S4回来后被清空?3 J6 b& G+ [% p" `' w  f1 M
       2.是何时被清空的?: C. S5 y: g( W& u6 c1 E4 W1 u
谢谢
发表于 2012-5-28 11:24:42 | 显示全部楼层
Power Management 1 Control Register 这边的register应该在S4状态下就是被清掉的,因为当时已经没有电了,也不用那段code特意的清掉他们,直接没有电了;; ], U3 F* q2 Y
所以你那code不起作用,你可以在进S4的时候,写systemflag到CMOS,再进行判断!
8 @. ?" {- F% `, u' O, P; t/ h5 k. c个人认为这样oK;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-10 20:38 , Processed in 0.065232 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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