qemu的bootrom

    在riscv-qemu模拟器的实验时,通过-bios选项指定bootrom文件,-kernel选项指定kernel文件。

    在尝试使用自定义的bootrom时,通过 -d inasm -D ./qemu.log打印调试信息时发现,cpu最先执行的指令并不是通过-bios选项指定的文件中的指令。

猜测:-bios选项指定的文件被加载到0x80000000,而不是reset_vector (0x1000),所以bootrom中的内容不会被覆盖。

代码:在qemu中查找reset_vec字符串之后,在qemu/hw/riscv/virt.c中找到了cpu启动时最先执行的指令。这些指令是通过静态数组的方式写死的,并不能被-bios选项指定的文件覆盖。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 4.3 配置文件 bochsrc 官网参考地址[http://bochs.sourceforge.net/doc/...
    扶海狐阅读 4,261评论 0 0
  • mit6.828的JOS系统启动分为两部分,Boot Loader和kern。BIOS加载Boot Loader程...
    __七把刀__阅读 8,468评论 0 8
  • Alchemical Symbols ⭕🟪🧧🥬🟥🟦🟧 ←↑→↓↖↙↗↘↕⏤unicode=Geometric Sh...
    平知阅读 1,897评论 1 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,594评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,225评论 4 8