我正在玩 TTY,对于qemu-system-x86_64 -M pc,每当我通过该-serial选项时,它都会创建一个新的 TTY,我可以从 Linux 向它附加一个类似ttyS0和 的序列号。ttyS1
然而,对于 ARM,我无法通过第一个ttyAMA0. 如果我添加-serial,它不会显示info qtree,并且内核启动消息只能找到一条:
9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 54, base_baud = 0) is a PL011 rev1
Run Code Online (Sandbox Code Playgroud)
是否可能,如果不可能,是否有特定的设计原因?
我使用的是 QEMU v3.0.0。从来源来看,这似乎不可能:https://github.com/qemu/qemu/blob/v3.0.0/hw/arm/virt.c#L138,因为内存映射中只有一个 UART:
[VIRT_GIC_REDIST] = { 0x080A0000, 0x00F60000 },
[VIRT_UART] = { 0x09000000, 0x00001000 },
[VIRT_RTC] = { 0x09010000, 0x00001000 },
Run Code Online (Sandbox Code Playgroud)
我这样做是因为我想看看从不同的串行连接是否会使 KGDB 工作。在 x86_64 上我可以连接到ttyS0,但我认为值得在 ARM 上尝试一下。另请参阅:/sf/ask/1540323151/#44197715