|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.. [( y/ q0 ]# B0 w: g& m7 S
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
' d9 {6 k" [+ ?9 h" V Z/ X代码如下:
* S" Y2 l' @. OVOID CheckForKey( EFI_EVENT Event, VOID *Context )
% P6 h% Y: F1 u6 A8 [{
8 j( y) z/ s1 Y1 `" W8 q/ o7 ?6 x! J, t* y1 ?( w
………..
- m' T0 _% c0 t, J9 [2 x UINT8 Data,Data1;
, I4 e3 F( S; b/ Q1 v9 K
y# o$ R# X6 Q4 c1 a& n+ J Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
4 z4 R5 x# G! c if (EFI_ERROR(Status)) return;
- I1 u+ B& F. a Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type0 t2 R: B, w' g- P
if((Data == 0x18)){
4 ]/ N$ W% _; ]( f return;}" t8 M4 ^* j8 D X9 c+ c, k P1 H2 ~
……….…….
) I& l2 U s4 f8 E5 G. D3 h}6 x9 t$ @' U, A4 h
可是仍然从S4回来可以进入bios setup.8 \- Z5 G/ |0 H4 U- Q& Q
我想问1。PMBASE是不是在S4回来后被清空?& W2 q0 m* {8 L' u+ ?
2.是何时被清空的?5 v8 U' T# O( K; R. \$ C
谢谢 |
|