From patchwork Mon Oct 19 14:37:38 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [8/9] Set default console to virtio on S390x Date: Mon, 19 Oct 2009 04:37:38 -0000 From: Alexander Graf X-Patchwork-Id: 36380 Message-Id: <1255963059-10298-9-git-send-email-agraf@suse.de> To: qemu-devel Cc: Carsten Otte , hare@suse.de All "normal" system emulation targets in qemu I'm aware of display output on either VGA or serial output. Our S390x virtio machine doesn't have such kind of legacy hardware. So instead we need to default to a virtio console. I'm not particularly proud of this patch. It would be a lot better to have something in the machine description that tells us about the default terminal. Signed-off-by: Alexander Graf --- vl.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/vl.c b/vl.c index 96838f8..f3654ff 100644 --- a/vl.c +++ b/vl.c @@ -4818,6 +4818,20 @@ int main(int argc, char **argv, char **envp) cyls = heads = secs = 0; translation = BIOS_ATA_TRANSLATION_AUTO; +#ifdef TARGET_S390X + for(i = 0; i < MAX_SERIAL_PORTS; i++) + serial_devices[i] = NULL; + serial_device_index = 0; + + for(i = 0; i < MAX_PARALLEL_PORTS; i++) + parallel_devices[i] = NULL; + parallel_device_index = 0; + + virtio_consoles[0] = "mon:stdio"; + for(i = 1; i < MAX_VIRTIO_CONSOLES; i++) + virtio_consoles[i] = NULL; + virtio_console_index = 0; +#else serial_devices[0] = "vc:80Cx24C"; for(i = 1; i < MAX_SERIAL_PORTS; i++) serial_devices[i] = NULL; @@ -4831,6 +4845,7 @@ int main(int argc, char **argv, char **envp) for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) virtio_consoles[i] = NULL; virtio_console_index = 0; +#endif monitor_devices[0] = "vc:80Cx24C"; for (i = 1; i < MAX_MONITOR_DEVICES; i++) { @@ -5709,6 +5724,17 @@ int main(int argc, char **argv, char **envp) break; } } + for (i = 0; i < MAX_VIRTIO_CONSOLES; i++) { + const char *devname = virtio_consoles[i]; + if (devname && !strcmp(devname,"mon:stdio")) { + monitor_devices[0] = NULL; + break; + } else if (devname && !strcmp(devname,"stdio")) { + monitor_devices[0] = NULL; + virtio_consoles[i] = "mon:stdio"; + break; + } + } } if (nb_numa_nodes > 0) {