qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [FOR 0.12 PATCH v4 22/22] Set default console to virtio


From: Markus Armbruster
Subject: Re: [Qemu-devel] [FOR 0.12 PATCH v4 22/22] Set default console to virtio on S390x
Date: Thu, 10 Dec 2009 09:36:52 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Gerd Hoffmann <address@hidden> writes:

> 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 <address@hidden>
> ---
>  hw/boards.h      |    4 ++++
>  hw/s390-virtio.c |    4 ++++
>  vl.c             |   19 ++++++++++++++++++-
>  3 files changed, 26 insertions(+), 1 deletions(-)
>
> diff --git a/hw/boards.h b/hw/boards.h
> index 7a0f20f..8fe0fbc 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;

Funny indentation.

> diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
> index cc21ee6..51c032a 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 b4138be..d028931 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");
>          }

The other default devices could use per-machine suppression, too, but
that can be left for another day.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]