xref: /kernel/linux/linux-6.6/drivers/tty/Kconfig (revision 62306a36)
162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig TTY
362306a36Sopenharmony_ci	bool "Enable TTY" if EXPERT
462306a36Sopenharmony_ci	default y
562306a36Sopenharmony_ci	help
662306a36Sopenharmony_ci	  Allows you to remove TTY support which can save space, and
762306a36Sopenharmony_ci	  blocks features that require TTY from inclusion in the kernel.
862306a36Sopenharmony_ci	  TTY is required for any text terminals or serial port
962306a36Sopenharmony_ci	  communication. Most users should leave this enabled.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciif TTY
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig VT
1462306a36Sopenharmony_ci	bool "Virtual terminal" if EXPERT
1562306a36Sopenharmony_ci	select INPUT
1662306a36Sopenharmony_ci	default y if !UML
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  If you say Y here, you will get support for terminal devices with
1962306a36Sopenharmony_ci	  display and keyboard devices. These are called "virtual" because you
2062306a36Sopenharmony_ci	  can run several virtual terminals (also called virtual consoles) on
2162306a36Sopenharmony_ci	  one physical terminal. This is rather useful, for example one
2262306a36Sopenharmony_ci	  virtual terminal can collect system messages and warnings, another
2362306a36Sopenharmony_ci	  one can be used for a text-mode user session, and a third could run
2462306a36Sopenharmony_ci	  an X session, all in parallel. Switching between virtual terminals
2562306a36Sopenharmony_ci	  is done with certain key combinations, usually Alt-<function key>.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	  The setterm command ("man setterm") can be used to change the
2862306a36Sopenharmony_ci	  properties (such as colors or beeping) of a virtual terminal. The
2962306a36Sopenharmony_ci	  man page console_codes(4) ("man console_codes") contains the special
3062306a36Sopenharmony_ci	  character sequences that can be used to change those properties
3162306a36Sopenharmony_ci	  directly. The fonts used on virtual terminals can be changed with
3262306a36Sopenharmony_ci	  the setfont ("man setfont") command and the key bindings are defined
3362306a36Sopenharmony_ci	  with the loadkeys ("man loadkeys") command.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	  You need at least one virtual terminal device in order to make use
3662306a36Sopenharmony_ci	  of your keyboard and monitor. Therefore, only people configuring an
3762306a36Sopenharmony_ci	  embedded system would want to say N here in order to save some
3862306a36Sopenharmony_ci	  memory; the only way to log into such a system is then via a serial
3962306a36Sopenharmony_ci	  or network connection.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	  If unsure, say Y, or else you won't be able to do much with your new
4262306a36Sopenharmony_ci	  shiny Linux system :-)
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig CONSOLE_TRANSLATIONS
4562306a36Sopenharmony_ci	depends on VT
4662306a36Sopenharmony_ci	default y
4762306a36Sopenharmony_ci	bool "Enable character translations in console" if EXPERT
4862306a36Sopenharmony_ci	help
4962306a36Sopenharmony_ci	  This enables support for font mapping and Unicode translation
5062306a36Sopenharmony_ci	  on virtual consoles.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig VT_CONSOLE
5362306a36Sopenharmony_ci	bool "Support for console on virtual terminal" if EXPERT
5462306a36Sopenharmony_ci	depends on VT
5562306a36Sopenharmony_ci	default y
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  The system console is the device which receives all kernel messages
5862306a36Sopenharmony_ci	  and warnings and which allows logins in single user mode. If you
5962306a36Sopenharmony_ci	  answer Y here, a virtual terminal (the device used to interact with
6062306a36Sopenharmony_ci	  a physical terminal) can be used as system console. This is the most
6162306a36Sopenharmony_ci	  common mode of operations, so you should say Y here unless you want
6262306a36Sopenharmony_ci	  the kernel messages be output only to a serial port (in which case
6362306a36Sopenharmony_ci	  you should say Y to "Console on serial port", below).
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	  If you do say Y here, by default the currently visible virtual
6662306a36Sopenharmony_ci	  terminal (/dev/tty0) will be used as system console. You can change
6762306a36Sopenharmony_ci	  that with a kernel command line option such as "console=tty3" which
6862306a36Sopenharmony_ci	  would use the third virtual terminal as system console. (Try "man
6962306a36Sopenharmony_ci	  bootparam" or see the documentation of your boot loader (lilo or
7062306a36Sopenharmony_ci	  loadlin) about how to pass options to the kernel at boot time.)
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	  If unsure, say Y.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciconfig VT_CONSOLE_SLEEP
7562306a36Sopenharmony_ci	def_bool y
7662306a36Sopenharmony_ci	depends on VT_CONSOLE && PM_SLEEP
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciconfig HW_CONSOLE
7962306a36Sopenharmony_ci	bool
8062306a36Sopenharmony_ci	depends on VT
8162306a36Sopenharmony_ci	default y
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig VT_HW_CONSOLE_BINDING
8462306a36Sopenharmony_ci	bool "Support for binding and unbinding console drivers"
8562306a36Sopenharmony_ci	depends on HW_CONSOLE
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  The virtual terminal is the device that interacts with the physical
8862306a36Sopenharmony_ci	  terminal through console drivers. On these systems, at least one
8962306a36Sopenharmony_ci	  console driver is loaded. In other configurations, additional console
9062306a36Sopenharmony_ci	  drivers may be enabled, such as the framebuffer console. If more than
9162306a36Sopenharmony_ci	  1 console driver is enabled, setting this to 'y' will allow you to
9262306a36Sopenharmony_ci	  select the console driver that will serve as the backend for the
9362306a36Sopenharmony_ci	  virtual terminals.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	  See <file:Documentation/driver-api/console.rst> for more
9662306a36Sopenharmony_ci	  information. For framebuffer console users, please refer to
9762306a36Sopenharmony_ci	  <file:Documentation/fb/fbcon.rst>.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig UNIX98_PTYS
10062306a36Sopenharmony_ci	bool "Unix98 PTY support" if EXPERT
10162306a36Sopenharmony_ci	default y
10262306a36Sopenharmony_ci	help
10362306a36Sopenharmony_ci	  A pseudo terminal (PTY) is a software device consisting of two
10462306a36Sopenharmony_ci	  halves: a master and a slave. The slave device behaves identical to
10562306a36Sopenharmony_ci	  a physical terminal; the master device is used by a process to
10662306a36Sopenharmony_ci	  read data from and write data to the slave, thereby emulating a
10762306a36Sopenharmony_ci	  terminal. Typical programs for the master side are telnet servers
10862306a36Sopenharmony_ci	  and xterms.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci	  Linux has traditionally used the BSD-like names /dev/ptyxx for
11162306a36Sopenharmony_ci	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
11262306a36Sopenharmony_ci	  has a number of problems. The GNU C library glibc 2.1 and later,
11362306a36Sopenharmony_ci	  however, supports the Unix98 naming standard: in order to acquire a
11462306a36Sopenharmony_ci	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
11562306a36Sopenharmony_ci	  terminal is then made available to the process and the pseudo
11662306a36Sopenharmony_ci	  terminal slave can be accessed as /dev/pts/<number>. What was
11762306a36Sopenharmony_ci	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	  All modern Linux systems use the Unix98 ptys.  Say Y unless
12062306a36Sopenharmony_ci	  you're on an embedded system and want to conserve memory.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig LEGACY_PTYS
12362306a36Sopenharmony_ci	bool "Legacy (BSD) PTY support"
12462306a36Sopenharmony_ci	default y
12562306a36Sopenharmony_ci	help
12662306a36Sopenharmony_ci	  A pseudo terminal (PTY) is a software device consisting of two
12762306a36Sopenharmony_ci	  halves: a master and a slave. The slave device behaves identical to
12862306a36Sopenharmony_ci	  a physical terminal; the master device is used by a process to
12962306a36Sopenharmony_ci	  read data from and write data to the slave, thereby emulating a
13062306a36Sopenharmony_ci	  terminal. Typical programs for the master side are telnet servers
13162306a36Sopenharmony_ci	  and xterms.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	  Linux has traditionally used the BSD-like names /dev/ptyxx
13462306a36Sopenharmony_ci	  for masters and /dev/ttyxx for slaves of pseudo
13562306a36Sopenharmony_ci	  terminals. This scheme has a number of problems, including
13662306a36Sopenharmony_ci	  security.  This option enables these legacy devices; on most
13762306a36Sopenharmony_ci	  systems, it is safe to say N.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig LEGACY_PTY_COUNT
14062306a36Sopenharmony_ci	int "Maximum number of legacy PTY in use"
14162306a36Sopenharmony_ci	depends on LEGACY_PTYS
14262306a36Sopenharmony_ci	range 0 256
14362306a36Sopenharmony_ci	default "256"
14462306a36Sopenharmony_ci	help
14562306a36Sopenharmony_ci	  The maximum number of legacy PTYs that can be used at any one time.
14662306a36Sopenharmony_ci	  The default is 256, and should be more than enough.  Embedded
14762306a36Sopenharmony_ci	  systems may want to reduce this to save memory.
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	  When not in use, each legacy PTY occupies 12 bytes on 32-bit
15062306a36Sopenharmony_ci	  architectures and 24 bytes on 64-bit architectures.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ciconfig LEGACY_TIOCSTI
15362306a36Sopenharmony_ci	bool "Allow legacy TIOCSTI usage"
15462306a36Sopenharmony_ci	default y
15562306a36Sopenharmony_ci	help
15662306a36Sopenharmony_ci	  Historically the kernel has allowed TIOCSTI, which will push
15762306a36Sopenharmony_ci	  characters into a controlling TTY. This continues to be used
15862306a36Sopenharmony_ci	  as a malicious privilege escalation mechanism, and provides no
15962306a36Sopenharmony_ci	  meaningful real-world utility any more. Its use is considered
16062306a36Sopenharmony_ci	  a dangerous legacy operation, and can be disabled on most
16162306a36Sopenharmony_ci	  systems.
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci	  Say Y here only if you have confirmed that your system's
16462306a36Sopenharmony_ci	  userspace depends on this functionality to continue operating
16562306a36Sopenharmony_ci	  normally.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	  Processes which run with CAP_SYS_ADMIN, such as BRLTTY, can
16862306a36Sopenharmony_ci	  use TIOCSTI even when this is set to N.
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci	  This functionality can be changed at runtime with the
17162306a36Sopenharmony_ci	  dev.tty.legacy_tiocsti sysctl. This configuration option sets
17262306a36Sopenharmony_ci	  the default value of the sysctl.
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciconfig LDISC_AUTOLOAD
17562306a36Sopenharmony_ci	bool "Automatically load TTY Line Disciplines"
17662306a36Sopenharmony_ci	default y
17762306a36Sopenharmony_ci	help
17862306a36Sopenharmony_ci	  Historically the kernel has always automatically loaded any
17962306a36Sopenharmony_ci	  line discipline that is in a kernel module when a user asks
18062306a36Sopenharmony_ci	  for it to be loaded with the TIOCSETD ioctl, or through other
18162306a36Sopenharmony_ci	  means.  This is not always the best thing to do on systems
18262306a36Sopenharmony_ci	  where you know you will not be using some of the more
18362306a36Sopenharmony_ci	  "ancient" line disciplines, so prevent the kernel from doing
18462306a36Sopenharmony_ci	  this unless the request is coming from a process with the
18562306a36Sopenharmony_ci	  CAP_SYS_MODULE permissions.
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci	  Say 'Y' here if you trust your userspace users to do the right
18862306a36Sopenharmony_ci	  thing, or if you have only provided the line disciplines that
18962306a36Sopenharmony_ci	  you know you will be using, or if you wish to continue to use
19062306a36Sopenharmony_ci	  the traditional method of on-demand loading of these modules
19162306a36Sopenharmony_ci	  by any user.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci	  This functionality can be changed at runtime with the
19462306a36Sopenharmony_ci	  dev.tty.ldisc_autoload sysctl, this configuration option will
19562306a36Sopenharmony_ci	  only set the default value of this functionality.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_cisource "drivers/tty/serial/Kconfig"
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ciconfig SERIAL_NONSTANDARD
20062306a36Sopenharmony_ci	bool "Non-standard serial port support"
20162306a36Sopenharmony_ci	depends on HAS_IOMEM
20262306a36Sopenharmony_ci	help
20362306a36Sopenharmony_ci	  Say Y here if you have any non-standard serial boards -- boards
20462306a36Sopenharmony_ci	  which aren't supported using the standard "dumb" serial driver.
20562306a36Sopenharmony_ci	  This includes intelligent serial boards such as
20662306a36Sopenharmony_ci	  Digiboards, etc. These are usually used for systems that need many
20762306a36Sopenharmony_ci	  serial ports because they serve many terminals or dial-in
20862306a36Sopenharmony_ci	  connections.
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci	  Note that the answer to this question won't directly affect the
21162306a36Sopenharmony_ci	  kernel: saying N will just cause the configurator to skip all
21262306a36Sopenharmony_ci	  the questions about non-standard serial boards.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci	  Most people can say N here.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ciconfig MOXA_INTELLIO
21762306a36Sopenharmony_ci	tristate "Moxa Intellio support"
21862306a36Sopenharmony_ci	depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
21962306a36Sopenharmony_ci	select FW_LOADER
22062306a36Sopenharmony_ci	help
22162306a36Sopenharmony_ci	  Say Y here if you have a Moxa Intellio multiport serial card.
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
22462306a36Sopenharmony_ci	  module will be called moxa.
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ciconfig MOXA_SMARTIO
22762306a36Sopenharmony_ci	tristate "Moxa SmartIO support v. 2.0"
22862306a36Sopenharmony_ci	depends on SERIAL_NONSTANDARD && PCI
22962306a36Sopenharmony_ci	help
23062306a36Sopenharmony_ci	  Say Y here if you have a Moxa SmartIO multiport serial card and/or
23162306a36Sopenharmony_ci	  want to help develop a new version of this driver.
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci	  This is upgraded (1.9.1) driver from original Moxa drivers with
23462306a36Sopenharmony_ci	  changes finally resulting in PCI probing.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci	  This driver can also be built as a module. The module will be called
23762306a36Sopenharmony_ci	  mxser. If you want to do that, say M here.
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ciconfig SYNCLINK_GT
24062306a36Sopenharmony_ci	tristate "SyncLink GT/AC support"
24162306a36Sopenharmony_ci	depends on SERIAL_NONSTANDARD && PCI
24262306a36Sopenharmony_ci	depends on BROKEN
24362306a36Sopenharmony_ci	help
24462306a36Sopenharmony_ci	  Support for SyncLink GT and SyncLink AC families of
24562306a36Sopenharmony_ci	  synchronous and asynchronous serial adapters
24662306a36Sopenharmony_ci	  manufactured by Microgate Systems, Ltd. (www.microgate.com)
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ciconfig N_HDLC
24962306a36Sopenharmony_ci	tristate "HDLC line discipline support"
25062306a36Sopenharmony_ci	depends on SERIAL_NONSTANDARD
25162306a36Sopenharmony_ci	help
25262306a36Sopenharmony_ci	  Allows synchronous HDLC communications with tty device drivers that
25362306a36Sopenharmony_ci	  support synchronous HDLC such as the Microgate SyncLink adapter.
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci	  This driver can be built as a module ( = code which can be
25662306a36Sopenharmony_ci	  inserted in and removed from the running kernel whenever you want).
25762306a36Sopenharmony_ci	  The module will be called n_hdlc. If you want to do that, say M
25862306a36Sopenharmony_ci	  here.
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ciconfig PPC_EPAPR_HV_BYTECHAN
26162306a36Sopenharmony_ci	bool "ePAPR hypervisor byte channel driver"
26262306a36Sopenharmony_ci	depends on PPC
26362306a36Sopenharmony_ci	select EPAPR_PARAVIRT
26462306a36Sopenharmony_ci	help
26562306a36Sopenharmony_ci	  This driver creates /dev entries for each ePAPR hypervisor byte
26662306a36Sopenharmony_ci	  channel, thereby allowing applications to communicate with byte
26762306a36Sopenharmony_ci	  channels as if they were serial ports.
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ciconfig PPC_EARLY_DEBUG_EHV_BC
27062306a36Sopenharmony_ci	bool "Early console (udbg) support for ePAPR hypervisors"
27162306a36Sopenharmony_ci	depends on PPC_EPAPR_HV_BYTECHAN=y
27262306a36Sopenharmony_ci	help
27362306a36Sopenharmony_ci	  Select this option to enable early console (a.k.a. "udbg") support
27462306a36Sopenharmony_ci	  via an ePAPR byte channel.  You also need to choose the byte channel
27562306a36Sopenharmony_ci	  handle below.
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ciconfig PPC_EARLY_DEBUG_EHV_BC_HANDLE
27862306a36Sopenharmony_ci	int "Byte channel handle for early console (udbg)"
27962306a36Sopenharmony_ci	depends on PPC_EARLY_DEBUG_EHV_BC
28062306a36Sopenharmony_ci	default 0
28162306a36Sopenharmony_ci	help
28262306a36Sopenharmony_ci	  If you want early console (udbg) output through a byte channel,
28362306a36Sopenharmony_ci	  specify the handle of the byte channel to use.
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci	  For this to work, the byte channel driver must be compiled
28662306a36Sopenharmony_ci	  in-kernel, not as a module.
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci	  Note that only one early console driver can be enabled, so don't
28962306a36Sopenharmony_ci	  enable any others if you enable this one.
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci	  If the number you specify is not a valid byte channel handle, then
29262306a36Sopenharmony_ci	  there simply will be no early console output.  This is true also
29362306a36Sopenharmony_ci	  if you don't boot under a hypervisor at all.
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ciconfig GOLDFISH_TTY
29662306a36Sopenharmony_ci	tristate "Goldfish TTY Driver"
29762306a36Sopenharmony_ci	depends on GOLDFISH
29862306a36Sopenharmony_ci	select SERIAL_CORE
29962306a36Sopenharmony_ci	select SERIAL_CORE_CONSOLE
30062306a36Sopenharmony_ci	help
30162306a36Sopenharmony_ci	  Console and system TTY driver for the Goldfish virtual platform.
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ciconfig GOLDFISH_TTY_EARLY_CONSOLE
30462306a36Sopenharmony_ci	bool
30562306a36Sopenharmony_ci	default y if GOLDFISH_TTY=y
30662306a36Sopenharmony_ci	select SERIAL_EARLYCON
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ciconfig IPWIRELESS
30962306a36Sopenharmony_ci	tristate "IPWireless 3G UMTS PCMCIA card support"
31062306a36Sopenharmony_ci	depends on PCMCIA && NETDEVICES
31162306a36Sopenharmony_ci	select PPP
31262306a36Sopenharmony_ci	help
31362306a36Sopenharmony_ci	  This is a driver for 3G UMTS PCMCIA card from IPWireless company. In
31462306a36Sopenharmony_ci	  some countries (for example Czech Republic, T-Mobile ISP) this card
31562306a36Sopenharmony_ci	  is shipped for service called UMTS 4G.
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ciconfig N_GSM
31862306a36Sopenharmony_ci	tristate "GSM MUX line discipline support (EXPERIMENTAL)"
31962306a36Sopenharmony_ci	depends on NET
32062306a36Sopenharmony_ci	help
32162306a36Sopenharmony_ci	  This line discipline provides support for the GSM MUX protocol and
32262306a36Sopenharmony_ci	  presents the mux as a set of 61 individual tty devices.
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ciconfig NOZOMI
32562306a36Sopenharmony_ci	tristate "HSDPA Broadband Wireless Data Card - Globe Trotter"
32662306a36Sopenharmony_ci	depends on PCI
32762306a36Sopenharmony_ci	help
32862306a36Sopenharmony_ci	  If you have a HSDPA driver Broadband Wireless Data Card -
32962306a36Sopenharmony_ci	  Globe Trotter PCMCIA card, say Y here.
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here, the module
33262306a36Sopenharmony_ci	  will be called nozomi.
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ciconfig MIPS_EJTAG_FDC_TTY
33562306a36Sopenharmony_ci	bool "MIPS EJTAG Fast Debug Channel TTY"
33662306a36Sopenharmony_ci	depends on MIPS_CDMM
33762306a36Sopenharmony_ci	help
33862306a36Sopenharmony_ci	  This enables a TTY and console on the MIPS EJTAG Fast Debug Channels,
33962306a36Sopenharmony_ci	  if they are present. This can be useful when working with an EJTAG
34062306a36Sopenharmony_ci	  probe which supports it, to get console output and a login prompt via
34162306a36Sopenharmony_ci	  EJTAG without needing to connect a serial cable.
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci	  TTY devices are named e.g. ttyFDC3c2 (for FDC channel 2 of the FDC on
34462306a36Sopenharmony_ci	  CPU3).
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci	  The console can be enabled with console=fdc1 (for FDC channel 1 on all
34762306a36Sopenharmony_ci	  CPUs). Do not use the console unless there is a debug probe attached
34862306a36Sopenharmony_ci	  to drain the FDC TX FIFO.
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci	  If unsure, say N.
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ciconfig MIPS_EJTAG_FDC_EARLYCON
35362306a36Sopenharmony_ci	bool "Early FDC console"
35462306a36Sopenharmony_ci	depends on MIPS_EJTAG_FDC_TTY
35562306a36Sopenharmony_ci	help
35662306a36Sopenharmony_ci	  This registers a console on FDC channel 1 very early during boot (from
35762306a36Sopenharmony_ci	  MIPS arch code). This is useful for bring-up and debugging early boot
35862306a36Sopenharmony_ci	  issues.
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ci	  Do not enable unless there is a debug probe attached to drain the FDC
36162306a36Sopenharmony_ci	  TX FIFO.
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci	  If unsure, say N.
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_ciconfig MIPS_EJTAG_FDC_KGDB
36662306a36Sopenharmony_ci	bool "Use KGDB over an FDC channel"
36762306a36Sopenharmony_ci	depends on MIPS_EJTAG_FDC_TTY && KGDB
36862306a36Sopenharmony_ci	default y
36962306a36Sopenharmony_ci	help
37062306a36Sopenharmony_ci	  This enables the use of KGDB over an FDC channel, allowing KGDB to be
37162306a36Sopenharmony_ci	  used remotely or when a serial port isn't available.
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ciconfig MIPS_EJTAG_FDC_KGDB_CHAN
37462306a36Sopenharmony_ci	int "KGDB FDC channel"
37562306a36Sopenharmony_ci	depends on MIPS_EJTAG_FDC_KGDB
37662306a36Sopenharmony_ci	range 2 15
37762306a36Sopenharmony_ci	default 3
37862306a36Sopenharmony_ci	help
37962306a36Sopenharmony_ci	  FDC channel number to use for KGDB.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig NULL_TTY
38262306a36Sopenharmony_ci	tristate "NULL TTY driver"
38362306a36Sopenharmony_ci	help
38462306a36Sopenharmony_ci	  Say Y here if you want a NULL TTY which simply discards messages.
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ci	  This is useful to allow userspace applications which expect a console
38762306a36Sopenharmony_ci	  device to work without modifications even when no console is
38862306a36Sopenharmony_ci	  available or desired.
38962306a36Sopenharmony_ci
39062306a36Sopenharmony_ci	  In order to use this driver, you should redirect the console to this
39162306a36Sopenharmony_ci	  TTY, or boot the kernel with console=ttynull.
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci	  If unsure, say N.
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_ciconfig VCC
39662306a36Sopenharmony_ci	tristate "Sun Virtual Console Concentrator"
39762306a36Sopenharmony_ci	depends on SUN_LDOMS
39862306a36Sopenharmony_ci	help
39962306a36Sopenharmony_ci	  Support for Sun logical domain consoles.
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_cisource "drivers/tty/hvc/Kconfig"
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ciconfig RPMSG_TTY
40462306a36Sopenharmony_ci	tristate "RPMSG tty driver"
40562306a36Sopenharmony_ci	depends on RPMSG
40662306a36Sopenharmony_ci	help
40762306a36Sopenharmony_ci	  Say y here to export rpmsg endpoints as tty devices, usually found
40862306a36Sopenharmony_ci	  in /dev/ttyRPMSGx.
40962306a36Sopenharmony_ci	  This makes it possible for user-space programs to send and receive
41062306a36Sopenharmony_ci	  rpmsg messages as a standard tty protocol.
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will be
41362306a36Sopenharmony_ci	  called rpmsg_tty.
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciendif # TTY
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_cisource "drivers/tty/serdev/Kconfig"
418