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

请问在进入smm后如何执行指定的handler?

[复制链接]
发表于 2011-2-13 18:07:45 | 显示全部楼层 |阅读模式
我知道进入smm后,cpu从SMBASE+8000h处执行handler,但是BIOS中有很多handler,如何执行某一具体的handler?0 I9 L" J  E% n. n2 ^2 E0 s
看资料说是通过SW SMI进入SMM前,要配置相关的寄存器,这样就可以执行指定的handler。请问:
8 ~# k' P. @1 M0 T
, l/ u3 u( Q  A3 {8 N9 o2 x1 W1.通过SW SMI进入SMM前如何配置寄存器以便执行指定的handler?有什么资料可参考吗?(看了intel手册但没有相关介绍,似乎和BIOS相关?)
  _$ r, m/ A; k; ]5 ]* I    比如Intel平台,outpd( 0xb2, 0xDE )触发SMM,0xDE如何与bios中的某一handler进行关联?写入的数据(0xDE)代表什么呢?
5 e3 i- W: P6 U4 N8 z% \9 `2 l
) @1 d+ b3 h" K7 }2.是否BIOS中只有一个SMI handler对应write AMPC产生的smi(即SW SMI)?4 M1 P+ U6 _9 [5 N0 ~, p  ~1 o

7 n& `! s/ L2 v: L' V4 q  U3 Y8 m4 C) E) ?9 s1 p+ F0 L0 a, B& P. [; _
多谢!
 楼主| 发表于 2011-2-14 14:40:21 | 显示全部楼层
不同的bios,其SMI handler定义是不同的。比如在Award上面有0x2F这个handler,但AMI上可能就没有,或者是别的功能。
" y; N& x" ~5 \/ Y) |3 ?% {0 I通过逆向我发现在调用SW SMI的时候,除了设置DX,AL外,还要设置edp。4 k: s2 A: N5 o
请问是否有资料描述各种bios默认的handler和其对应的SMI value?Award、AMI、Phoenix...否则自己逆向太累了
回复

使用道具 举报

发表于 2011-2-15 11:37:22 | 显示全部楼层
BIOS这行,一般新人会配一个“师傅”,可以向他求教,这是最快的一种捷径,因可以使用同一版BIOS做参考,另一种途径是购买BIOS厂商的代码,BIOS厂商一般会附上一些培训,可以找相关资料.
8 o& X9 I$ ~) N" C. h* d如果你有BIOS Source code,就不存在逆向问题。
& `7 @  i( |: R4 b. d/ k& C* kSW SMI一旦产生,只要是SMI里可以使用到的资源数据,都可以做为判断要执行哪个SW SMI handler的依据,每家BIOS会稍有不同,稍特别提到的是AMD针对chipset 的hotfix,在推SW SMI多重注册机制会让部分BIOS Vendor所接受。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 09:14 , Processed in 0.108714 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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