|
|
大家好,我在接案子的时候遇到个bebug :从S4回来可以进入bios setup.* L" P: f& v1 S( W$ {
我的解法是这样的,在POST的过程中系统检测按键的时候,我加了段代码去判断PM_BASE+04h的BIT10 – bit12是否等于110b。
5 R0 d) w# C' Q+ B1 n/ p, O代码如下:
8 ^/ g. D8 U- b$ f+ ?& W* Y* z; XVOID CheckForKey( EFI_EVENT Event, VOID *Context )
& O1 Y0 u* R! a7 O{
: m% _1 T1 y& C9 J% H, L- R, D2 w* W/ n8 C# N9 |
………..
+ B1 q: K& V- A5 F: ` UINT8 Data,Data1;
* m9 y* P5 Y+ x0 a# @) Q, Z2 |! A
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, &gCpuIo);
# H: [% [- T3 K7 _$ y( y% f4 f. m( A if (EFI_ERROR(Status)) return;3 D" @7 a7 j, C- ^) X9 w* w( J
Status=gCpuIo->Io.Read (gCpuIo, EfiCpuIoWidthUint8, 0x405 , 1, &Data); //read PM BASE register 0x05,Get sleep type
) }& t' ^% m. P; X O1 Z if((Data == 0x18)){
* z# }3 F" x$ ?5 } return;}5 r& q9 z) o. S% G4 j
……….…….' T& `; b! P8 F% H% G6 J) G* F- {
}' x& E/ c) C+ i/ }5 D; l
可是仍然从S4回来可以进入bios setup.
( ^2 Z' o- q# v& \# n" ]5 ~4 H: y我想问1。PMBASE是不是在S4回来后被清空?
: @5 X2 b/ N5 O6 A8 E* z y- a 2.是何时被清空的?
) v5 [7 h" j( k v谢谢 |
|