在qemu中加载ROM引导加载程序

时间:2017-03-17 19:56:21

标签: qemu

我有一个自定义引导加载程序,我有引导加载程序的入口点,如何将此地址指定给qemu?

当我尝试使用此行qemu-system-mips -pflash img_加载图片时,我也收到此警告:

WARNING: Image format was not specified for 'img_' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.

我尝试了-pflash=img_,format=raw,但它没有用。

感谢。

1 个答案:

答案 0 :(得分:0)

你应该在qemu sources进行一些挖掘,以便在qemu上使用自定义引导加载程序映像。 QEMU在 board initilizaton function 中加载booloader,这是特定于电路板的。

运行以下命令以查看所有可用的MIPS板型号:

qemu-system-mips64 -machine  ?
Supported machines are:
magnum               MIPS Magnum
malta                MIPS Malta Core LV (default)
mips                 mips r4k platform
mipssim              MIPS MIPSsim platform
none                 empty machine
pica61               Acer Pica 61

此模型在 qemu / hw / mips / 文件中实现。 (寻找* _init 功能)

例如,对于 malta board(默认值),它是 hw / mips / mips_malta.c 。查看 mips_malta_init 函数:它构造设备,总线和CPU,注册内存区域并将引导加载程序放入内存。似乎 FLASH_ADDRESS 宏是你要找的。

请注意,这个init函数对QEMU实现的所有板都很常见。 此外,每个电路板都有一些参考/数据表文档,QEMU模型应该与它们互补,作为程序员的观点。