1256694Snp# SPDX-License-Identifier: GPL-2.0
2256694Snp
3256694Snpconfig HVC_DRIVER
4256694Snp	bool
5256694Snp	help
6256694Snp	  Generic "hypervisor virtual console" infrastructure for various
7256694Snp	  hypervisors (pSeries, iSeries, Xen).
8256694Snp	  It will automatically be selected if one of the back-end console drivers
9256694Snp	  is selected.
10256694Snp
11256694Snpconfig HVC_IRQ
12256694Snp	bool
13256694Snp
14256694Snpconfig HVC_CONSOLE
15256694Snp	bool "pSeries Hypervisor Virtual Console support"
16256694Snp	depends on PPC_PSERIES
17256694Snp	select HVC_DRIVER
18256694Snp	select HVC_IRQ
19256694Snp	help
20256694Snp	  pSeries machines when partitioned support a hypervisor virtual
21256694Snp	  console. This driver allows each pSeries partition to have a console
22256694Snp	  which is accessed via the HMC.
23256694Snp
24256694Snpconfig HVC_OLD_HVSI
25256694Snp	bool "Old driver for pSeries serial port (/dev/hvsi*)"
26256694Snp	depends on HVC_CONSOLE
27256694Snp
28256694Snpconfig HVC_OPAL
29256694Snp	bool "OPAL Console support"
30256694Snp	depends on PPC_POWERNV
31256694Snp	select HVC_DRIVER
32256694Snp	select HVC_IRQ
33256694Snp	default y
34256694Snp	help
35256694Snp	  PowerNV machines running under OPAL need that driver to get a console
36256694Snp
37256694Snpconfig HVC_RTAS
38256694Snp	bool "IBM RTAS Console support"
39256694Snp	depends on PPC_RTAS
40256694Snp	select HVC_DRIVER
41256694Snp	help
42256694Snp	  IBM Console device driver which makes use of RTAS
43256694Snp
44256694Snpconfig HVC_IUCV
45256694Snp	bool "z/VM IUCV Hypervisor console support (VM only)"
46256694Snp	depends on S390 && NET
47256694Snp	select HVC_DRIVER
48256694Snp	select IUCV
49256694Snp	default y
50256694Snp	help
51256694Snp	  This driver provides a Hypervisor console (HVC) back-end to access
52256694Snp	  a Linux (console) terminal via a z/VM IUCV communication path.
53256694Snp
54256694Snpconfig HVC_XEN
55256694Snp	bool "Xen Hypervisor Console support"
56256694Snp	depends on XEN
57256694Snp	select HVC_DRIVER
58256694Snp	select HVC_IRQ
59256694Snp	default y
60256694Snp	help
61256694Snp	  Xen virtual console device driver
62256694Snp
63256694Snpconfig HVC_XEN_FRONTEND
64256694Snp	bool "Xen Hypervisor Multiple Consoles support"
65256694Snp	depends on HVC_XEN
66256694Snp	select XEN_XENBUS_FRONTEND
67256694Snp	default y
68256694Snp	help
69256694Snp	  Xen driver for secondary virtual consoles
70256694Snp
71256694Snpconfig HVC_UDBG
72256694Snp	bool "udbg based fake hypervisor console"
73256694Snp	depends on PPC
74256694Snp	select HVC_DRIVER
75256694Snp	help
76256694Snp	  This is meant to be used during HW bring up or debugging when
77256694Snp	  no other console mechanism exist but udbg, to get you a quick
78256694Snp	  console for userspace. Do NOT enable in production kernels.
79256694Snp
80256694Snpconfig HVC_DCC
81256694Snp	bool "ARM JTAG DCC console"
82256694Snp	depends on ARM || ARM64
83256694Snp	select HVC_DRIVER
84256694Snp	select SERIAL_CORE_CONSOLE
85256694Snp	help
86256694Snp	  This console uses the JTAG DCC on ARM to create a console under the HVC
87256694Snp	  driver. This console is used through a JTAG only on ARM. If you don't have
88256694Snp	  a JTAG then you probably don't want this option.
89256694Snp
90256694Snpconfig HVC_DCC_SERIALIZE_SMP
91256694Snp	bool "Use DCC only on CPU core 0"
92256694Snp	depends on SMP && HVC_DCC
93256694Snp	help
94256694Snp	  This is a DEBUG option to serialize all console input and output to CPU 0.
95256694Snp	  Some external debuggers, do not handle reads/writes from/to DCC on more
96256694Snp	  than one CPU core. Each core has its own DCC device registers, so when a
97256694Snp	  CPU core reads or writes from/to DCC, it only accesses its own DCC device.
98256694Snp	  Since kernel code can run on any CPU core, every time the kernel wants to
99256694Snp	  write to the console, it might write to a different DCC.
100256694Snp
101256694Snp	  In SMP mode, external debuggers create multiple windows, and each window
102256694Snp	  shows the DCC output only from that core's DCC. The result is that
103256694Snp	  console output is either lost or scattered across windows.
104256694Snp
105256694Snp	  Enable this option only if you are sure that you do not need features like
106256694Snp	  CPU hotplug to work. For example, during early chipset bringups without
107256694Snp	  debug serial console support. If unsure, say N.
108256694Snp
109256694Snpconfig HVC_RISCV_SBI
110256694Snp	bool "RISC-V SBI console support"
111256694Snp	depends on RISCV_SBI && NONPORTABLE
112256694Snp	select HVC_DRIVER
113256694Snp	help
114256694Snp	  This enables support for console output via RISC-V SBI calls, which
115256694Snp	  is normally used only during boot to output printk.  This driver
116256694Snp	  conflicts with real console drivers and should not be enabled on
117256694Snp	  systems that directly access the console.
118256694Snp
119256694Snp	  If you don't know what do to here, say N.
120256694Snp
121256694Snpconfig HVCS
122256694Snp	tristate "IBM Hypervisor Virtual Console Server support"
123256694Snp	depends on PPC_PSERIES && HVC_CONSOLE
124256694Snp	help
125256694Snp	  Partitionable IBM Power5 ppc64 machines allow hosting of
126256694Snp	  firmware virtual consoles from one Linux partition by
127256694Snp	  another Linux partition.  This driver allows console data
128256694Snp	  from Linux partitions to be accessed through TTY device
129256694Snp	  interfaces in the device tree of a Linux partition running
130256694Snp	  this driver.
131256694Snp
132256694Snp	  To compile this driver as a module, choose M here: the
133256694Snp	  module will be called hvcs.  Additionally, this module
134256694Snp	  will depend on arch specific APIs exported from hvcserver.ko
135256694Snp	  which will also be compiled when this driver is built as a
136256694Snp	  module.
137256694Snp