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