关于 UEFI:
如果您查看https://software.intel.com/content/www/us/en/develop/articles/simics-simulator.html有一个链接到https://github.com/tianocore/edk2-platforms/树/主/平台/英特尔/SimicsOpenBoardPkg
您还可以查看另一个与 QSP 兼容的 BIOS 的 Slim Boot Loader 项目:https ://slimbootloader.github.io/supported-hardware/qsp.html
SMM:
要在目标内核进入 SMM 时停止,请使用 hap 断点(目前没有可用的专用命令)。IE,bp.hap.break
如果您在运行 qsp-client-core.simics 脚本后使用它,您应该会看到:
simics> bp.hap.break X86_Enter_SMM
Breakpoint 1: Break on hap X86_Enter_SMM
simics> bp.list
┌──┬──────────────────────────┬───────┬───────┬────────────┬─────────┐
│ID│ Description │Enabled│Oneshot│Ignore count│Hit count│
├──┼──────────────────────────┼───────┼───────┼────────────┼─────────┤
│ 1│Break on hap X86_Enter_SMM│ true │ false │ 0│ 0│
└──┴──────────────────────────┴───────┴───────┴────────────┴─────────┘
simics> r
[board.mb.sb.lpc.bank.cs_conf unimpl] Write to unimplemented field cs_conf.oic.aen (0x31ff) (value written = 0x01, contents = 0x00), will not warn again.
[board.mb.cpu0.core[1][0]] Breakpoint 1: board.mb.cpu0.core[1][0] X86_Enter_SMM 0
[board.mb.cpu0.core[1][0]] Breakpoint 1: board.mb.cpu0.core[1][0] X86_Enter_SMM 1
simics> pselect board.mb.cpu0.core[1][0]
Setting new inspection object: board.mb.cpu0.core[1][0]
simics> si
[board.mb.cpu0.core[1][0]] cs:0x0000000000008000 p:0x0000038000 mov ebp,dword ptr cs:[0x8010]
simics>
当任何处理器内核进入 SMM 时 Simics 停止。请注意,您可能必须选择执行停止的处理器。另请注意,精确输出可能会随 Simics 基础版本和模型而变化。