xref: /linux/arch/um/drivers/Kconfig (revision beb6c8326eb4e7006c4aa16b0fee3e303d42e685)
19bea1801SChristoph Hellwig# SPDX-License-Identifier: GPL-2.0
29bea1801SChristoph Hellwig
39bea1801SChristoph Hellwigmenu "UML Character Devices"
49bea1801SChristoph Hellwig
59bea1801SChristoph Hellwigconfig STDERR_CONSOLE
69bea1801SChristoph Hellwig	bool "stderr console"
79bea1801SChristoph Hellwig	default y
89bea1801SChristoph Hellwig	help
99bea1801SChristoph Hellwig	  console driver which dumps all printk messages to stderr.
109bea1801SChristoph Hellwig
119bea1801SChristoph Hellwigconfig SSL
129bea1801SChristoph Hellwig	bool "Virtual serial line"
139bea1801SChristoph Hellwig	help
149bea1801SChristoph Hellwig	  The User-Mode Linux environment allows you to create virtual serial
159bea1801SChristoph Hellwig	  lines on the UML that are usually made to show up on the host as
169bea1801SChristoph Hellwig	  ttys or ptys.
179bea1801SChristoph Hellwig
189bea1801SChristoph Hellwig	  See <http://user-mode-linux.sourceforge.net/old/input.html> for more
199bea1801SChristoph Hellwig	  information and command line examples of how to use this facility.
209bea1801SChristoph Hellwig
219bea1801SChristoph Hellwig	  Unless you have a specific reason for disabling this, say Y.
229bea1801SChristoph Hellwig
239bea1801SChristoph Hellwigconfig NULL_CHAN
249bea1801SChristoph Hellwig	bool "null channel support"
259bea1801SChristoph Hellwig	help
269bea1801SChristoph Hellwig	  This option enables support for attaching UML consoles and serial
279bea1801SChristoph Hellwig	  lines to a device similar to /dev/null.  Data written to it disappears
289bea1801SChristoph Hellwig	  and there is never any data to be read.
299bea1801SChristoph Hellwig
309bea1801SChristoph Hellwigconfig PORT_CHAN
319bea1801SChristoph Hellwig	bool "port channel support"
329bea1801SChristoph Hellwig	help
339bea1801SChristoph Hellwig	  This option enables support for attaching UML consoles and serial
349bea1801SChristoph Hellwig	  lines to host portals.  They may be accessed with 'telnet <host>
359bea1801SChristoph Hellwig	  <port number>'.  Any number of consoles and serial lines may be
369bea1801SChristoph Hellwig	  attached to a single portal, although what UML device you get when
379bea1801SChristoph Hellwig	  you telnet to that portal will be unpredictable.
389bea1801SChristoph Hellwig	  It is safe to say 'Y' here.
399bea1801SChristoph Hellwig
409bea1801SChristoph Hellwigconfig PTY_CHAN
419bea1801SChristoph Hellwig	bool "pty channel support"
429bea1801SChristoph Hellwig	help
439bea1801SChristoph Hellwig	  This option enables support for attaching UML consoles and serial
449bea1801SChristoph Hellwig	  lines to host pseudo-terminals.  Access to both traditional
459bea1801SChristoph Hellwig	  pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled
469bea1801SChristoph Hellwig	  with this option.  The assignment of UML devices to host devices
479bea1801SChristoph Hellwig	  will be announced in the kernel message log.
489bea1801SChristoph Hellwig	  It is safe to say 'Y' here.
499bea1801SChristoph Hellwig
509bea1801SChristoph Hellwigconfig TTY_CHAN
519bea1801SChristoph Hellwig	bool "tty channel support"
529bea1801SChristoph Hellwig	help
539bea1801SChristoph Hellwig	  This option enables support for attaching UML consoles and serial
549bea1801SChristoph Hellwig	  lines to host terminals.  Access to both virtual consoles
559bea1801SChristoph Hellwig	  (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and
569bea1801SChristoph Hellwig	  /dev/pts/*) are controlled by this option.
579bea1801SChristoph Hellwig	  It is safe to say 'Y' here.
589bea1801SChristoph Hellwig
599bea1801SChristoph Hellwigconfig XTERM_CHAN
609bea1801SChristoph Hellwig	bool "xterm channel support"
619bea1801SChristoph Hellwig	help
629bea1801SChristoph Hellwig	  This option enables support for attaching UML consoles and serial
639bea1801SChristoph Hellwig	  lines to xterms.  Each UML device so assigned will be brought up in
649bea1801SChristoph Hellwig	  its own xterm.
659bea1801SChristoph Hellwig	  It is safe to say 'Y' here.
669bea1801SChristoph Hellwig
6716aa835aSJohannes Bergconfig XTERM_CHAN_DEFAULT_EMULATOR
6816aa835aSJohannes Berg	string "xterm channel default terminal emulator"
6916aa835aSJohannes Berg	depends on XTERM_CHAN
7016aa835aSJohannes Berg	default "xterm"
7116aa835aSJohannes Berg	help
7216aa835aSJohannes Berg	  This option allows changing the default terminal emulator.
7316aa835aSJohannes Berg
749bea1801SChristoph Hellwigconfig NOCONFIG_CHAN
759bea1801SChristoph Hellwig	bool
769bea1801SChristoph Hellwig	default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN)
779bea1801SChristoph Hellwig
789bea1801SChristoph Hellwigconfig CON_ZERO_CHAN
799bea1801SChristoph Hellwig	string "Default main console channel initialization"
809bea1801SChristoph Hellwig	default "fd:0,fd:1"
819bea1801SChristoph Hellwig	help
829bea1801SChristoph Hellwig	  This is the string describing the channel to which the main console
839bea1801SChristoph Hellwig	  will be attached by default.  This value can be overridden from the
849bea1801SChristoph Hellwig	  command line.  The default value is "fd:0,fd:1", which attaches the
859bea1801SChristoph Hellwig	  main console to stdin and stdout.
869bea1801SChristoph Hellwig	  It is safe to leave this unchanged.
879bea1801SChristoph Hellwig
889bea1801SChristoph Hellwigconfig CON_CHAN
899bea1801SChristoph Hellwig	string "Default console channel initialization"
909bea1801SChristoph Hellwig	default "xterm"
919bea1801SChristoph Hellwig	help
929bea1801SChristoph Hellwig	  This is the string describing the channel to which all consoles
939bea1801SChristoph Hellwig	  except the main console will be attached by default.  This value can
949bea1801SChristoph Hellwig	  be overridden from the command line.  The default value is "xterm",
959bea1801SChristoph Hellwig	  which brings them up in xterms.
969bea1801SChristoph Hellwig	  It is safe to leave this unchanged, although you may wish to change
979bea1801SChristoph Hellwig	  this if you expect the UML that you build to be run in environments
989bea1801SChristoph Hellwig	  which don't have X or xterm available.
999bea1801SChristoph Hellwig
1009bea1801SChristoph Hellwigconfig SSL_CHAN
1019bea1801SChristoph Hellwig	string "Default serial line channel initialization"
1029bea1801SChristoph Hellwig	default "pty"
1039bea1801SChristoph Hellwig	help
1049bea1801SChristoph Hellwig	  This is the string describing the channel to which the serial lines
1059bea1801SChristoph Hellwig	  will be attached by default.  This value can be overridden from the
1069bea1801SChristoph Hellwig	  command line.  The default value is "pty", which attaches them to
1079bea1801SChristoph Hellwig	  traditional pseudo-terminals.
1089bea1801SChristoph Hellwig	  It is safe to leave this unchanged, although you may wish to change
1099bea1801SChristoph Hellwig	  this if you expect the UML that you build to be run in environments
1109bea1801SChristoph Hellwig	  which don't have a set of /dev/pty* devices.
1119bea1801SChristoph Hellwig
1129bea1801SChristoph Hellwigconfig UML_SOUND
1139bea1801SChristoph Hellwig	tristate "Sound support"
114db4bfcbaSRandy Dunlap	depends on SOUND
115db4bfcbaSRandy Dunlap	select SOUND_OSS_CORE
1169bea1801SChristoph Hellwig	help
1179bea1801SChristoph Hellwig	  This option enables UML sound support.  If enabled, it will pull in
118db4bfcbaSRandy Dunlap	  the UML hostaudio relay, which acts as a intermediary
1199bea1801SChristoph Hellwig	  between the host's dsp and mixer devices and the UML sound system.
1209bea1801SChristoph Hellwig	  It is safe to say 'Y' here.
1219bea1801SChristoph Hellwig
1229bea1801SChristoph Hellwigendmenu
1239bea1801SChristoph Hellwig
1249bea1801SChristoph Hellwigmenu "UML Network Devices"
1259bea1801SChristoph Hellwig	depends on NET
1269bea1801SChristoph Hellwig
1279bea1801SChristoph Hellwigconfig UML_NET_VECTOR
1289bea1801SChristoph Hellwig	bool "Vector I/O high performance network devices"
129730586ffSIgnat Korchagin	select MAY_HAVE_RUNTIME_DEPS
1309bea1801SChristoph Hellwig	help
1319bea1801SChristoph Hellwig	  This User-Mode Linux network driver uses multi-message send
1329bea1801SChristoph Hellwig	  and receive functions. The host running the UML guest must have
1339bea1801SChristoph Hellwig	  a linux kernel version above 3.0 and a libc version > 2.13.
134e619e18eSTiwei Bie	  This driver provides tap, raw, gre and l2tpv3 network transports.
135e619e18eSTiwei Bie
136e619e18eSTiwei Bie	  For more information, including explanations of the networking
137e619e18eSTiwei Bie	  and sample configurations, see
138e619e18eSTiwei Bie	  <file:Documentation/virt/uml/user_mode_linux_howto_v2.rst>.
1399bea1801SChristoph Hellwig
1409bea1801SChristoph Hellwigendmenu
1415d38f324SErel Geron
1425d38f324SErel Geronconfig VIRTIO_UML
143bf9f80cfSJohannes Berg	bool "UML driver for virtio devices"
1445d38f324SErel Geron	select VIRTIO
1455d38f324SErel Geron	help
1465d38f324SErel Geron	  This driver provides support for virtio based paravirtual device
1475d38f324SErel Geron	  drivers over vhost-user sockets.
148dde8b58dSJohannes Berg
149dde8b58dSJohannes Bergconfig UML_RTC
150dde8b58dSJohannes Berg	bool "UML RTC driver"
151dde8b58dSJohannes Berg	depends on RTC_CLASS
152dde8b58dSJohannes Berg	# there's no use in this if PM_SLEEP isn't enabled ...
153dde8b58dSJohannes Berg	depends on PM_SLEEP
154dde8b58dSJohannes Berg	help
155dde8b58dSJohannes Berg	  When PM_SLEEP is configured, it may be desirable to wake up using
156dde8b58dSJohannes Berg	  rtcwake, especially in time-travel mode. This driver enables that
157dde8b58dSJohannes Berg	  by providing a fake RTC clock that causes a wakeup at the right
158dde8b58dSJohannes Berg	  time.
15968f5d3f3SJohannes Berg
16024ffa71bSTiwei Bieconfig UML_PCI
16124ffa71bSTiwei Bie	bool
16268f5d3f3SJohannes Berg	select FORCE_PCI
163*c36e5eb9SNam Cao	select IRQ_MSI_LIB
16468f5d3f3SJohannes Berg	select UML_IOMEM_EMULATION
16568f5d3f3SJohannes Berg	select UML_DMA_EMULATION
16668f5d3f3SJohannes Berg	select PCI_MSI
16768f5d3f3SJohannes Berg	select PCI_LOCKLESS_CONFIG
16868f5d3f3SJohannes Berg
16924ffa71bSTiwei Bieconfig UML_PCI_OVER_VIRTIO
17024ffa71bSTiwei Bie	bool "Enable PCI over VIRTIO device simulation"
17124ffa71bSTiwei Bie	# in theory, just VIRTIO is enough, but that causes recursion
17224ffa71bSTiwei Bie	depends on VIRTIO_UML
17324ffa71bSTiwei Bie	select UML_PCI
17424ffa71bSTiwei Bie
17568f5d3f3SJohannes Bergconfig UML_PCI_OVER_VIRTIO_DEVICE_ID
17668f5d3f3SJohannes Berg	int "set the virtio device ID for PCI emulation"
17768f5d3f3SJohannes Berg	default -1
17868f5d3f3SJohannes Berg	depends on UML_PCI_OVER_VIRTIO
17968f5d3f3SJohannes Berg	help
18068f5d3f3SJohannes Berg	  There's no official device ID assigned (yet), set the one you
18168f5d3f3SJohannes Berg	  wish to use for experimentation here. The default of -1 is
18268f5d3f3SJohannes Berg	  not valid and will cause the driver to fail at probe.
183a0e2cb6aSTiwei Bie
184a0e2cb6aSTiwei Bieconfig UML_PCI_OVER_VFIO
185a0e2cb6aSTiwei Bie	bool "Enable VFIO-based PCI passthrough"
186a0e2cb6aSTiwei Bie	select UML_PCI
187a0e2cb6aSTiwei Bie	help
188a0e2cb6aSTiwei Bie	  This driver provides support for VFIO-based PCI passthrough.
189a0e2cb6aSTiwei Bie	  Currently, only MSI-X capable devices are supported, and it
190a0e2cb6aSTiwei Bie	  is assumed that drivers will use MSI-X.
191