162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciconfig HVC_DRIVER
462306a36Sopenharmony_ci	bool
562306a36Sopenharmony_ci	help
662306a36Sopenharmony_ci	  Generic "hypervisor virtual console" infrastructure for various
762306a36Sopenharmony_ci	  hypervisors (pSeries, iSeries, Xen).
862306a36Sopenharmony_ci	  It will automatically be selected if one of the back-end console drivers
962306a36Sopenharmony_ci	  is selected.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig HVC_IRQ
1262306a36Sopenharmony_ci	bool
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig HVC_CONSOLE
1562306a36Sopenharmony_ci	bool "pSeries Hypervisor Virtual Console support"
1662306a36Sopenharmony_ci	depends on PPC_PSERIES
1762306a36Sopenharmony_ci	select HVC_DRIVER
1862306a36Sopenharmony_ci	select HVC_IRQ
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  pSeries machines when partitioned support a hypervisor virtual
2162306a36Sopenharmony_ci	  console. This driver allows each pSeries partition to have a console
2262306a36Sopenharmony_ci	  which is accessed via the HMC.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig HVC_OLD_HVSI
2562306a36Sopenharmony_ci	bool "Old driver for pSeries serial port (/dev/hvsi*)"
2662306a36Sopenharmony_ci	depends on HVC_CONSOLE
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciconfig HVC_OPAL
2962306a36Sopenharmony_ci	bool "OPAL Console support"
3062306a36Sopenharmony_ci	depends on PPC_POWERNV
3162306a36Sopenharmony_ci	select HVC_DRIVER
3262306a36Sopenharmony_ci	select HVC_IRQ
3362306a36Sopenharmony_ci	default y
3462306a36Sopenharmony_ci	help
3562306a36Sopenharmony_ci	  PowerNV machines running under OPAL need that driver to get a console
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig HVC_RTAS
3862306a36Sopenharmony_ci	bool "IBM RTAS Console support"
3962306a36Sopenharmony_ci	depends on PPC_RTAS
4062306a36Sopenharmony_ci	select HVC_DRIVER
4162306a36Sopenharmony_ci	help
4262306a36Sopenharmony_ci	  IBM Console device driver which makes use of RTAS
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig HVC_IUCV
4562306a36Sopenharmony_ci	bool "z/VM IUCV Hypervisor console support (VM only)"
4662306a36Sopenharmony_ci	depends on S390 && NET
4762306a36Sopenharmony_ci	select HVC_DRIVER
4862306a36Sopenharmony_ci	select IUCV
4962306a36Sopenharmony_ci	default y
5062306a36Sopenharmony_ci	help
5162306a36Sopenharmony_ci	  This driver provides a Hypervisor console (HVC) back-end to access
5262306a36Sopenharmony_ci	  a Linux (console) terminal via a z/VM IUCV communication path.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig HVC_XEN
5562306a36Sopenharmony_ci	bool "Xen Hypervisor Console support"
5662306a36Sopenharmony_ci	depends on XEN
5762306a36Sopenharmony_ci	select HVC_DRIVER
5862306a36Sopenharmony_ci	select HVC_IRQ
5962306a36Sopenharmony_ci	default y
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  Xen virtual console device driver
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig HVC_XEN_FRONTEND
6462306a36Sopenharmony_ci	bool "Xen Hypervisor Multiple Consoles support"
6562306a36Sopenharmony_ci	depends on HVC_XEN
6662306a36Sopenharmony_ci	select XEN_XENBUS_FRONTEND
6762306a36Sopenharmony_ci	default y
6862306a36Sopenharmony_ci	help
6962306a36Sopenharmony_ci	  Xen driver for secondary virtual consoles
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig HVC_UDBG
7262306a36Sopenharmony_ci	bool "udbg based fake hypervisor console"
7362306a36Sopenharmony_ci	depends on PPC
7462306a36Sopenharmony_ci	select HVC_DRIVER
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  This is meant to be used during HW bring up or debugging when
7762306a36Sopenharmony_ci	  no other console mechanism exist but udbg, to get you a quick
7862306a36Sopenharmony_ci	  console for userspace. Do NOT enable in production kernels.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciconfig HVC_DCC
8162306a36Sopenharmony_ci	bool "ARM JTAG DCC console"
8262306a36Sopenharmony_ci	depends on ARM || ARM64
8362306a36Sopenharmony_ci	select HVC_DRIVER
8462306a36Sopenharmony_ci	select SERIAL_CORE_CONSOLE
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  This console uses the JTAG DCC on ARM to create a console under the HVC
8762306a36Sopenharmony_ci	  driver. This console is used through a JTAG only on ARM. If you don't have
8862306a36Sopenharmony_ci	  a JTAG then you probably don't want this option.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig HVC_DCC_SERIALIZE_SMP
9162306a36Sopenharmony_ci	bool "Use DCC only on CPU core 0"
9262306a36Sopenharmony_ci	depends on SMP && HVC_DCC
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  This is a DEBUG option to serialize all console input and output to CPU 0.
9562306a36Sopenharmony_ci	  Some external debuggers, do not handle reads/writes from/to DCC on more
9662306a36Sopenharmony_ci	  than one CPU core. Each core has its own DCC device registers, so when a
9762306a36Sopenharmony_ci	  CPU core reads or writes from/to DCC, it only accesses its own DCC device.
9862306a36Sopenharmony_ci	  Since kernel code can run on any CPU core, every time the kernel wants to
9962306a36Sopenharmony_ci	  write to the console, it might write to a different DCC.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci	  In SMP mode, external debuggers create multiple windows, and each window
10262306a36Sopenharmony_ci	  shows the DCC output only from that core's DCC. The result is that
10362306a36Sopenharmony_ci	  console output is either lost or scattered across windows.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	  Enable this option only if you are sure that you do not need features like
10662306a36Sopenharmony_ci	  CPU hotplug to work. For example, during early chipset bringups without
10762306a36Sopenharmony_ci	  debug serial console support. If unsure, say N.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig HVC_RISCV_SBI
11062306a36Sopenharmony_ci	bool "RISC-V SBI console support"
11162306a36Sopenharmony_ci	depends on RISCV_SBI_V01
11262306a36Sopenharmony_ci	select HVC_DRIVER
11362306a36Sopenharmony_ci	help
11462306a36Sopenharmony_ci	  This enables support for console output via RISC-V SBI calls, which
11562306a36Sopenharmony_ci	  is normally used only during boot to output printk.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	  If you don't know what do to here, say Y.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciconfig HVCS
12062306a36Sopenharmony_ci	tristate "IBM Hypervisor Virtual Console Server support"
12162306a36Sopenharmony_ci	depends on PPC_PSERIES && HVC_CONSOLE
12262306a36Sopenharmony_ci	help
12362306a36Sopenharmony_ci	  Partitionable IBM Power5 ppc64 machines allow hosting of
12462306a36Sopenharmony_ci	  firmware virtual consoles from one Linux partition by
12562306a36Sopenharmony_ci	  another Linux partition.  This driver allows console data
12662306a36Sopenharmony_ci	  from Linux partitions to be accessed through TTY device
12762306a36Sopenharmony_ci	  interfaces in the device tree of a Linux partition running
12862306a36Sopenharmony_ci	  this driver.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
13162306a36Sopenharmony_ci	  module will be called hvcs.  Additionally, this module
13262306a36Sopenharmony_ci	  will depend on arch specific APIs exported from hvcserver.ko
13362306a36Sopenharmony_ci	  which will also be compiled when this driver is built as a
13462306a36Sopenharmony_ci	  module.
135