xref: /OK3568_Linux_fs/kernel/drivers/tty/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyunconfig TTY
3*4882a593Smuzhiyun	bool "Enable TTY" if EXPERT
4*4882a593Smuzhiyun	default y
5*4882a593Smuzhiyun	help
6*4882a593Smuzhiyun	  Allows you to remove TTY support which can save space, and
7*4882a593Smuzhiyun	  blocks features that require TTY from inclusion in the kernel.
8*4882a593Smuzhiyun	  TTY is required for any text terminals or serial port
9*4882a593Smuzhiyun	  communication. Most users should leave this enabled.
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunif TTY
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunconfig VT
14*4882a593Smuzhiyun	bool "Virtual terminal" if EXPERT
15*4882a593Smuzhiyun	depends on !UML
16*4882a593Smuzhiyun	select INPUT
17*4882a593Smuzhiyun	default y
18*4882a593Smuzhiyun	help
19*4882a593Smuzhiyun	  If you say Y here, you will get support for terminal devices with
20*4882a593Smuzhiyun	  display and keyboard devices. These are called "virtual" because you
21*4882a593Smuzhiyun	  can run several virtual terminals (also called virtual consoles) on
22*4882a593Smuzhiyun	  one physical terminal. This is rather useful, for example one
23*4882a593Smuzhiyun	  virtual terminal can collect system messages and warnings, another
24*4882a593Smuzhiyun	  one can be used for a text-mode user session, and a third could run
25*4882a593Smuzhiyun	  an X session, all in parallel. Switching between virtual terminals
26*4882a593Smuzhiyun	  is done with certain key combinations, usually Alt-<function key>.
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	  The setterm command ("man setterm") can be used to change the
29*4882a593Smuzhiyun	  properties (such as colors or beeping) of a virtual terminal. The
30*4882a593Smuzhiyun	  man page console_codes(4) ("man console_codes") contains the special
31*4882a593Smuzhiyun	  character sequences that can be used to change those properties
32*4882a593Smuzhiyun	  directly. The fonts used on virtual terminals can be changed with
33*4882a593Smuzhiyun	  the setfont ("man setfont") command and the key bindings are defined
34*4882a593Smuzhiyun	  with the loadkeys ("man loadkeys") command.
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	  You need at least one virtual terminal device in order to make use
37*4882a593Smuzhiyun	  of your keyboard and monitor. Therefore, only people configuring an
38*4882a593Smuzhiyun	  embedded system would want to say N here in order to save some
39*4882a593Smuzhiyun	  memory; the only way to log into such a system is then via a serial
40*4882a593Smuzhiyun	  or network connection.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	  If unsure, say Y, or else you won't be able to do much with your new
43*4882a593Smuzhiyun	  shiny Linux system :-)
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunconfig CONSOLE_TRANSLATIONS
46*4882a593Smuzhiyun	depends on VT
47*4882a593Smuzhiyun	default y
48*4882a593Smuzhiyun	bool "Enable character translations in console" if EXPERT
49*4882a593Smuzhiyun	help
50*4882a593Smuzhiyun	  This enables support for font mapping and Unicode translation
51*4882a593Smuzhiyun	  on virtual consoles.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunconfig VT_CONSOLE
54*4882a593Smuzhiyun	bool "Support for console on virtual terminal" if EXPERT
55*4882a593Smuzhiyun	depends on VT
56*4882a593Smuzhiyun	default y
57*4882a593Smuzhiyun	help
58*4882a593Smuzhiyun	  The system console is the device which receives all kernel messages
59*4882a593Smuzhiyun	  and warnings and which allows logins in single user mode. If you
60*4882a593Smuzhiyun	  answer Y here, a virtual terminal (the device used to interact with
61*4882a593Smuzhiyun	  a physical terminal) can be used as system console. This is the most
62*4882a593Smuzhiyun	  common mode of operations, so you should say Y here unless you want
63*4882a593Smuzhiyun	  the kernel messages be output only to a serial port (in which case
64*4882a593Smuzhiyun	  you should say Y to "Console on serial port", below).
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	  If you do say Y here, by default the currently visible virtual
67*4882a593Smuzhiyun	  terminal (/dev/tty0) will be used as system console. You can change
68*4882a593Smuzhiyun	  that with a kernel command line option such as "console=tty3" which
69*4882a593Smuzhiyun	  would use the third virtual terminal as system console. (Try "man
70*4882a593Smuzhiyun	  bootparam" or see the documentation of your boot loader (lilo or
71*4882a593Smuzhiyun	  loadlin) about how to pass options to the kernel at boot time.)
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun	  If unsure, say Y.
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunconfig VT_CONSOLE_SLEEP
76*4882a593Smuzhiyun	def_bool y
77*4882a593Smuzhiyun	depends on VT_CONSOLE && PM_SLEEP
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig HW_CONSOLE
80*4882a593Smuzhiyun	bool
81*4882a593Smuzhiyun	depends on VT && !UML
82*4882a593Smuzhiyun	default y
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunconfig VT_HW_CONSOLE_BINDING
85*4882a593Smuzhiyun	bool "Support for binding and unbinding console drivers"
86*4882a593Smuzhiyun	depends on HW_CONSOLE
87*4882a593Smuzhiyun	help
88*4882a593Smuzhiyun	  The virtual terminal is the device that interacts with the physical
89*4882a593Smuzhiyun	  terminal through console drivers. On these systems, at least one
90*4882a593Smuzhiyun	  console driver is loaded. In other configurations, additional console
91*4882a593Smuzhiyun	  drivers may be enabled, such as the framebuffer console. If more than
92*4882a593Smuzhiyun	  1 console driver is enabled, setting this to 'y' will allow you to
93*4882a593Smuzhiyun	  select the console driver that will serve as the backend for the
94*4882a593Smuzhiyun	  virtual terminals.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	  See <file:Documentation/driver-api/console.rst> for more
97*4882a593Smuzhiyun	  information. For framebuffer console users, please refer to
98*4882a593Smuzhiyun	  <file:Documentation/fb/fbcon.rst>.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunconfig UNIX98_PTYS
101*4882a593Smuzhiyun	bool "Unix98 PTY support" if EXPERT
102*4882a593Smuzhiyun	default y
103*4882a593Smuzhiyun	help
104*4882a593Smuzhiyun	  A pseudo terminal (PTY) is a software device consisting of two
105*4882a593Smuzhiyun	  halves: a master and a slave. The slave device behaves identical to
106*4882a593Smuzhiyun	  a physical terminal; the master device is used by a process to
107*4882a593Smuzhiyun	  read data from and write data to the slave, thereby emulating a
108*4882a593Smuzhiyun	  terminal. Typical programs for the master side are telnet servers
109*4882a593Smuzhiyun	  and xterms.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	  Linux has traditionally used the BSD-like names /dev/ptyxx for
112*4882a593Smuzhiyun	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
113*4882a593Smuzhiyun	  has a number of problems. The GNU C library glibc 2.1 and later,
114*4882a593Smuzhiyun	  however, supports the Unix98 naming standard: in order to acquire a
115*4882a593Smuzhiyun	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
116*4882a593Smuzhiyun	  terminal is then made available to the process and the pseudo
117*4882a593Smuzhiyun	  terminal slave can be accessed as /dev/pts/<number>. What was
118*4882a593Smuzhiyun	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	  All modern Linux systems use the Unix98 ptys.  Say Y unless
121*4882a593Smuzhiyun	  you're on an embedded system and want to conserve memory.
122*4882a593Smuzhiyun
123*4882a593Smuzhiyunconfig LEGACY_PTYS
124*4882a593Smuzhiyun	bool "Legacy (BSD) PTY support"
125*4882a593Smuzhiyun	default y
126*4882a593Smuzhiyun	help
127*4882a593Smuzhiyun	  A pseudo terminal (PTY) is a software device consisting of two
128*4882a593Smuzhiyun	  halves: a master and a slave. The slave device behaves identical to
129*4882a593Smuzhiyun	  a physical terminal; the master device is used by a process to
130*4882a593Smuzhiyun	  read data from and write data to the slave, thereby emulating a
131*4882a593Smuzhiyun	  terminal. Typical programs for the master side are telnet servers
132*4882a593Smuzhiyun	  and xterms.
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	  Linux has traditionally used the BSD-like names /dev/ptyxx
135*4882a593Smuzhiyun	  for masters and /dev/ttyxx for slaves of pseudo
136*4882a593Smuzhiyun	  terminals. This scheme has a number of problems, including
137*4882a593Smuzhiyun	  security.  This option enables these legacy devices; on most
138*4882a593Smuzhiyun	  systems, it is safe to say N.
139*4882a593Smuzhiyun
140*4882a593Smuzhiyunconfig LEGACY_PTY_COUNT
141*4882a593Smuzhiyun	int "Maximum number of legacy PTY in use"
142*4882a593Smuzhiyun	depends on LEGACY_PTYS
143*4882a593Smuzhiyun	range 0 256
144*4882a593Smuzhiyun	default "256"
145*4882a593Smuzhiyun	help
146*4882a593Smuzhiyun	  The maximum number of legacy PTYs that can be used at any one time.
147*4882a593Smuzhiyun	  The default is 256, and should be more than enough.  Embedded
148*4882a593Smuzhiyun	  systems may want to reduce this to save memory.
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun	  When not in use, each legacy PTY occupies 12 bytes on 32-bit
151*4882a593Smuzhiyun	  architectures and 24 bytes on 64-bit architectures.
152*4882a593Smuzhiyun
153*4882a593Smuzhiyunconfig LDISC_AUTOLOAD
154*4882a593Smuzhiyun	bool "Automatically load TTY Line Disciplines"
155*4882a593Smuzhiyun	default y
156*4882a593Smuzhiyun	help
157*4882a593Smuzhiyun	  Historically the kernel has always automatically loaded any
158*4882a593Smuzhiyun	  line discipline that is in a kernel module when a user asks
159*4882a593Smuzhiyun	  for it to be loaded with the TIOCSETD ioctl, or through other
160*4882a593Smuzhiyun	  means.  This is not always the best thing to do on systems
161*4882a593Smuzhiyun	  where you know you will not be using some of the more
162*4882a593Smuzhiyun	  "ancient" line disciplines, so prevent the kernel from doing
163*4882a593Smuzhiyun	  this unless the request is coming from a process with the
164*4882a593Smuzhiyun	  CAP_SYS_MODULE permissions.
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun	  Say 'Y' here if you trust your userspace users to do the right
167*4882a593Smuzhiyun	  thing, or if you have only provided the line disciplines that
168*4882a593Smuzhiyun	  you know you will be using, or if you wish to continue to use
169*4882a593Smuzhiyun	  the traditional method of on-demand loading of these modules
170*4882a593Smuzhiyun	  by any user.
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun	  This functionality can be changed at runtime with the
173*4882a593Smuzhiyun	  dev.tty.ldisc_autoload sysctl, this configuration option will
174*4882a593Smuzhiyun	  only set the default value of this functionality.
175*4882a593Smuzhiyun
176*4882a593Smuzhiyunsource "drivers/tty/serial/Kconfig"
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunconfig SERIAL_NONSTANDARD
179*4882a593Smuzhiyun	bool "Non-standard serial port support"
180*4882a593Smuzhiyun	depends on HAS_IOMEM
181*4882a593Smuzhiyun	help
182*4882a593Smuzhiyun	  Say Y here if you have any non-standard serial boards -- boards
183*4882a593Smuzhiyun	  which aren't supported using the standard "dumb" serial driver.
184*4882a593Smuzhiyun	  This includes intelligent serial boards such as Cyclades,
185*4882a593Smuzhiyun	  Digiboards, etc. These are usually used for systems that need many
186*4882a593Smuzhiyun	  serial ports because they serve many terminals or dial-in
187*4882a593Smuzhiyun	  connections.
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun	  Note that the answer to this question won't directly affect the
190*4882a593Smuzhiyun	  kernel: saying N will just cause the configurator to skip all
191*4882a593Smuzhiyun	  the questions about non-standard serial boards.
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun	  Most people can say N here.
194*4882a593Smuzhiyun
195*4882a593Smuzhiyunconfig ROCKETPORT
196*4882a593Smuzhiyun	tristate "Comtrol RocketPort support"
197*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
198*4882a593Smuzhiyun	help
199*4882a593Smuzhiyun	  This driver supports Comtrol RocketPort and RocketModem PCI boards.
200*4882a593Smuzhiyun	  These boards provide 2, 4, 8, 16, or 32 high-speed serial ports or
201*4882a593Smuzhiyun	  modems.  For information about the RocketPort/RocketModem  boards
202*4882a593Smuzhiyun	  and this driver read <file:Documentation/driver-api/serial/rocket.rst>.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
205*4882a593Smuzhiyun	  module will be called rocket.
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun	  If you want to compile this driver into the kernel, say Y here.  If
208*4882a593Smuzhiyun	  you don't have a Comtrol RocketPort/RocketModem card installed, say N.
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunconfig CYCLADES
211*4882a593Smuzhiyun	tristate "Cyclades async mux support"
212*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && (PCI || ISA)
213*4882a593Smuzhiyun	select FW_LOADER
214*4882a593Smuzhiyun	help
215*4882a593Smuzhiyun	  This driver supports Cyclades Z and Y multiserial boards.
216*4882a593Smuzhiyun	  You would need something like this to connect more than two modems to
217*4882a593Smuzhiyun	  your Linux box, for instance in order to become a dial-in server.
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	  For information about the Cyclades-Z card, read
220*4882a593Smuzhiyun	  <file:Documentation/driver-api/serial/cyclades_z.rst>.
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
223*4882a593Smuzhiyun	  module will be called cyclades.
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	  If you haven't heard about it, it's safe to say N.
226*4882a593Smuzhiyun
227*4882a593Smuzhiyunconfig CYZ_INTR
228*4882a593Smuzhiyun	bool "Cyclades-Z interrupt mode operation"
229*4882a593Smuzhiyun	depends on CYCLADES && PCI
230*4882a593Smuzhiyun	help
231*4882a593Smuzhiyun	  The Cyclades-Z family of multiport cards allows 2 (two) driver op
232*4882a593Smuzhiyun	  modes: polling and interrupt. In polling mode, the driver will check
233*4882a593Smuzhiyun	  the status of the Cyclades-Z ports every certain amount of time
234*4882a593Smuzhiyun	  (which is called polling cycle and is configurable). In interrupt
235*4882a593Smuzhiyun	  mode, it will use an interrupt line (IRQ) in order to check the
236*4882a593Smuzhiyun	  status of the Cyclades-Z ports. The default op mode is polling. If
237*4882a593Smuzhiyun	  unsure, say N.
238*4882a593Smuzhiyun
239*4882a593Smuzhiyunconfig MOXA_INTELLIO
240*4882a593Smuzhiyun	tristate "Moxa Intellio support"
241*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
242*4882a593Smuzhiyun	select FW_LOADER
243*4882a593Smuzhiyun	help
244*4882a593Smuzhiyun	  Say Y here if you have a Moxa Intellio multiport serial card.
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
247*4882a593Smuzhiyun	  module will be called moxa.
248*4882a593Smuzhiyun
249*4882a593Smuzhiyunconfig MOXA_SMARTIO
250*4882a593Smuzhiyun	tristate "Moxa SmartIO support v. 2.0"
251*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && (PCI || EISA || ISA)
252*4882a593Smuzhiyun	help
253*4882a593Smuzhiyun	  Say Y here if you have a Moxa SmartIO multiport serial card and/or
254*4882a593Smuzhiyun	  want to help develop a new version of this driver.
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun	  This is upgraded (1.9.1) driver from original Moxa drivers with
257*4882a593Smuzhiyun	  changes finally resulting in PCI probing.
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun	  This driver can also be built as a module. The module will be called
260*4882a593Smuzhiyun	  mxser. If you want to do that, say M here.
261*4882a593Smuzhiyun
262*4882a593Smuzhiyunconfig SYNCLINK
263*4882a593Smuzhiyun	tristate "Microgate SyncLink card support"
264*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && PCI && ISA_DMA_API
265*4882a593Smuzhiyun	help
266*4882a593Smuzhiyun	  Provides support for the SyncLink ISA and PCI multiprotocol serial
267*4882a593Smuzhiyun	  adapters. These adapters support asynchronous and HDLC bit
268*4882a593Smuzhiyun	  synchronous communication up to 10Mbps (PCI adapter).
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun	  This driver can only be built as a module ( = code which can be
271*4882a593Smuzhiyun	  inserted in and removed from the running kernel whenever you want).
272*4882a593Smuzhiyun	  The module will be called synclink.  If you want to do that, say M
273*4882a593Smuzhiyun	  here.
274*4882a593Smuzhiyun
275*4882a593Smuzhiyunconfig SYNCLINKMP
276*4882a593Smuzhiyun	tristate "SyncLink Multiport support"
277*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && PCI
278*4882a593Smuzhiyun	help
279*4882a593Smuzhiyun	  Enable support for the SyncLink Multiport (2 or 4 ports)
280*4882a593Smuzhiyun	  serial adapter, running asynchronous and HDLC communications up
281*4882a593Smuzhiyun	  to 2.048Mbps. Each ports is independently selectable for
282*4882a593Smuzhiyun	  RS-232, V.35, RS-449, RS-530, and X.21
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun	  This driver may be built as a module ( = code which can be
285*4882a593Smuzhiyun	  inserted in and removed from the running kernel whenever you want).
286*4882a593Smuzhiyun	  The module will be called synclinkmp.  If you want to do that, say M
287*4882a593Smuzhiyun	  here.
288*4882a593Smuzhiyun
289*4882a593Smuzhiyunconfig SYNCLINK_GT
290*4882a593Smuzhiyun	tristate "SyncLink GT/AC support"
291*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && PCI
292*4882a593Smuzhiyun	help
293*4882a593Smuzhiyun	  Support for SyncLink GT and SyncLink AC families of
294*4882a593Smuzhiyun	  synchronous and asynchronous serial adapters
295*4882a593Smuzhiyun	  manufactured by Microgate Systems, Ltd. (www.microgate.com)
296*4882a593Smuzhiyun
297*4882a593Smuzhiyunconfig ISI
298*4882a593Smuzhiyun	tristate "Multi-Tech multiport card support"
299*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD && PCI
300*4882a593Smuzhiyun	select FW_LOADER
301*4882a593Smuzhiyun	help
302*4882a593Smuzhiyun	  This is a driver for the Multi-Tech cards which provide several
303*4882a593Smuzhiyun	  serial ports.  The driver is experimental and can currently only be
304*4882a593Smuzhiyun	  built as a module. The module will be called isicom.
305*4882a593Smuzhiyun	  If you want to do that, choose M here.
306*4882a593Smuzhiyun
307*4882a593Smuzhiyunconfig N_HDLC
308*4882a593Smuzhiyun	tristate "HDLC line discipline support"
309*4882a593Smuzhiyun	depends on SERIAL_NONSTANDARD
310*4882a593Smuzhiyun	help
311*4882a593Smuzhiyun	  Allows synchronous HDLC communications with tty device drivers that
312*4882a593Smuzhiyun	  support synchronous HDLC such as the Microgate SyncLink adapter.
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun	  This driver can be built as a module ( = code which can be
315*4882a593Smuzhiyun	  inserted in and removed from the running kernel whenever you want).
316*4882a593Smuzhiyun	  The module will be called n_hdlc. If you want to do that, say M
317*4882a593Smuzhiyun	  here.
318*4882a593Smuzhiyun
319*4882a593Smuzhiyunconfig PPC_EPAPR_HV_BYTECHAN
320*4882a593Smuzhiyun	bool "ePAPR hypervisor byte channel driver"
321*4882a593Smuzhiyun	depends on PPC
322*4882a593Smuzhiyun	select EPAPR_PARAVIRT
323*4882a593Smuzhiyun	help
324*4882a593Smuzhiyun	  This driver creates /dev entries for each ePAPR hypervisor byte
325*4882a593Smuzhiyun	  channel, thereby allowing applications to communicate with byte
326*4882a593Smuzhiyun	  channels as if they were serial ports.
327*4882a593Smuzhiyun
328*4882a593Smuzhiyunconfig PPC_EARLY_DEBUG_EHV_BC
329*4882a593Smuzhiyun	bool "Early console (udbg) support for ePAPR hypervisors"
330*4882a593Smuzhiyun	depends on PPC_EPAPR_HV_BYTECHAN=y
331*4882a593Smuzhiyun	help
332*4882a593Smuzhiyun	  Select this option to enable early console (a.k.a. "udbg") support
333*4882a593Smuzhiyun	  via an ePAPR byte channel.  You also need to choose the byte channel
334*4882a593Smuzhiyun	  handle below.
335*4882a593Smuzhiyun
336*4882a593Smuzhiyunconfig PPC_EARLY_DEBUG_EHV_BC_HANDLE
337*4882a593Smuzhiyun	int "Byte channel handle for early console (udbg)"
338*4882a593Smuzhiyun	depends on PPC_EARLY_DEBUG_EHV_BC
339*4882a593Smuzhiyun	default 0
340*4882a593Smuzhiyun	help
341*4882a593Smuzhiyun	  If you want early console (udbg) output through a byte channel,
342*4882a593Smuzhiyun	  specify the handle of the byte channel to use.
343*4882a593Smuzhiyun
344*4882a593Smuzhiyun	  For this to work, the byte channel driver must be compiled
345*4882a593Smuzhiyun	  in-kernel, not as a module.
346*4882a593Smuzhiyun
347*4882a593Smuzhiyun	  Note that only one early console driver can be enabled, so don't
348*4882a593Smuzhiyun	  enable any others if you enable this one.
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun	  If the number you specify is not a valid byte channel handle, then
351*4882a593Smuzhiyun	  there simply will be no early console output.  This is true also
352*4882a593Smuzhiyun	  if you don't boot under a hypervisor at all.
353*4882a593Smuzhiyun
354*4882a593Smuzhiyunconfig GOLDFISH_TTY
355*4882a593Smuzhiyun	tristate "Goldfish TTY Driver"
356*4882a593Smuzhiyun	depends on GOLDFISH
357*4882a593Smuzhiyun	select SERIAL_CORE
358*4882a593Smuzhiyun	select SERIAL_CORE_CONSOLE
359*4882a593Smuzhiyun	help
360*4882a593Smuzhiyun	  Console and system TTY driver for the Goldfish virtual platform.
361*4882a593Smuzhiyun
362*4882a593Smuzhiyunconfig GOLDFISH_TTY_EARLY_CONSOLE
363*4882a593Smuzhiyun	bool
364*4882a593Smuzhiyun	default y if GOLDFISH_TTY=y
365*4882a593Smuzhiyun	select SERIAL_EARLYCON
366*4882a593Smuzhiyun
367*4882a593Smuzhiyunconfig N_GSM
368*4882a593Smuzhiyun	tristate "GSM MUX line discipline support (EXPERIMENTAL)"
369*4882a593Smuzhiyun	depends on NET
370*4882a593Smuzhiyun	help
371*4882a593Smuzhiyun	  This line discipline provides support for the GSM MUX protocol and
372*4882a593Smuzhiyun	  presents the mux as a set of 61 individual tty devices.
373*4882a593Smuzhiyun
374*4882a593Smuzhiyunconfig NOZOMI
375*4882a593Smuzhiyun	tristate "HSDPA Broadband Wireless Data Card - Globe Trotter"
376*4882a593Smuzhiyun	depends on PCI
377*4882a593Smuzhiyun	help
378*4882a593Smuzhiyun	  If you have a HSDPA driver Broadband Wireless Data Card -
379*4882a593Smuzhiyun	  Globe Trotter PCMCIA card, say Y here.
380*4882a593Smuzhiyun
381*4882a593Smuzhiyun	  To compile this driver as a module, choose M here, the module
382*4882a593Smuzhiyun	  will be called nozomi.
383*4882a593Smuzhiyun
384*4882a593Smuzhiyunconfig MIPS_EJTAG_FDC_TTY
385*4882a593Smuzhiyun	bool "MIPS EJTAG Fast Debug Channel TTY"
386*4882a593Smuzhiyun	depends on MIPS_CDMM
387*4882a593Smuzhiyun	help
388*4882a593Smuzhiyun	  This enables a TTY and console on the MIPS EJTAG Fast Debug Channels,
389*4882a593Smuzhiyun	  if they are present. This can be useful when working with an EJTAG
390*4882a593Smuzhiyun	  probe which supports it, to get console output and a login prompt via
391*4882a593Smuzhiyun	  EJTAG without needing to connect a serial cable.
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun	  TTY devices are named e.g. ttyFDC3c2 (for FDC channel 2 of the FDC on
394*4882a593Smuzhiyun	  CPU3).
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun	  The console can be enabled with console=fdc1 (for FDC channel 1 on all
397*4882a593Smuzhiyun	  CPUs). Do not use the console unless there is a debug probe attached
398*4882a593Smuzhiyun	  to drain the FDC TX FIFO.
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun	  If unsure, say N.
401*4882a593Smuzhiyun
402*4882a593Smuzhiyunconfig MIPS_EJTAG_FDC_EARLYCON
403*4882a593Smuzhiyun	bool "Early FDC console"
404*4882a593Smuzhiyun	depends on MIPS_EJTAG_FDC_TTY
405*4882a593Smuzhiyun	help
406*4882a593Smuzhiyun	  This registers a console on FDC channel 1 very early during boot (from
407*4882a593Smuzhiyun	  MIPS arch code). This is useful for bring-up and debugging early boot
408*4882a593Smuzhiyun	  issues.
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun	  Do not enable unless there is a debug probe attached to drain the FDC
411*4882a593Smuzhiyun	  TX FIFO.
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun	  If unsure, say N.
414*4882a593Smuzhiyun
415*4882a593Smuzhiyunconfig MIPS_EJTAG_FDC_KGDB
416*4882a593Smuzhiyun	bool "Use KGDB over an FDC channel"
417*4882a593Smuzhiyun	depends on MIPS_EJTAG_FDC_TTY && KGDB
418*4882a593Smuzhiyun	default y
419*4882a593Smuzhiyun	help
420*4882a593Smuzhiyun	  This enables the use of KGDB over an FDC channel, allowing KGDB to be
421*4882a593Smuzhiyun	  used remotely or when a serial port isn't available.
422*4882a593Smuzhiyun
423*4882a593Smuzhiyunconfig MIPS_EJTAG_FDC_KGDB_CHAN
424*4882a593Smuzhiyun	int "KGDB FDC channel"
425*4882a593Smuzhiyun	depends on MIPS_EJTAG_FDC_KGDB
426*4882a593Smuzhiyun	range 2 15
427*4882a593Smuzhiyun	default 3
428*4882a593Smuzhiyun	help
429*4882a593Smuzhiyun	  FDC channel number to use for KGDB.
430*4882a593Smuzhiyun
431*4882a593Smuzhiyunconfig NULL_TTY
432*4882a593Smuzhiyun	tristate "NULL TTY driver"
433*4882a593Smuzhiyun	help
434*4882a593Smuzhiyun	  Say Y here if you want a NULL TTY which simply discards messages.
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun	  This is useful to allow userspace applications which expect a console
437*4882a593Smuzhiyun	  device to work without modifications even when no console is
438*4882a593Smuzhiyun	  available or desired.
439*4882a593Smuzhiyun
440*4882a593Smuzhiyun	  In order to use this driver, you should redirect the console to this
441*4882a593Smuzhiyun	  TTY, or boot the kernel with console=ttynull.
442*4882a593Smuzhiyun
443*4882a593Smuzhiyun	  If unsure, say N.
444*4882a593Smuzhiyun
445*4882a593Smuzhiyunconfig TRACE_ROUTER
446*4882a593Smuzhiyun	tristate "Trace data router for MIPI P1149.7 cJTAG standard"
447*4882a593Smuzhiyun	depends on TRACE_SINK
448*4882a593Smuzhiyun	help
449*4882a593Smuzhiyun	  The trace router uses the Linux tty line discipline framework to
450*4882a593Smuzhiyun	  route trace data coming from a tty port (say UART for example) to
451*4882a593Smuzhiyun	  the trace sink line discipline driver and to another tty port (say
452*4882a593Smuzhiyun	  USB). This is part of a solution for the MIPI P1149.7, compact JTAG,
453*4882a593Smuzhiyun	  standard, which is for debugging mobile devices. The PTI driver in
454*4882a593Smuzhiyun	  drivers/misc/pti.c defines the majority of this MIPI solution.
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun	  You should select this driver if the target kernel is meant for
457*4882a593Smuzhiyun	  a mobile device containing a modem.  Then you will need to select
458*4882a593Smuzhiyun	  "Trace data sink for MIPI P1149.7 cJTAG standard" line discipline
459*4882a593Smuzhiyun	  driver.
460*4882a593Smuzhiyun
461*4882a593Smuzhiyunconfig TRACE_SINK
462*4882a593Smuzhiyun	tristate "Trace data sink for MIPI P1149.7 cJTAG standard"
463*4882a593Smuzhiyun	help
464*4882a593Smuzhiyun	  The trace sink uses the Linux line discipline framework to receive
465*4882a593Smuzhiyun	  trace data coming from the trace router line discipline driver
466*4882a593Smuzhiyun	  to a user-defined tty port target, like USB.
467*4882a593Smuzhiyun	  This is to provide a way to extract modem trace data on
468*4882a593Smuzhiyun	  devices that do not have a PTI HW module, or just need modem
469*4882a593Smuzhiyun	  trace data to come out of a different HW output port.
470*4882a593Smuzhiyun	  This is part of a solution for the P1149.7, compact JTAG, standard.
471*4882a593Smuzhiyun
472*4882a593Smuzhiyun	  If you select this option, you need to select
473*4882a593Smuzhiyun	  "Trace data router for MIPI P1149.7 cJTAG standard".
474*4882a593Smuzhiyun
475*4882a593Smuzhiyunconfig VCC
476*4882a593Smuzhiyun	tristate "Sun Virtual Console Concentrator"
477*4882a593Smuzhiyun	depends on SUN_LDOMS
478*4882a593Smuzhiyun	help
479*4882a593Smuzhiyun	  Support for Sun logical domain consoles.
480*4882a593Smuzhiyun
481*4882a593Smuzhiyunsource "drivers/tty/hvc/Kconfig"
482*4882a593Smuzhiyun
483*4882a593Smuzhiyunendif # TTY
484*4882a593Smuzhiyun
485*4882a593Smuzhiyunsource "drivers/tty/serdev/Kconfig"
486