【问题标题】:Where on disk is the BIOS file used by Simics?Simics 使用的 BIOS 文件在磁​​盘的哪个位置?
【发布时间】:2021-09-08 00:00:06
【问题描述】:

(我看到我的previous posts 之一实际上并没有回答“simics 使用的 BIOS 文件在哪里?”的问题,所以我重命名了前一个问题,并将该问题拉出并使其独立在这里.)

我可以通过从一开始就单步执行调试器来查看默认“targets\qsp-x86\firststeps.simics”调用的 BIOS 代码。但是,如果我想查看完整的二进制文件,是否有可以查看的特定文件?

【问题讨论】:

    标签: simics


    【解决方案1】:

    您可以检查主板图像上的“bios”属性:

    simics> board.mb->bios 
    "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_0_0_bp_r.fd"
    

    您可以通过 qsp-clear-linux.simics 脚本的 bios_image 脚本参数指定要使用的 BIOS 映像。

    脚本的帮助信息:

    $ ./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
    

    【讨论】:

    • 忘了一件事:您可能想使用lookup-file 来显示路径中的%simics%simics> lookup-file board.mb->bios
    【解决方案2】:

    现在 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 只是直接加载到目标内存中执行。为了方便起见,这有点作弊。

    【讨论】:

    • spi_flash_image 和 bios_image 选项有什么区别?
    • SPI flash 镜像是 SPI flash 的内容。没有 BIOS 的位置。此型号的 BIOS 是单独加载的。如果软件通过 SPI 读取值,则存在 SPI 闪存。
    【解决方案3】:

    四处寻找,我找到了以下文件夹:

    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-闪存。垃圾箱

    SIMICSX58IA32X64_1_0_0_bp_r。 fd 和 SIMICSX58IA32X64-ahci.fd 开头有 UEFI 文件卷标头,结尾有一个看似 BIOS 入口点。 spi-flash。 bin 似乎有一个闪存描述符的占位符,它将在闪存开始时出现,但大部分是空的。所以我相信英特尔基本上要么在内存中将它们拼接在一起,要么可能只是使用 spi-flash。 bin 以允许“软带”配置或类似的配置(因为它无论如何都是虚拟的 MCH/ICH。)

    【讨论】:

      猜你喜欢
      • 2014-12-28
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2015-06-18
      相关资源
      最近更新 更多