linux/drivers/tty/hvc/Kconfig

# 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.