All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, berrange@redhat.com, jsnow@redhat.com,
	ehabkost@redhat.com, imammedo@redhat.com
Subject: Re: [PATCH 01/22] semihosting: fix order of initialization functions
Date: Tue, 27 Oct 2020 11:18:43 +0000	[thread overview]
Message-ID: <87sg9zex2k.fsf@linaro.org> (raw)
In-Reply-To: <20201021205716.2359430-2-pbonzini@redhat.com>


Paolo Bonzini <pbonzini@redhat.com> writes:

> qemu_semihosting_console_init uses semihosting.chardev which is set
> by qemu_semihosting_connect_chardevs.  Thus qemu_semihosting_connect_chardevs
> has to be called first.

It looks like this is reverting 619985e9 ("semihosting: defer
connect_chardevs a little more to use serialx"). Looking back at the
history it seems the two calls had different results:

  Right - can confirm the difference between:

    ./aarch64-softmmu/qemu-system-aarch64 -cpu max -serial mon:stdio -M virt -display none -semihosting -kernel ./tests/tcg/aarch64-softmmu/memory

  and

    ./aarch64-softmmu/qemu-system-aarch64 -cpu max -serial mon:stdio -M virt -display none -semihosting-config chardev=serial0 -kernel ./tests/tcg/aarch64-softmmu/memory

With this patch applied it breaks the later invocation:

  ./aarch64-softmmu/qemu-system-aarch64  -cpu max -serial mon:stdio -M virt -display none -semihosting-config chardev=serial0 -kernel ./tests/tcg/aarch64-softmmu/memory
  qemu-system-aarch64: semihosting chardev 'serial0' not found

>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  softmmu/vl.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/softmmu/vl.c b/softmmu/vl.c
> index 6f5b000f07..42314e6ff9 100644
> --- a/softmmu/vl.c
> +++ b/softmmu/vl.c
> @@ -4288,7 +4288,8 @@ void qemu_init(int argc, char **argv, char **envp)
>      qemu_opts_foreach(qemu_find_opts("mon"),
>                        mon_init_func, NULL, &error_fatal);
>  
> -    /* connect semihosting console input if requested */
> +    /* now chardevs have been created we may have semihosting to connect */
> +    qemu_semihosting_connect_chardevs();
>      qemu_semihosting_console_init();

Maybe instead of this we should:

>  
>      if (foreach_device_config(DEV_SERIAL, serial_parse) < 0)
> @@ -4298,9 +4299,6 @@ void qemu_init(int argc, char **argv, char **envp)
>      if (foreach_device_config(DEV_DEBUGCON, debugcon_parse) < 0)
>          exit(1);
>  
> -    /* now chardevs have been created we may have semihosting to connect */
> -    qemu_semihosting_connect_chardevs();
> -

Move both here:

    if (foreach_device_config(DEV_DEBUGCON, debugcon_parse) < 0)
        exit(1);

    /* now chardevs have been created we may have semihosting to connect */
    qemu_semihosting_connect_chardevs();
    qemu_semihosting_console_init();


>      /* If no default VGA is requested, the default is "none".  */
>      if (default_vga) {
>          vga_model = get_default_vga_model(machine_class);


-- 
Alex Bennée


  reply	other threads:[~2020-10-27 11:50 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-21 20:56 [RFC PATCH 00/22] cleanup qemu_init and make sense of command line processing Paolo Bonzini
2020-10-21 20:56 ` [PATCH 01/22] semihosting: fix order of initialization functions Paolo Bonzini
2020-10-27 11:18   ` Alex Bennée [this message]
2020-10-27 13:32     ` Paolo Bonzini
2020-10-21 20:56 ` [PATCH 02/22] machine: remove deprecated -machine enforce-config-section option Paolo Bonzini
2020-10-22  5:09   ` Thomas Huth
2020-10-22  6:54     ` Paolo Bonzini
2020-10-21 20:56 ` [PATCH 03/22] machine: move UP defaults to class_base_init Paolo Bonzini
2020-10-22  5:11   ` Thomas Huth
2020-10-21 20:56 ` [PATCH 04/22] machine: move SMP initialization from vl.c Paolo Bonzini
2020-10-22  7:16   ` Philippe Mathieu-Daudé
2020-10-21 20:56 ` [PATCH 05/22] vl: extract validation of -smp to machine.c Paolo Bonzini
2020-10-21 20:57 ` [PATCH 06/22] vl: remove bogus check Paolo Bonzini
2020-10-21 20:57 ` [PATCH 07/22] trace: remove argument from trace_init_file Paolo Bonzini
2020-10-21 20:57 ` [PATCH 08/22] vl: split various early command line options to a separate function Paolo Bonzini
2020-10-21 20:57 ` [PATCH 09/22] vl: move various initialization routines out of qemu_init Paolo Bonzini
2020-10-21 20:57 ` [PATCH 10/22] vl: extract qemu_init_subsystems Paolo Bonzini
2020-10-21 20:57 ` [PATCH 11/22] vl: move prelaunch part of qemu_init to a new function Paolo Bonzini
2020-10-21 20:57 ` [PATCH 12/22] vl: move bios_name out of softmmu/vl.c Paolo Bonzini
2020-10-22  7:22   ` Philippe Mathieu-Daudé
2020-10-21 20:57 ` [PATCH 13/22] vl: extract various command line validation snippets to a new function Paolo Bonzini
2020-10-21 20:57 ` [PATCH 14/22] vl: preconfig and loadvm are mutually exclusive Paolo Bonzini
2020-10-21 20:57 ` [PATCH 15/22] vl: extract various command line desugaring snippets to a new function Paolo Bonzini
2020-10-21 20:57 ` [PATCH 16/22] vl: create "-net nic -net user" default earlier Paolo Bonzini
2020-10-21 20:57 ` [PATCH 17/22] vl: load plugins as late as possible Paolo Bonzini
2020-10-22  7:28   ` Philippe Mathieu-Daudé
2020-10-21 20:57 ` [PATCH 18/22] vl: move semihosting command line fallback to qemu_finish_machine_init Paolo Bonzini
2020-10-21 20:57 ` [PATCH 19/22] vl: extract default devices to separate functions Paolo Bonzini
2020-10-21 20:57 ` [PATCH 20/22] vl: move CHECKPOINT_INIT after preconfig Paolo Bonzini
2020-10-22  7:29   ` Philippe Mathieu-Daudé
2020-10-21 20:57 ` [PATCH 21/22] vl: separate qemu_create_early_backends Paolo Bonzini
2020-10-21 20:57 ` [PATCH 22/22] vl: separate qemu_create_late_backends Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sg9zex2k.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.