- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想了解 QSP-x86 项目是否在模拟 SMM。我在 GUI 调试器的可用寄存器/内存中没有看到任何提示我可以查看 SMRAM/SMI 处理程序代码的方法。因此,我想知道我是否可以使用它来调试一些 SMM 代码。
我找到了一个页面,上面写着“Simics 快速启动平台是一个基于 Intel 的平台,从 TianoCore 基础启动...”,所以 Simics QSP 源代码在某处可用吗?或者它只是一个特殊的 EDK2/UDK 版本?如果是这样,哪个构建以及如何构建它? (因为如果它只是一个我可以摆弄的特定 TianoCore 构建,那会让我的生活更轻松。)
最佳答案
关于 UEFI:
如果你看https://software.intel.com/content/www/us/en/develop/articles/simics-simulator.html有一个链接到 https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel/SimicsOpenBoardPkg
您还可以查看另一个 QSP 兼容 BIOS 的 Slim Boot Loader 项目:https://slimbootloader.github.io/supported-hardware/qsp.html
SMM:
要在目标内核进入 SMM 时停止,请使用 hap 断点(目前没有可用的专用命令)。即,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 基础和模型的版本而变化。
关于simics - Simics 使用 SMM 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68989604/
我想了解 QSP-x86 项目是否在模拟 SMM。我在 GUI 调试器的可用寄存器/内存中没有看到任何提示我可以查看 SMRAM/SMI 处理程序代码的方法。因此,我想知道我是否可以使用它来调试一些
我是一名优秀的程序员,十分优秀!