1# SPDX-License-Identifier: GPL-2.0
2
3config HVC_DRIVER
4	bool
5	help
6	  Generic "hypervisor virtual console" infrastructure for various
7	  hypervisors (pSeries, iSeries, Xen).
8	  It will automatically be selected if one of the back-end console drivers
9	  is selected.
10
11config HVC_IRQ
12	bool
13
14config HVC_CONSOLE
15	bool "pSeries Hypervisor Virtual Console support"
16	depends on PPC_PSERIES
17	select HVC_DRIVER
18	select HVC_IRQ
19	help
20	  pSeries machines when partitioned support a hypervisor virtual
21	  console. This driver allows each pSeries partition to have a console
22	  which is accessed via the HMC.
23
24config HVC_OLD_HVSI
25	bool "Old driver for pSeries serial port (/dev/hvsi*)"
26	depends on HVC_CONSOLE
27
28config HVC_OPAL
29	bool "OPAL Console support"
30	depends on PPC_POWERNV
31	select HVC_DRIVER
32	select HVC_IRQ
33	default y
34	help
35	  PowerNV machines running under OPAL need that driver to get a console
36
37config HVC_RTAS
38	bool "IBM RTAS Console support"
39	depends on PPC_RTAS
40	select HVC_DRIVER
41	help
42	  IBM Console device driver which makes use of RTAS
43
44config HVC_IUCV
45	bool "z/VM IUCV Hypervisor console support (VM only)"
46	depends on S390 && NET
47	select HVC_DRIVER
48	select IUCV
49	default y
50	help
51	  This driver provides a Hypervisor console (HVC) back-end to access
52	  a Linux (console) terminal via a z/VM IUCV communication path.
53
54config HVC_XEN
55	bool "Xen Hypervisor Console support"
56	depends on XEN
57	select HVC_DRIVER
58	select HVC_IRQ
59	default y
60	help
61	  Xen virtual console device driver
62
63config HVC_XEN_FRONTEND
64	bool "Xen Hypervisor Multiple Consoles support"
65	depends on HVC_XEN
66	select XEN_XENBUS_FRONTEND
67	default y
68	help
69	  Xen driver for secondary virtual consoles
70
71config HVC_UDBG
72	bool "udbg based fake hypervisor console"
73	depends on PPC
74	select HVC_DRIVER
75	help
76	  This is meant to be used during HW bring up or debugging when
77	  no other console mechanism exist but udbg, to get you a quick
78	  console for userspace. Do NOT enable in production kernels.
79
80config HVC_DCC
81	bool "ARM JTAG DCC console"
82	depends on ARM || ARM64
83	select HVC_DRIVER
84	select SERIAL_CORE_CONSOLE
85	help
86	  This console uses the JTAG DCC on ARM to create a console under the HVC
87	  driver. This console is used through a JTAG only on ARM. If you don't have
88	  a JTAG then you probably don't want this option.
89
90config HVC_DCC_SERIALIZE_SMP
91	bool "Use DCC only on CPU core 0"
92	depends on SMP && HVC_DCC
93	help
94	  This is a DEBUG option to serialize all console input and output to CPU 0.
95	  Some external debuggers, do not handle reads/writes from/to DCC on more
96	  than one CPU core. Each core has its own DCC device registers, so when a
97	  CPU core reads or writes from/to DCC, it only accesses its own DCC device.
98	  Since kernel code can run on any CPU core, every time the kernel wants to
99	  write to the console, it might write to a different DCC.
100
101	  In SMP mode, external debuggers create multiple windows, and each window
102	  shows the DCC output only from that core's DCC. The result is that
103	  console output is either lost or scattered across windows.
104
105	  Enable this option only if you are sure that you do not need features like
106	  CPU hotplug to work. For example, during early chipset bringups without
107	  debug serial console support. If unsure, say N.
108
109config HVC_RISCV_SBI
110	bool "RISC-V SBI console support"
111	depends on RISCV_SBI_V01
112	select HVC_DRIVER
113	help
114	  This enables support for console output via RISC-V SBI calls, which
115	  is normally used only during boot to output printk.
116
117	  If you don't know what do to here, say Y.
118
119config HVCS
120	tristate "IBM Hypervisor Virtual Console Server support"
121	depends on PPC_PSERIES && HVC_CONSOLE
122	help
123	  Partitionable IBM Power5 ppc64 machines allow hosting of
124	  firmware virtual consoles from one Linux partition by
125	  another Linux partition.  This driver allows console data
126	  from Linux partitions to be accessed through TTY device
127	  interfaces in the device tree of a Linux partition running
128	  this driver.
129
130	  To compile this driver as a module, choose M here: the
131	  module will be called hvcs.  Additionally, this module
132	  will depend on arch specific APIs exported from hvcserver.ko
133	  which will also be compiled when this driver is built as a
134	  module.
135