# SPDX-License-Identifier: GPL-2.0 config HVC_DRIVER bool help Generic "hypervisor virtual console" infrastructure for various hypervisors (pSeries, iSeries, Xen). It will automatically be selected if one of the back-end console drivers is selected. config HVC_IRQ bool config HVC_CONSOLE bool "pSeries Hypervisor Virtual Console support" depends on PPC_PSERIES select HVC_DRIVER select HVC_IRQ help pSeries machines when partitioned support a hypervisor virtual console. This driver allows each pSeries partition to have a console which is accessed via the HMC. config HVC_OLD_HVSI bool "Old driver for pSeries serial port (/dev/hvsi*)" depends on HVC_CONSOLE config HVC_OPAL bool "OPAL Console support" depends on PPC_POWERNV select HVC_DRIVER select HVC_IRQ default y help PowerNV machines running under OPAL need that driver to get a console config HVC_RTAS bool "IBM RTAS Console support" depends on PPC_RTAS select HVC_DRIVER help IBM Console device driver which makes use of RTAS config HVC_IUCV bool "z/VM IUCV Hypervisor console support (VM only)" depends on S390 && NET select HVC_DRIVER select IUCV default y help This driver provides a Hypervisor console (HVC) back-end to access a Linux (console) terminal via a z/VM IUCV communication path. config HVC_XEN bool "Xen Hypervisor Console support" depends on XEN select HVC_DRIVER select HVC_IRQ default y help Xen virtual console device driver config HVC_XEN_FRONTEND bool "Xen Hypervisor Multiple Consoles support" depends on HVC_XEN select XEN_XENBUS_FRONTEND default y help Xen driver for secondary virtual consoles config HVC_UDBG bool "udbg based fake hypervisor console" depends on PPC select HVC_DRIVER help This is meant to be used during HW bring up or debugging when no other console mechanism exist but udbg, to get you a quick console for userspace. Do NOT enable in production kernels. config HVC_DCC bool "ARM JTAG DCC console" depends on ARM || ARM64 select HVC_DRIVER select SERIAL_CORE_CONSOLE help This console uses the JTAG DCC on ARM to create a console under the HVC driver. This console is used through a JTAG only on ARM. If you don't have a JTAG then you probably don't want this option. config HVC_DCC_SERIALIZE_SMP bool "Use DCC only on CPU core 0" depends on SMP && HVC_DCC help This is a DEBUG option to serialize all console input and output to CPU 0. Some external debuggers, do not handle reads/writes from/to DCC on more than one CPU core. Each core has its own DCC device registers, so when a CPU core reads or writes from/to DCC, it only accesses its own DCC device. Since kernel code can run on any CPU core, every time the kernel wants to write to the console, it might write to a different DCC. In SMP mode, external debuggers create multiple windows, and each window shows the DCC output only from that core's DCC. The result is that console output is either lost or scattered across windows. Enable this option only if you are sure that you do not need features like CPU hotplug to work. For example, during early chipset bringups without debug serial console support. If unsure, say N. config HVC_RISCV_SBI bool "RISC-V SBI console support" depends on RISCV_SBI && NONPORTABLE select HVC_DRIVER help This enables support for console output via RISC-V SBI calls, which is normally used only during boot to output printk. This driver conflicts with real console drivers and should not be enabled on systems that directly access the console. If you don't know what do to here, say N. config HVCS tristate "IBM Hypervisor Virtual Console Server support" depends on PPC_PSERIES && HVC_CONSOLE help Partitionable IBM Power5 ppc64 machines allow hosting of firmware virtual consoles from one Linux partition by another Linux partition. This driver allows console data from Linux partitions to be accessed through TTY device interfaces in the device tree of a Linux partition running this driver. To compile this driver as a module, choose M here: the module will be called hvcs. Additionally, this module will depend on arch specific APIs exported from hvcserver.ko which will also be compiled when this driver is built as a module.