qemu中的ARM At91 CPU启动

时间:2019-08-06 05:55:44

标签: qemu

ARM AT91无法在QEMU中启动。我无法在控制台上打印任何内容。

我正在尝试使用QEMU(由git拉出的最新代码)来模拟ARM AT91板。但是,当启动QEMU时,控制台中没有打印。以我的理解,将有两个步骤来实现这一目标:

1,使用QEMU中的内存地址设置属性,让QEMU解压缩zImage。在这一步中,我将看到“解压缩Linux ...完成,启动内核。”

2,属性设置输出设备(例如uart0)。我将收到内核启动消息。

由于QEMU支持通用PB本身,因此我已经成功启动了ARM通用PB。 UniversalPB和AT91之间的区别是它们具有不同的SDRAM地址。我试图将loader_start修改为0x20000000,但似乎仍然无法正常工作。

hwaddr loader_start;//0x2000000, which is AT91 SDRAM address
memory_region_add_subregion(sysmem, 0x2000000, ram);

至少它应该打印Uncompressing Linux...done, booting the kernel.,这表明zImage已执行并解压缩。

1 个答案:

答案 0 :(得分:0)

QEMU(至少是上游QEMU)没有AT91 SoC的模型。这些系统与QEMU确实支持的通用PB之类的系统之间的差异不仅仅是“ RAM位于不同的地址”-它们将具有各种不同的设备(包括UART),它们的行为各不相同,并且位于不同的位置。如果没有在QEMU中实现正确的电路板和至少某些AT91设备的模型,就不可能运行用于AT91的裸机代码。所需的更改远比仅更改RAM基地址的几个地址要重要得多。