有很多关于使用 QEMU 来模拟特定架构系统(“平台”)的文档。
例如,x86、ARM 或 RISCV 系统。
第一步是配置 QEMU target-list,例如
./configure --target-list=riscv32-softmmu
。然而,我的目标是模拟具有混合目标的系统:一台 x86 机器,还通过 PCI 承载 RISCV 嵌入式处理器。
显然我需要实现一个 QEMU PCI 设备,它将在 x86 平台上托管 RISCV 设备,并且 我有一个好主意如何实现通用 PCI 设备。 但是,我不确定在同一个 QEMU 模拟中同时模拟 x86 和 RISCV 的最佳方法。 一种方法是运行两个 QEMU 实例(作为两个独立的进程)并使用某种 IPC 在 x86 和 RISCV 模拟之间进行通信。
另一种可能的(?)方法是将 RISCV QEMU 构建为可加载库并从 x86 QEMU 加载它。
也许甚至有可能拥有一个同时模拟 x86 和 RISCV 的 QEMU 应用程序?
另一种方法是不使用 QEMU 来模拟 RISCV 设备。我可以实现一个完全封装 RISCV 模拟的 QEMU PCI 设备,例如
tiny-emu
,但我宁愿将 QEMU 用于 x86 和 RISCV。
我的问题是: