Simics 使用的 BIOS 文件在磁盘上的什么位置?
Where on disk is the BIOS file used by Simics?
(我看到我的一个 实际上没有回答“simics 使用的 BIOS 文件在哪里?”问题,所以我重命名了前一个并提出了这个问题并在此处使其独立。)
我可以看到默认“targets\qsp-x86\firststeps.simics”调用的 BIOS 代码,只需从一开始就逐步执行调试器。但是,如果我想查看完整的二进制文件,是否有我可以查看的特定文件?
四处搜索后,我找到了以下文件夹:
C:\Users\yourusername\AppData\Local\Programs\Simics\simics-qsp-x86-6.0.44\targets\qsp-x86\images
该文件夹中有以下 3 个文件:
SIMICSX58IA32X64_1_0_0_bp_r.fd
SIMICSX58IA32X64-ahci.fd
spi-flash。垃圾箱
两者都SIMICSX58IA32X64_1_0_0_bp_r。 fd 和 SIMICSX58IA32X64-ahci.fd 的开头有 UEFI 文件卷 headers,最后有一个看似 BIOS 的入口点。 spi-flash。 bin 似乎有一个 flash 描述符的占位符,它会出现在 flash 的开头,但大部分是空的。所以我相信英特尔基本上要么在内存中将它们拼接在一起,要么可能只使用 spi-flash。 bin 以允许“软带”配置或类似的东西(因为它是虚拟的 MCH/ICH 无论如何。)
您可以查看主板图像上的“bios”属性:
simics> board.mb->bios
"%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_0_0_bp_r.fd"
您可以通过 bios_image 脚本参数指定要使用的 BIOS 映像到 qsp-clear-linux.simics 脚本。
脚本的帮助信息:
$ ./simics -h targets/qsp-x86/qsp-clear-linux.simics
System:
bios_image - existing file or NIL
BIOS file.
Default value:
"%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_0_0_bp_r.fd"
您可以像这样运行使用您自己的 BIOS:
$ ./simics -e '$bios_image=my-bios.bin' targets/qsp-x86/qsp-clear-linux.simics
现在 BIOS 与其他一些东西的处理不太一致。通常在 Simics 中,磁盘和类似的东西都是图像。您可以使用 list-persistent-images
列出它们并使用 lookup-file
:
解析位置
simics> list-persistent-images
┌─────────────────────┬────────────┬───────────────────────────────────────────────────────┐
│Image │Unsaved data│File(s) (read-only/read-write) │
├─────────────────────┼────────────┼───────────────────────────────────────────────────────┤
│board.disk0.hd_image │ no│%simics%/targets/qsp-x86/images/cl-b28910-v2.craff (ro)│
│board.disk1.hd_image │ no│ │
│board.mb.sb.spi_image│ yes│%simics%/targets/qsp-x86/images/spi-flash.bin (ro) │
└─────────────────────┴────────────┴───────────────────────────────────────────────────────┘
simics> lookup-file "%simics%/targets/qsp-x86/images/spi-flash.bin"
"/disk1/simics-6/simics-qsp-x86-6.0.47/targets/qsp-x86/images/spi-flash.bin"
QSP 中的 BIOS 直接加载到目标内存中执行。为了方便起见,这有点作弊。
(我看到我的一个
我可以看到默认“targets\qsp-x86\firststeps.simics”调用的 BIOS 代码,只需从一开始就逐步执行调试器。但是,如果我想查看完整的二进制文件,是否有我可以查看的特定文件?
四处搜索后,我找到了以下文件夹:
C:\Users\yourusername\AppData\Local\Programs\Simics\simics-qsp-x86-6.0.44\targets\qsp-x86\images
该文件夹中有以下 3 个文件:
SIMICSX58IA32X64_1_0_0_bp_r.fd
SIMICSX58IA32X64-ahci.fd
spi-flash。垃圾箱
两者都SIMICSX58IA32X64_1_0_0_bp_r。 fd 和 SIMICSX58IA32X64-ahci.fd 的开头有 UEFI 文件卷 headers,最后有一个看似 BIOS 的入口点。 spi-flash。 bin 似乎有一个 flash 描述符的占位符,它会出现在 flash 的开头,但大部分是空的。所以我相信英特尔基本上要么在内存中将它们拼接在一起,要么可能只使用 spi-flash。 bin 以允许“软带”配置或类似的东西(因为它是虚拟的 MCH/ICH 无论如何。)
您可以查看主板图像上的“bios”属性:
simics> board.mb->bios
"%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_0_0_bp_r.fd"
您可以通过 bios_image 脚本参数指定要使用的 BIOS 映像到 qsp-clear-linux.simics 脚本。
脚本的帮助信息:
$ ./simics -h targets/qsp-x86/qsp-clear-linux.simics
System:
bios_image - existing file or NIL
BIOS file.
Default value:
"%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_0_0_bp_r.fd"
您可以像这样运行使用您自己的 BIOS:
$ ./simics -e '$bios_image=my-bios.bin' targets/qsp-x86/qsp-clear-linux.simics
现在 BIOS 与其他一些东西的处理不太一致。通常在 Simics 中,磁盘和类似的东西都是图像。您可以使用 list-persistent-images
列出它们并使用 lookup-file
:
simics> list-persistent-images
┌─────────────────────┬────────────┬───────────────────────────────────────────────────────┐
│Image │Unsaved data│File(s) (read-only/read-write) │
├─────────────────────┼────────────┼───────────────────────────────────────────────────────┤
│board.disk0.hd_image │ no│%simics%/targets/qsp-x86/images/cl-b28910-v2.craff (ro)│
│board.disk1.hd_image │ no│ │
│board.mb.sb.spi_image│ yes│%simics%/targets/qsp-x86/images/spi-flash.bin (ro) │
└─────────────────────┴────────────┴───────────────────────────────────────────────────────┘
simics> lookup-file "%simics%/targets/qsp-x86/images/spi-flash.bin"
"/disk1/simics-6/simics-qsp-x86-6.0.47/targets/qsp-x86/images/spi-flash.bin"
QSP 中的 BIOS 直接加载到目标内存中执行。为了方便起见,这有点作弊。