684e1f8b2755da5c5b2da0ad5e973505aa71a1a7
[linux-3.10.git] / arch / um / Kconfig
1 # UML uses the generic IRQ sugsystem
2 config GENERIC_HARDIRQS
3         bool
4         default y
5
6 config UML
7         bool
8         default y
9
10 # XXX: does UM have a mmu/swap?
11 config MMU
12         bool
13         default y
14
15 mainmenu "Linux/Usermode Kernel Configuration"
16
17 config ISA
18         bool
19
20 config SBUS
21         bool
22
23 config PCI
24         bool
25
26 config UID16
27         bool
28         default y
29
30 config RWSEM_GENERIC_SPINLOCK
31         bool
32         default y
33
34 config GENERIC_CALIBRATE_DELAY
35         bool
36         default y
37
38 # Used in kernel/irq/manage.c and include/linux/irq.h
39 config IRQ_RELEASE_METHOD
40         bool
41         default y
42
43 menu "UML-specific options"
44
45 config MODE_TT
46         bool "Tracing thread support"
47         default y
48         help
49         This option controls whether tracing thread support is compiled
50         into UML.  Normally, this should be set to Y.  If you intend to
51         use only skas mode (and the host has the skas patch applied to it),
52         then it is OK to say N here.
53
54 config STATIC_LINK
55         bool "Force a static link"
56         default n
57         depends on !MODE_TT
58         help
59         If CONFIG_MODE_TT is disabled, then this option gives you the ability
60         to force a static link of UML.  Normally, if only skas mode is built
61         in to UML, it will be linked as a shared binary.  This is inconvenient
62         for use in a chroot jail.  So, if you intend to run UML inside a
63         chroot, and you disable CONFIG_MODE_TT, you probably want to say Y
64         here.
65
66 config MODE_SKAS
67         bool "Separate Kernel Address Space support"
68         default y
69         help
70         This option controls whether skas (separate kernel address space)
71         support is compiled in.  If you have applied the skas patch to the
72         host, then you certainly want to say Y here (and consider saying N
73         to CONFIG_MODE_TT).  Otherwise, it is safe to say Y.  Disabling this
74         option will shrink the UML binary slightly.
75
76 source "arch/um/Kconfig.arch"
77 source "mm/Kconfig"
78
79 config LD_SCRIPT_STATIC
80         bool
81         default y
82         depends on MODE_TT || STATIC_LINK
83
84 config LD_SCRIPT_DYN
85         bool
86         default y
87         depends on !LD_SCRIPT_STATIC
88
89 config NET
90         bool "Networking support"
91         help
92         Unless you really know what you are doing, you should say Y here.
93         The reason is that some programs need kernel networking support even
94         when running on a stand-alone machine that isn't connected to any
95         other computer. If you are upgrading from an older kernel, you
96         should consider updating your networking tools too because changes
97         in the kernel and the tools often go hand in hand. The tools are
98         contained in the package net-tools, the location and version number
99         of which are given in <file:Documentation/Changes>.
100
101         For a general introduction to Linux networking, it is highly
102         recommended to read the NET-HOWTO, available from
103         <http://www.tldp.org/docs.html#howto>.
104
105
106 source "fs/Kconfig.binfmt"
107
108 config HOSTFS
109         tristate "Host filesystem"
110         help
111         While the User-Mode Linux port uses its own root file system for
112         booting and normal file access, this module lets the UML user
113         access files stored on the host.  It does not require any
114         network connection between the Host and UML.  An example use of
115         this might be:
116
117         mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
118
119         where /tmp/fromhost is an empty directory inside UML and
120         /tmp/umlshare is a directory on the host with files the UML user
121         wishes to access.
122
123         For more information, see
124         <http://user-mode-linux.sourceforge.net/hostfs.html>.
125
126         If you'd like to be able to work with files stored on the host,
127         say Y or M here; otherwise say N.
128
129 config HPPFS
130         tristate "HoneyPot ProcFS (EXPERIMENTAL)"
131         help
132         hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
133         entries to be overridden, removed, or fabricated from the host.
134         Its purpose is to allow a UML to appear to be a physical machine
135         by removing or changing anything in /proc which gives away the
136         identity of a UML.
137
138         See <http://user-mode-linux.sf.net/hppfs.html> for more information.
139
140         You only need this if you are setting up a UML honeypot.  Otherwise,
141         it is safe to say 'N' here.
142
143         If you are actively using it, please report any problems, since it's
144         getting fixed. In this moment, it is experimental on 2.6 (it works on
145         2.4).
146
147 config MCONSOLE
148         bool "Management console"
149         default y
150         help
151         The user mode linux management console is a low-level interface to
152         the kernel, somewhat like the i386 SysRq interface.  Since there is
153         a full-blown operating system running under every user mode linux
154         instance, there is much greater flexibility possible than with the
155         SysRq mechanism.
156
157         If you answer 'Y' to this option, to use this feature, you need the
158         mconsole client (called uml_mconsole) which is present in CVS in
159         2.4.5-9um and later (path /tools/mconsole), and is also in the
160         distribution RPM package in 2.4.6 and later.
161
162         It is safe to say 'Y' here.
163
164 config MAGIC_SYSRQ
165         bool "Magic SysRq key"
166         depends on MCONSOLE
167         ---help---
168         If you say Y here, you will have some control over the system even
169         if the system crashes for example during kernel debugging (e.g., you
170         will be able to flush the buffer cache to disk, reboot the system
171         immediately or dump some status information). A key for each of the
172         possible requests is provided.
173
174         This is the feature normally accomplished by pressing a key
175         while holding SysRq (Alt+PrintScreen).
176
177         On UML, this is accomplished by sending a "sysrq" command with
178         mconsole, followed by the letter for the requested command.
179
180         The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
181         unless you really know what this hack does.
182
183 config HOST_2G_2G
184         bool "2G/2G host address space split"
185         default n
186         help
187         This is needed when the host on which you run has a 2G/2G memory
188         split, instead of the customary 3G/1G.
189
190         Note that to enable such a host
191         configuration, which makes sense only in some cases, you need special
192         host patches.
193
194         So, if you do not know what to do here, say 'N'.
195
196 config SMP
197         bool "Symmetric multi-processing support (EXPERIMENTAL)"
198         default n
199         depends on (MODE_TT && EXPERIMENTAL && !SMP_BROKEN) || (BROKEN && SMP_BROKEN)
200         help
201         This option enables UML SMP support.
202         It is NOT related to having a real SMP box. Not directly, at least.
203
204         UML implements virtual SMP by allowing as many processes to run
205         simultaneously on the host as there are virtual processors configured.
206
207         Obviously, if the host is a uniprocessor, those processes will
208         timeshare, but, inside UML, will appear to be running simultaneously.
209         If the host is a multiprocessor, then UML processes may run
210         simultaneously, depending on the host scheduler.
211
212         This, however, is supported only in TT mode. So, if you use the SKAS
213         patch on your host, switching to TT mode and enabling SMP usually gives
214         you worse performances.
215         Also, since the support for SMP has been under-developed, there could
216         be some bugs being exposed by enabling SMP.
217
218         If you don't know what to do, say N.
219
220 config NR_CPUS
221         int "Maximum number of CPUs (2-32)"
222         range 2 32
223         depends on SMP
224         default "32"
225
226 config NEST_LEVEL
227         int "Nesting level"
228         default "0"
229         help
230         This is set to the number of layers of UMLs that this UML will be run
231         in.  Normally, this is zero, meaning that it will run directly on the
232         host.  Setting it to one will build a UML that can run inside a UML
233         that is running on the host.  Generally, if you intend this UML to run
234         inside another UML, set CONFIG_NEST_LEVEL to one more than the host
235         UML.
236
237         Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to
238         greater than one, then the guest UML should have its CONFIG_NEST_LEVEL
239         set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
240         Only change this if you are running nested UMLs.
241
242 config KERNEL_HALF_GIGS
243         int "Kernel address space size (in .5G units)"
244         default "1"
245         help
246         This determines the amount of address space that UML will allocate for
247         its own, measured in half Gigabyte units.  The default is 1.
248         Change this only if you need to boot UML with an unusually large amount
249         of physical memory.
250
251 config HIGHMEM
252         bool "Highmem support"
253         depends on !64BIT
254
255 config KERNEL_STACK_ORDER
256         int "Kernel stack size order"
257         default 2
258         help
259         This option determines the size of UML kernel stacks.  They will
260         be 1 << order pages.  The default is OK unless you're running Valgrind
261         on UML, in which case, set this to 3.
262
263 config UML_REAL_TIME_CLOCK
264         bool "Real-time Clock"
265         default y
266         help
267         This option makes UML time deltas match wall clock deltas.  This should
268         normally be enabled.  The exception would be if you are debugging with
269         UML and spend long times with UML stopped at a breakpoint.  In this
270         case, when UML is restarted, it will call the timer enough times to make
271         up for the time spent at the breakpoint.  This could result in a
272         noticable lag.  If this is a problem, then disable this option.
273
274 endmenu
275
276 source "init/Kconfig"
277
278 source "net/Kconfig"
279
280 source "drivers/base/Kconfig"
281
282 source "arch/um/Kconfig.char"
283
284 source "drivers/block/Kconfig"
285
286 config NETDEVICES
287         bool
288         default NET
289
290 source "arch/um/Kconfig.net"
291
292 source "drivers/net/Kconfig"
293
294 source "fs/Kconfig"
295
296 source "security/Kconfig"
297
298 source "crypto/Kconfig"
299
300 source "lib/Kconfig"
301
302 menu "SCSI support"
303 depends on BROKEN
304
305 config SCSI
306         tristate "SCSI support"
307
308 # This gives us free_dma, which scsi.c wants.
309 config GENERIC_ISA_DMA
310         bool
311         depends on SCSI
312         default y
313
314 source "arch/um/Kconfig.scsi"
315
316 endmenu
317
318 source "drivers/md/Kconfig"
319
320 if BROKEN
321         source "drivers/mtd/Kconfig"
322 endif
323
324 #This is just to shut up some Kconfig warnings, so no prompt.
325 config INPUT
326         bool
327         default n
328
329 source "arch/um/Kconfig.debug"