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