返回列表 发帖

请教关于SMM的问题

问题:当触发一个SMI之后,CPU的执行动作,尤其是跳到handler之前的过程,IA-32上面描述的有点粗糙 。
我本将心向明月。。。。。。。

我的理解:
触发SMI后,CPU自动保存一些寄存器,然后跳到SM RAM的SM Base+8000的地方抓指令执行,这里可以做一些保存的动作,然后有一个专门处理SMI的函数来查询,check这个是哪个的SMI,1.找到就交给他(Handle)处理;2.没找到;    然后恢复我们自己保存的东西,返回(RSM)。

你说的handle之前,CPU会自动跳到SMI Entry(SM Base+8000),自动地!
studying

TOP

论坛上关于SMM的相关链接
Phoenix BIOS initial SMM http://www.biosren.com/thread-46-1-3.html
什么是SYSTEM MANAGEMENT MODE(SMM) http://www.biosren.com/thread-29-1-3.html

保存的寄存器大概为
;CPUDumpStruct           STRUCT          ; Structure containing all writable registers from SMI Dump area
; IORestart             word    0       ; I/O Instruction Restart Field
; wAutoHalt             word    0       ; Auto HALT Field
; wRegES                dword   0       ; ES
; wRegCS                dword   0       ; CS
; wRegSS                dword   0       ; SS
; wRegDS                dword   0       ; DS
; wRegFS                dword   0       ; FS
; wRegGS                dword   0       ; GS
; dRegEAX               dword   0       ; EAX
; dRegECX               dword   0       ; ECX
; dRegEDX               dword   0       ; EDX
; dRegEBX               dword   0       ; EBX
; dRegESP               dword   0       ; ESP
; dRegEBP               dword   0       ; EBP
; dRegESI               dword   0       ; ESI
; dRegEDI               dword   0       ; EDI
; dRegEIP               dword   0       ; EIP
; dRegEFlags            dword   0       ; EFLAGS

;  CPUDumpStruct           ENDS
可能还会有 70H/72H 等
Let's study together!

TOP

上面这个是什么表?

TOP

上面只是陳列出來哪些reg會被記錄下來!當你跳出SMM時會由software restore 回去。

TOP

返回列表