运行 QEMU 中的 MLO 文件

Run MLO Files in QEMU

我有一个 ARMv7 Cortex-A8 芯片,带有一个 TI AM335x 嵌入式芯片(我的芯片非常接近 Beaglebone Black 控制器)。我编译了整个系统堆栈,从 MLO 文件开始,到 u-boot,再到 Linux 内核 zImage,再到 Linux 用户 [=30] =] 以及应该在我的控制器上 运行 的程序。但是,对于特定的分析案例,我可能需要在 QEMU 中模拟我的控制器的体系结构和系统堆栈。当我研究大多数嵌入式设备的启动顺序时,顺序如下: MLO -> u-boot -> kernel -> user space -> etc.

当我开始模拟系统时,我从 qemu-system-arm 开始(因为我使用的是 ARM 32 位设备,因此是 ARMv7),并传递了以下机器类型(因为这是唯一的 Cortex -QEMU 中可用的 A8 设备):realview-pb-a8,以及以下 CPU:cortex-a8。我还使用 -bios 参数加载了已编译的 u-boot.bin。然而,除了 Guest has not initialized the display (yet) 之外,VGA 显示器上没有显示任何内容,串行 IO 上也没有显示任何内容。我的直觉告诉我必须在 u-boot 文件之前加载 MLO,但如果可能的话我该怎么做?

您不能 运行 为一种 Arm 嵌入式板构建的低级程序(如 u-boot 或内核)。 realview-pb-a8 是与 AM335x SoC 完全不同的硬件,来宾代码一旦尝试对硬件执行任何操作就会崩溃。

你需要在 QEMU 中有一个正确的硬件模型才能 运行 这个软件,但是 QEMU 没有那个 SoC 的模型,所以你不能,恐怕。