]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Set default console to virtio on S390x
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 8 Dec 2009 12:11:54 +0000 (13:11 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Sat, 12 Dec 2009 13:59:44 +0000 (07:59 -0600)
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.

Add flags to QEMUMachine to indicate which kind of default devices make
sense for the machine in question.  Use it for S390x: enable virtcon,
disable serial, parallel and vga.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/boards.h
hw/s390-virtio.c
vl.c

index 7a0f20f63b3e1a3fce49d7c1ff98b8263a2a0cb5..8fe0fbc8fc5ca6a96346e79110d9186c4a0c8eab 100644 (file)
@@ -19,6 +19,10 @@ typedef struct QEMUMachine {
     QEMUMachineInitFunc *init;
     int use_scsi;
     int max_cpus;
+    int no_serial:1,
+        no_parallel:1,
+        use_virtcon:1,
+        no_vga:1;
     int is_default;
     GlobalProperty *compat_props;
     struct QEMUMachine *next;
index cc21ee6dae0a492f2af96768d577aa6d80c89ccb..51c032adc2563591ca50825b541d8629ef59784b 100644 (file)
@@ -243,6 +243,10 @@ static QEMUMachine s390_machine = {
     .alias = "s390",
     .desc = "VirtIO based S390 machine",
     .init = s390_init,
+    .no_serial = 1,
+    .no_parallel = 1,
+    .use_virtcon = 1.
+    .no_vga = 1,
     .max_cpus = 255,
     .is_default = 1,
 };
diff --git a/vl.c b/vl.c
index b4138be0e42759ed346b6a35bff3be38956edfdf..d02893173c601d100fa4c2fc9b43a26103a09501 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -270,7 +270,7 @@ static void *boot_set_opaque;
 
 static int default_serial = 1;
 static int default_parallel = 1;
-static int default_virtcon = 0;
+static int default_virtcon = 1;
 static int default_monitor = 1;
 static int default_vga = 1;
 static int default_drive = 1;
@@ -5629,14 +5629,31 @@ int main(int argc, char **argv, char **envp)
 
     qemu_opts_foreach(&qemu_device_opts, default_driver_check, NULL, 0);
 
+    if (machine->no_serial) {
+        default_serial = 0;
+    }
+    if (machine->no_parallel) {
+        default_parallel = 0;
+    }
+    if (!machine->use_virtcon) {
+        default_virtcon = 0;
+    }
+    if (machine->no_vga) {
+        default_vga = 0;
+    }
+
     if (display_type == DT_NOGRAPHIC) {
         if (default_parallel)
             add_device_config(DEV_PARALLEL, "null");
         if (default_serial && default_monitor) {
             add_device_config(DEV_SERIAL, "mon:stdio");
+        } else if (default_virtcon && default_monitor) {
+            add_device_config(DEV_VIRTCON, "mon:stdio");
         } else {
             if (default_serial)
                 add_device_config(DEV_SERIAL, "stdio");
+            if (default_virtcon)
+                add_device_config(DEV_VIRTCON, "stdio");
             if (default_monitor)
                 monitor_parse("stdio", "readline");
         }