xref: /openbmc/linux/arch/s390/Kconfig (revision 1da177e4)
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6config MMU
7	bool
8	default y
9
10config RWSEM_GENERIC_SPINLOCK
11	bool
12
13config RWSEM_XCHGADD_ALGORITHM
14	bool
15	default y
16
17config GENERIC_CALIBRATE_DELAY
18	bool
19	default y
20
21config GENERIC_BUST_SPINLOCK
22	bool
23
24mainmenu "Linux Kernel Configuration"
25
26config ARCH_S390
27	bool
28	default y
29
30config UID16
31	bool
32	default y
33	depends on ARCH_S390X = 'n'
34
35source "init/Kconfig"
36
37menu "Base setup"
38
39comment "Processor type and features"
40
41config ARCH_S390X
42	bool "64 bit kernel"
43	help
44	  Select this option if you have a 64 bit IBM zSeries machine
45	  and want to use the 64 bit addressing mode.
46
47config 64BIT
48	def_bool ARCH_S390X
49
50config ARCH_S390_31
51	bool
52	depends on ARCH_S390X = 'n'
53	default y
54
55config SMP
56	bool "Symmetric multi-processing support"
57	---help---
58	  This enables support for systems with more than one CPU. If you have
59	  a system with only one CPU, like most personal computers, say N. If
60	  you have a system with more than one CPU, say Y.
61
62	  If you say N here, the kernel will run on single and multiprocessor
63	  machines, but will use only one CPU of a multiprocessor machine. If
64	  you say Y here, the kernel will run on many, but not all,
65	  singleprocessor machines. On a singleprocessor machine, the kernel
66	  will run faster if you say N here.
67
68	  See also the <file:Documentation/smp.txt> and the SMP-HOWTO
69	  available at <http://www.tldp.org/docs.html#howto>.
70
71	  Even if you don't know what to do here, say Y.
72
73config NR_CPUS
74	int "Maximum number of CPUs (2-64)"
75	range 2 64
76	depends on SMP
77	default "32"
78	help
79	  This allows you to specify the maximum number of CPUs which this
80	  kernel will support.  The maximum supported value is 64 and the
81	  minimum value which makes sense is 2.
82
83	  This is purely to save memory - each supported CPU adds
84	  approximately sixteen kilobytes to the kernel image.
85
86config HOTPLUG_CPU
87	bool "Support for hot-pluggable CPUs"
88	depends on SMP
89	select HOTPLUG
90	default n
91	help
92	  Say Y here to be able to turn CPUs off and on. CPUs
93	  can be controlled through /sys/devices/system/cpu/cpu#.
94	  Say N if you want to disable CPU hotplug.
95
96config MATHEMU
97	bool "IEEE FPU emulation"
98	depends on MARCH_G5
99	help
100	  This option is required for IEEE compliant floating point arithmetic
101	  on older S/390 machines. Say Y unless you know your machine doesn't
102	  need this.
103
104config S390_SUPPORT
105	bool "Kernel support for 31 bit emulation"
106	depends on ARCH_S390X
107	help
108	  Select this option if you want to enable your system kernel to
109	  handle system-calls from ELF binaries for 31 bit ESA.  This option
110	  (and some other stuff like libraries and such) is needed for
111	  executing 31 bit applications.  It is safe to say "Y".
112
113config COMPAT
114	bool
115	depends on S390_SUPPORT
116	default y
117
118config SYSVIPC_COMPAT
119	bool
120	depends on COMPAT && SYSVIPC
121	default y
122
123config BINFMT_ELF32
124	tristate "Kernel support for 31 bit ELF binaries"
125	depends on S390_SUPPORT
126	help
127	  This allows you to run 32-bit Linux/ELF binaries on your zSeries
128	  in 64 bit mode. Everybody wants this; say Y.
129
130comment "Code generation options"
131
132choice
133	prompt "Processor type"
134	default MARCH_G5
135
136config MARCH_G5
137	bool "S/390 model G5 and G6"
138	depends on ARCH_S390_31
139	help
140	  Select this to build a 31 bit kernel that works
141	  on all S/390 and zSeries machines.
142
143config MARCH_Z900
144	bool "IBM eServer zSeries model z800 and z900"
145	help
146	  Select this to optimize for zSeries machines. This
147	  will enable some optimizations that are not available
148	  on older 31 bit only CPUs.
149
150config MARCH_Z990
151	bool "IBM eServer zSeries model z890 and z990"
152	help
153	  Select this enable optimizations for model z890/z990.
154	  This will be slightly faster but does not work on
155	  older machines such as the z900.
156
157endchoice
158
159config PACK_STACK
160	bool "Pack kernel stack"
161	help
162	  This option enables the compiler option -mkernel-backchain if it
163	  is available. If the option is available the compiler supports
164	  the new stack layout which dramatically reduces the minimum stack
165	  frame size. With an old compiler a non-leaf function needs a
166	  minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
167	  -mkernel-backchain the minimum size drops to 16 byte on 31 bit
168	  and 24 byte on 64 bit.
169
170	  Say Y if you are unsure.
171
172config SMALL_STACK
173	bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
174	depends on PACK_STACK
175	help
176	  If you say Y here and the compiler supports the -mkernel-backchain
177	  option the kernel will use a smaller kernel stack size. For 31 bit
178	  the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
179	  instead of 16kb. This allows to run more thread on a system and
180	  reduces the pressure on the memory management for higher order
181	  page allocations.
182
183	  Say N if you are unsure.
184
185
186config CHECK_STACK
187	bool "Detect kernel stack overflow"
188	help
189	  This option enables the compiler option -mstack-guard and
190	  -mstack-size if they are available. If the compiler supports them
191	  it will emit additional code to each function prolog to trigger
192	  an illegal operation if the kernel stack is about to overflow.
193
194	  Say N if you are unsure.
195
196config STACK_GUARD
197	int "Size of the guard area (128-1024)"
198	range 128 1024
199	depends on CHECK_STACK
200	default "256"
201	help
202	  This allows you to specify the size of the guard area at the lower
203	  end of the kernel stack. If the kernel stack points into the guard
204	  area on function entry an illegal operation is triggered. The size
205	  needs to be a power of 2. Please keep in mind that the size of an
206	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
207	  The minimum size for the stack guard should be 256 for 31 bit and
208	  512 for 64 bit.
209
210config WARN_STACK
211	bool "Emit compiler warnings for function with broken stack usage"
212	help
213	  This option enables the compiler options -mwarn-framesize and
214	  -mwarn-dynamicstack. If the compiler supports these options it
215	  will generate warnings for function which either use alloca or
216	  create a stack frame bigger then CONFIG_WARN_STACK_SIZE.
217
218	  Say N if you are unsure.
219
220config WARN_STACK_SIZE
221	int "Maximum frame size considered safe (128-2048)"
222	range 128 2048
223	depends on WARN_STACK
224	default "256"
225	help
226	  This allows you to specify the maximum frame size a function may
227	  have without the compiler complaining about it.
228
229comment "I/O subsystem configuration"
230
231config MACHCHK_WARNING
232	bool "Process warning machine checks"
233	help
234	  Select this option if you want the machine check handler on IBM S/390 or
235	  zSeries to process warning machine checks (e.g. on power failures).
236	  If unsure, say "Y".
237
238config QDIO
239	tristate "QDIO support"
240	---help---
241	  This driver provides the Queued Direct I/O base support for the
242	  IBM S/390 (G5 and G6) and eServer zSeries (z800, z890, z900 and z990).
243
244	  For details please refer to the documentation provided by IBM at
245	  <http://www10.software.ibm.com/developerworks/opensource/linux390>
246
247	  To compile this driver as a module, choose M here: the
248	  module will be called qdio.
249
250	  If unsure, say Y.
251
252config QDIO_PERF_STATS
253	bool "Performance statistics in /proc"
254	depends on QDIO
255	help
256	  Say Y here to get performance statistics in /proc/qdio_perf
257
258	  If unsure, say N.
259
260config QDIO_DEBUG
261	bool "Extended debugging information"
262	depends on QDIO
263	help
264	  Say Y here to get extended debugging output in /proc/s390dbf/qdio...
265	  Warning: this option reduces the performance of the QDIO module.
266
267	  If unsure, say N.
268
269comment "Misc"
270
271config PREEMPT
272	bool "Preemptible Kernel"
273	help
274	  This option reduces the latency of the kernel when reacting to
275	  real-time or interactive events by allowing a low priority process to
276	  be preempted even if it is in kernel mode executing a system call.
277	  This allows applications to run more reliably even when the system is
278	  under load.
279
280	  Say N if you are unsure.
281
282config IPL
283	bool "Builtin IPL record support"
284	help
285	  If you want to use the produced kernel to IPL directly from a
286	  device, you have to merge a bootsector specific to the device
287	  into the first bytes of the kernel. You will have to select the
288	  IPL device.
289
290choice
291	prompt "IPL method generated into head.S"
292	depends on IPL
293	default IPL_TAPE
294	help
295	  Select "tape" if you want to IPL the image from a Tape.
296
297	  Select "vm_reader" if you are running under VM/ESA and want
298	  to IPL the image from the emulated card reader.
299
300config IPL_TAPE
301	bool "tape"
302
303config IPL_VM
304	bool "vm_reader"
305
306endchoice
307
308source "fs/Kconfig.binfmt"
309
310config PROCESS_DEBUG
311	bool "Show crashed user process info"
312	help
313	  Say Y to print all process fault locations to the console.  This is
314	  a debugging option; you probably do not want to set it unless you
315	  are an S390 port maintainer.
316
317config PFAULT
318	bool "Pseudo page fault support"
319	help
320	  Select this option, if you want to use PFAULT pseudo page fault
321	  handling under VM. If running native or in LPAR, this option
322	  has no effect. If your VM does not support PFAULT, PAGEEX
323	  pseudo page fault handling will be used.
324	  Note that VM 4.2 supports PFAULT but has a bug in its
325	  implementation that causes some problems.
326	  Everybody who wants to run Linux under VM != VM4.2 should select
327	  this option.
328
329config SHARED_KERNEL
330	bool "VM shared kernel support"
331	help
332	  Select this option, if you want to share the text segment of the
333	  Linux kernel between different VM guests. This reduces memory
334	  usage with lots of guests but greatly increases kernel size.
335	  You should only select this option if you know what you are
336	  doing and want to exploit this feature.
337
338config CMM
339	tristate "Cooperative memory management"
340	help
341	  Select this option, if you want to enable the kernel interface
342	  to reduce the memory size of the system. This is accomplished
343	  by allocating pages of memory and put them "on hold". This only
344	  makes sense for a system running under VM where the unused pages
345	  will be reused by VM for other guest systems. The interface
346	  allows an external monitor to balance memory of many systems.
347	  Everybody who wants to run Linux under VM should select this
348	  option.
349
350config CMM_PROC
351	bool "/proc interface to cooperative memory management"
352	depends on CMM
353	help
354	  Select this option to enable the /proc interface to the
355	  cooperative memory management.
356
357config CMM_IUCV
358	bool "IUCV special message interface to cooperative memory management"
359	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
360	help
361	  Select this option to enable the special message interface to
362	  the cooperative memory management.
363
364config VIRT_TIMER
365	bool "Virtual CPU timer support"
366	help
367	  This provides a kernel interface for virtual CPU timers.
368	  Default is disabled.
369
370config VIRT_CPU_ACCOUNTING
371	bool "Base user process accounting on virtual cpu timer"
372	depends on VIRT_TIMER
373	help
374	  Select this option to use CPU timer deltas to do user
375	  process accounting.
376
377config APPLDATA_BASE
378	bool "Linux - VM Monitor Stream, base infrastructure"
379	depends on PROC_FS && VIRT_TIMER=y
380	help
381	  This provides a kernel interface for creating and updating z/VM APPLDATA
382	  monitor records. The monitor records are updated at certain time
383	  intervals, once the timer is started.
384	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
385	  i.e. enables or disables monitoring on the Linux side.
386	  A custom interval value (in seconds) can be written to
387	  /proc/appldata/interval.
388
389	  Defaults are 60 seconds interval and timer off.
390	  The /proc entries can also be read from, showing the current settings.
391
392config APPLDATA_MEM
393	tristate "Monitor memory management statistics"
394	depends on APPLDATA_BASE
395	help
396	  This provides memory management related data to the Linux - VM Monitor
397	  Stream, like paging/swapping rate, memory utilisation, etc.
398	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
399	  APPLDATA monitor record, i.e. enables or disables monitoring this record
400	  on the z/VM side.
401
402	  Default is disabled.
403	  The /proc entry can also be read from, showing the current settings.
404
405	  This can also be compiled as a module, which will be called
406	  appldata_mem.o.
407
408config APPLDATA_OS
409	tristate "Monitor OS statistics"
410	depends on APPLDATA_BASE
411	help
412	  This provides OS related data to the Linux - VM Monitor Stream, like
413	  CPU utilisation, etc.
414	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
415	  APPLDATA monitor record, i.e. enables or disables monitoring this record
416	  on the z/VM side.
417
418	  Default is disabled.
419	  This can also be compiled as a module, which will be called
420	  appldata_os.o.
421
422config APPLDATA_NET_SUM
423	tristate "Monitor overall network statistics"
424	depends on APPLDATA_BASE
425	help
426	  This provides network related data to the Linux - VM Monitor Stream,
427	  currently there is only a total sum of network I/O statistics, no
428	  per-interface data.
429	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
430	  APPLDATA monitor record, i.e. enables or disables monitoring this record
431	  on the z/VM side.
432
433	  Default is disabled.
434	  This can also be compiled as a module, which will be called
435	  appldata_net_sum.o.
436
437config NO_IDLE_HZ
438	bool "No HZ timer ticks in idle"
439	help
440	  Switches the regular HZ timer off when the system is going idle.
441	  This helps z/VM to detect that the Linux system is idle. VM can
442	  then "swap-out" this guest which reduces memory usage. It also
443	  reduces the overhead of idle systems.
444
445	  The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
446	  hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
447	  timer is active.
448
449config NO_IDLE_HZ_INIT
450	bool "HZ timer in idle off by default"
451	depends on NO_IDLE_HZ
452	help
453	  The HZ timer is switched off in idle by default. That means the
454	  HZ timer is already disabled at boot time.
455
456endmenu
457
458config PCMCIA
459	bool
460	default n
461
462source "drivers/base/Kconfig"
463
464source "drivers/scsi/Kconfig"
465
466source "drivers/s390/Kconfig"
467
468source "net/Kconfig"
469
470source "fs/Kconfig"
471
472source "arch/s390/oprofile/Kconfig"
473
474source "arch/s390/Kconfig.debug"
475
476source "security/Kconfig"
477
478source "crypto/Kconfig"
479
480source "lib/Kconfig"
481