On 15/01/2025 12:07 pm, Yann Dirson wrote: > --- > > Notes: > This is a very preliminar first draft for comments: > > - would this structuration be adequate? > > - Is my basic understanding correct, are those first enumerations > correct? (some of it come solely from console.txt, which has already > proven to be seriously outdated on many aspects) > > - is there some doc about the qemu/ioemu backend I missed? Is it able to > deal with PV consoles, or is it just for virtual UARTS?
Consoles are probably one of the harder areas to get started. First, we need to distinguish between host consoles and guest consoles, because admin-guide/console could be either/both. Host consoles are mostly UARTs, but we have several flavours including usb2 and usb3 flavours. ARM has extensive early printk support, which RISC-V/PPC are borrowing too. Xen is also capable of using hypervisor-provided consoles too. For guest consoles, there's the plain CONSOLEIO hypercalls, and whether they do anything interesting depend on whether you're dom0 and/or the CONFIG_VERBOSE build setting. ARM has the ability to mutiplex output from different guests onto the host console. There's also the xenconsoled, things emulated by Qemu or other emulators, and even the in-Xen UART emulator currently on list. Then, for specific guests, they've got different console options available. e.g. Linux has a dedicated earlyconsole option for Xen (uses CONSOLEIO) as well as an hvc driver. And ideally we want all this information documented nicely, between "how do I set up debugging for my guest" and how do I write a driver for xenconsoled. ~Andrew