如何在QEMU虚拟机上添加SD / Flash?

时间:2019-08-12 12:15:21

标签: qemu

我已经编写了一个裸机程序,我需要Flash / SD来存储文件系统。

我对QEMU的选择是“ qemu-system-aarch64 -machine virt -cpu cortex-a57 -smp 1 -m 1G -nographic -serial mon:stdio -d in_asm,int,mmu -D ./qemu.log -kernel myimg.bin”。

我转储了QEMU(arm64)病毒机器的dts,这些只是PCIe总线和cfi-flash。看来cfi-flash用于引导。而且PCIe对我来说太复杂了。

我知道连接到系统总线的设备无法通过命令行动态实例化。

如何将任何Flash / SD添加到virt机器?

如果必须通过PCIe添加,命令行应该是什么?我可以参考任何PCIe裸机驱动程序吗?

1 个答案:

答案 0 :(得分:1)

您不能像这样向“ virt”板添加更多闪存。文件系统的存储通常是通过virtio设备完成的(通常是pci virtio-blk设备,尽管您可能还可以使用virtio-scsi和仿真的scsi磁盘)。

如果您正在编写裸机程序,则可以根据需要使用地址为0和0x04000000的闪存设备-仅在引导UEFI BIOS时才用于引导。 -金属设置将不起作用。您可以使用“ -drive if = pflash,...”选项将备份文件连接到它们。我不确定这些文件是否真的适合放置文件系统,但这取决于您对文件系统的处理方式,并且可以使其正常工作。这两个pflash的大小均为0x04000000字节。

对于virt板,如果将任何东西放入第一个pflash设备中,则该板将假定它是BIOS代码并尝试从中引导。为避免这种情况,您可以使用第二个pflash设备。要将内容放入第二个pflash中,您需要在“ -drive if = pflash,...”选项中添加“ unit = 1”。