[libvirt PATCH 0/2] qemu: support the SeaBIOS/EDK2 debug console

Andrea Bolognani abologna at redhat.com
Mon Jan 24 10:12:16 UTC 2022

On Thu, Jan 20, 2022 at 06:14:07PM +0000, Daniel P. Berrangé wrote:
> To me I think of <console> as exclusively reflecting a text I/O
> channel targetting humans, while <serial> is a more general
> purpose data channel that can be used for multiple purposes.
> Either running app protocols or for plain text console I/O.
> In terms of an low level implementation isa-debugcon could be
> argued to be a general purpose (unidirectional) data channel,
> that is just passing arbitrary bytes. That would push towards
> <serial> as a mapping
> In terms of the actual real world use cases though, isa-debugcon
> is (AFAIK) only used for spewing text debugging messages aimed
> at humans. That pushes towards <console> as a mapping.
> On balance I felt <console> was/is the winner. Essentially every
> impl of <console> can be said to be a general purpose data
> channel for passing arbitrary bytes. We choose to explicitly
> distinguish <console> from <serial> based on the intended use
> case of the thing.

This interpretation directly contradicts our documentation,


    The console element is used to represent interactive serial


    Due to historical reasons, the serial and console elements have
    partially overlapping scopes.

    In general, both elements are used to configure one or more
    serial consoles to be used for interacting with the guest. The
    main difference between the two is that serial is used for
    emulated, usually native, serial consoles, whereas console is
    used for paravirtualized ones.

Now, to be completely transparent: I happen to be the one who wrote
the bulk of that :) But I believe that, in doing so, I have neither
inaccurately described the existing practice nor contradicted what
the documentation said at the time. And at this point that text has
been up on our website for 4+ years without being contested.

On account of isa-debugcon being neither interactive nor
paravirtualized, I feel that it should be exposed as a <serial>
device rather than a <console>.

Andrea Bolognani / Red Hat / Virtualization

More information about the libvir-list mailing list