|
|
我知道进入smm后,cpu从SMBASE+8000h处执行handler,但是BIOS中有很多handler,如何执行某一具体的handler?
0 h2 ^. b: r- z/ n1 G. n看资料说是通过SW SMI进入SMM前,要配置相关的寄存器,这样就可以执行指定的handler。请问:# i2 t6 c! Y* {: C& F& a9 i; \- Z
, M0 I0 \* g5 R" ]# S0 s
1.通过SW SMI进入SMM前如何配置寄存器以便执行指定的handler?有什么资料可参考吗?(看了intel手册但没有相关介绍,似乎和BIOS相关?)/ U' W0 c) ~4 E% H0 V
比如Intel平台,outpd( 0xb2, 0xDE )触发SMM,0xDE如何与bios中的某一handler进行关联?写入的数据(0xDE)代表什么呢?0 r3 b" \7 Z( A8 u) }' m
, @8 {/ c9 m. [( F8 g1 @& J, P
2.是否BIOS中只有一个SMI handler对应write AMPC产生的smi(即SW SMI)?/ t& c8 H1 l4 D+ V8 X$ C, A
; M; X3 f% T' B/ I! E+ [3 Z& r ]1 A P1 X' h/ e* X& \
多谢! |
|