|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.0 x2 `! j+ Z# Q% G3 j Q# W9 Y
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。5 R: [8 \: e/ l$ b
代码如下:$ t$ l1 k) C$ a& w, F8 ^: j
VOID CheckForKey( EFI_EVENT Event, VOID *Context )
1 v/ F. w% J0 Q{
/ Q( N% ]! j$ o2 ^6 F6 [6 |1 t7 |+ W5 v' E: i( H+ J$ C
……….. 5 \+ c4 U, j3 z3 {! V) |
UINT8 Data,Data1;9 A+ F2 k; c2 d' Y5 d* Q* C
" ` p, U: E0 v4 W0 r+ k
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
, R6 m4 C/ Z2 A7 Z! i3 z if (EFI_ERROR(Status)) return;
! _. |0 d' y$ a ^$ A* ~ Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type% Q5 z. m }6 |# l
if((Data == 0x18)){
% D5 m2 e) f8 O* ~3 z3 M) ~ return;}) }: u5 D; F4 q. I6 q2 ]+ L+ R
……….…….
% u. U9 u5 {; Y& A}
}! F9 H& p& M8 _# ]2 C# H可是仍然从S4回来可以进入bios setup.
* k: ~( I) S. |. \. M! H9 U我想问1。PMBASE是不是在S4回来后被清空?% I9 f. X5 h: L" f- f! J
2.是何时被清空的?
/ ^# W$ d- R1 d% S谢谢 |
|