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.
Signed-off-by: Paolo Bonzini <pbonz...@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(); 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(); - /* If no default VGA is requested, the default is "none". */ if (default_vga) { vga_model = get_default_vga_model(machine_class); -- 2.26.2