diff --git a/hw/boards.h b/hw/boards.h index 7a0f20f63b..8fe0fbc8fc 100644 --- a/hw/boards.h +++ b/hw/boards.h @@ -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; diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index cc21ee6dae..51c032adc2 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -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 b4138be0e4..d02893173c 100644 --- 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"); }