xref: /openbmc/linux/arch/um/Kconfig (revision 0cabf991)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "UML-specific options"
4
5config UML
6	bool
7	default y
8	select ARCH_HAS_KCOV
9	select ARCH_NO_PREEMPT
10	select HAVE_ARCH_AUDITSYSCALL
11	select HAVE_ARCH_SECCOMP_FILTER
12	select HAVE_ASM_MODVERSIONS
13	select HAVE_UID16
14	select HAVE_FUTEX_CMPXCHG if FUTEX
15	select HAVE_DEBUG_KMEMLEAK
16	select HAVE_DEBUG_BUGVERBOSE
17	select GENERIC_IRQ_SHOW
18	select GENERIC_CPU_DEVICES
19	select GENERIC_CLOCKEVENTS
20	select HAVE_GCC_PLUGINS
21	select TTY # Needed for line.c
22
23config MMU
24	bool
25	default y
26
27config NO_IOMEM
28	def_bool y
29
30config ISA
31	bool
32
33config SBUS
34	bool
35
36config TRACE_IRQFLAGS_SUPPORT
37	bool
38	default y
39
40config LOCKDEP_SUPPORT
41	bool
42	default y
43
44config STACKTRACE_SUPPORT
45	bool
46	default y
47	select STACKTRACE
48
49config GENERIC_CALIBRATE_DELAY
50	bool
51	default y
52
53config HZ
54	int
55	default 100
56
57config NR_CPUS
58	int
59	range 1 1
60	default 1
61
62source "arch/$(HEADER_ARCH)/um/Kconfig"
63
64config FORBID_STATIC_LINK
65	bool
66
67config STATIC_LINK
68	bool "Force a static link"
69	depends on !FORBID_STATIC_LINK
70	help
71	  This option gives you the ability to force a static link of UML.
72	  Normally, UML is linked as a shared binary.  This is inconvenient for
73	  use in a chroot jail.  So, if you intend to run UML inside a chroot,
74	  you probably want to say Y here.
75	  Additionally, this option enables using higher memory spaces (up to
76	  2.75G) for UML.
77
78	  NOTE: This option is incompatible with some networking features which
79	  depend on features that require being dynamically loaded (like NSS).
80
81config LD_SCRIPT_STATIC
82	bool
83	default y
84	depends on STATIC_LINK
85
86config LD_SCRIPT_DYN
87	bool
88	default y
89	depends on !LD_SCRIPT_STATIC
90	select MODULE_REL_CRCS if MODVERSIONS
91
92config HOSTFS
93	tristate "Host filesystem"
94	help
95	  While the User-Mode Linux port uses its own root file system for
96	  booting and normal file access, this module lets the UML user
97	  access files stored on the host.  It does not require any
98	  network connection between the Host and UML.  An example use of
99	  this might be:
100
101	  mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
102
103	  where /tmp/fromhost is an empty directory inside UML and
104	  /tmp/umlshare is a directory on the host with files the UML user
105	  wishes to access.
106
107	  For more information, see
108	  <http://user-mode-linux.sourceforge.net/hostfs.html>.
109
110	  If you'd like to be able to work with files stored on the host,
111	  say Y or M here; otherwise say N.
112
113config MCONSOLE
114	bool "Management console"
115	depends on PROC_FS
116	default y
117	help
118	  The user mode linux management console is a low-level interface to
119	  the kernel, somewhat like the i386 SysRq interface.  Since there is
120	  a full-blown operating system running under every user mode linux
121	  instance, there is much greater flexibility possible than with the
122	  SysRq mechanism.
123
124	  If you answer 'Y' to this option, to use this feature, you need the
125	  mconsole client (called uml_mconsole) which is present in CVS in
126	  2.4.5-9um and later (path /tools/mconsole), and is also in the
127	  distribution RPM package in 2.4.6 and later.
128
129	  It is safe to say 'Y' here.
130
131config MAGIC_SYSRQ
132	bool "Magic SysRq key"
133	depends on MCONSOLE
134	help
135	  If you say Y here, you will have some control over the system even
136	  if the system crashes for example during kernel debugging (e.g., you
137	  will be able to flush the buffer cache to disk, reboot the system
138	  immediately or dump some status information). A key for each of the
139	  possible requests is provided.
140
141	  This is the feature normally accomplished by pressing a key
142	  while holding SysRq (Alt+PrintScreen).
143
144	  On UML, this is accomplished by sending a "sysrq" command with
145	  mconsole, followed by the letter for the requested command.
146
147	  The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y
148	  unless you really know what this hack does.
149
150config KERNEL_STACK_ORDER
151	int "Kernel stack size order"
152	default 2 if 64BIT
153	range 2 10 if 64BIT
154	default 1 if !64BIT
155	help
156	  This option determines the size of UML kernel stacks.  They will
157	  be 1 << order pages.  The default is OK unless you're running Valgrind
158	  on UML, in which case, set this to 3.
159	  It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on
160	  older (pre-2017) CPUs. It is not recommended on newer CPUs due to the
161	  increase in the size of the state which needs to be saved when handling
162	  signals.
163
164config MMAPPER
165	tristate "iomem emulation driver"
166	help
167	  This driver allows a host file to be used as emulated IO memory inside
168	  UML.
169
170config NO_DMA
171	def_bool y
172
173config PGTABLE_LEVELS
174	int
175	default 3 if 3_LEVEL_PGTABLES
176	default 2
177
178config SECCOMP
179	def_bool y
180	prompt "Enable seccomp to safely compute untrusted bytecode"
181	help
182	  This kernel feature is useful for number crunching applications
183	  that may need to compute untrusted bytecode during their
184	  execution. By using pipes or other transports made available to
185	  the process as file descriptors supporting the read/write
186	  syscalls, it's possible to isolate those applications in
187	  their own address space using seccomp. Once seccomp is
188	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
189	  and the task is only allowed to execute a few safe syscalls
190	  defined by each seccomp mode.
191
192	  If unsure, say Y.
193
194config UML_TIME_TRAVEL_SUPPORT
195	bool
196	prompt "Support time-travel mode (e.g. for test execution)"
197	# inf-cpu mode is incompatible with the benchmarking
198	depends on !RAID6_PQ_BENCHMARK
199	depends on !SMP
200	help
201	  Enable this option to support time travel inside the UML instance.
202
203	  After enabling this option, two modes are accessible at runtime
204	  (selected by the kernel command line), see the kernel's command-
205	  line help for more details.
206
207	  It is safe to say Y, but you probably don't need this.
208
209endmenu
210
211source "arch/um/drivers/Kconfig"
212