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