xref: /openbmc/linux/arch/s390/Kconfig (revision d67b569f)
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
229source "mm/Kconfig"
230
231comment "I/O subsystem configuration"
232
233config MACHCHK_WARNING
234	bool "Process warning machine checks"
235	help
236	  Select this option if you want the machine check handler on IBM S/390 or
237	  zSeries to process warning machine checks (e.g. on power failures).
238	  If unsure, say "Y".
239
240config QDIO
241	tristate "QDIO support"
242	---help---
243	  This driver provides the Queued Direct I/O base support for the
244	  IBM S/390 (G5 and G6) and eServer zSeries (z800, z890, z900 and z990).
245
246	  For details please refer to the documentation provided by IBM at
247	  <http://www10.software.ibm.com/developerworks/opensource/linux390>
248
249	  To compile this driver as a module, choose M here: the
250	  module will be called qdio.
251
252	  If unsure, say Y.
253
254config QDIO_PERF_STATS
255	bool "Performance statistics in /proc"
256	depends on QDIO
257	help
258	  Say Y here to get performance statistics in /proc/qdio_perf
259
260	  If unsure, say N.
261
262config QDIO_DEBUG
263	bool "Extended debugging information"
264	depends on QDIO
265	help
266	  Say Y here to get extended debugging output in /proc/s390dbf/qdio...
267	  Warning: this option reduces the performance of the QDIO module.
268
269	  If unsure, say N.
270
271comment "Misc"
272
273config PREEMPT
274	bool "Preemptible Kernel"
275	help
276	  This option reduces the latency of the kernel when reacting to
277	  real-time or interactive events by allowing a low priority process to
278	  be preempted even if it is in kernel mode executing a system call.
279	  This allows applications to run more reliably even when the system is
280	  under load.
281
282	  Say N if you are unsure.
283
284config IPL
285	bool "Builtin IPL record support"
286	help
287	  If you want to use the produced kernel to IPL directly from a
288	  device, you have to merge a bootsector specific to the device
289	  into the first bytes of the kernel. You will have to select the
290	  IPL device.
291
292choice
293	prompt "IPL method generated into head.S"
294	depends on IPL
295	default IPL_TAPE
296	help
297	  Select "tape" if you want to IPL the image from a Tape.
298
299	  Select "vm_reader" if you are running under VM/ESA and want
300	  to IPL the image from the emulated card reader.
301
302config IPL_TAPE
303	bool "tape"
304
305config IPL_VM
306	bool "vm_reader"
307
308endchoice
309
310source "fs/Kconfig.binfmt"
311
312config PROCESS_DEBUG
313	bool "Show crashed user process info"
314	help
315	  Say Y to print all process fault locations to the console.  This is
316	  a debugging option; you probably do not want to set it unless you
317	  are an S390 port maintainer.
318
319config PFAULT
320	bool "Pseudo page fault support"
321	help
322	  Select this option, if you want to use PFAULT pseudo page fault
323	  handling under VM. If running native or in LPAR, this option
324	  has no effect. If your VM does not support PFAULT, PAGEEX
325	  pseudo page fault handling will be used.
326	  Note that VM 4.2 supports PFAULT but has a bug in its
327	  implementation that causes some problems.
328	  Everybody who wants to run Linux under VM != VM4.2 should select
329	  this option.
330
331config SHARED_KERNEL
332	bool "VM shared kernel support"
333	help
334	  Select this option, if you want to share the text segment of the
335	  Linux kernel between different VM guests. This reduces memory
336	  usage with lots of guests but greatly increases kernel size.
337	  You should only select this option if you know what you are
338	  doing and want to exploit this feature.
339
340config CMM
341	tristate "Cooperative memory management"
342	help
343	  Select this option, if you want to enable the kernel interface
344	  to reduce the memory size of the system. This is accomplished
345	  by allocating pages of memory and put them "on hold". This only
346	  makes sense for a system running under VM where the unused pages
347	  will be reused by VM for other guest systems. The interface
348	  allows an external monitor to balance memory of many systems.
349	  Everybody who wants to run Linux under VM should select this
350	  option.
351
352config CMM_PROC
353	bool "/proc interface to cooperative memory management"
354	depends on CMM
355	help
356	  Select this option to enable the /proc interface to the
357	  cooperative memory management.
358
359config CMM_IUCV
360	bool "IUCV special message interface to cooperative memory management"
361	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
362	help
363	  Select this option to enable the special message interface to
364	  the cooperative memory management.
365
366config VIRT_TIMER
367	bool "Virtual CPU timer support"
368	help
369	  This provides a kernel interface for virtual CPU timers.
370	  Default is disabled.
371
372config VIRT_CPU_ACCOUNTING
373	bool "Base user process accounting on virtual cpu timer"
374	depends on VIRT_TIMER
375	help
376	  Select this option to use CPU timer deltas to do user
377	  process accounting.
378
379config APPLDATA_BASE
380	bool "Linux - VM Monitor Stream, base infrastructure"
381	depends on PROC_FS && VIRT_TIMER=y
382	help
383	  This provides a kernel interface for creating and updating z/VM APPLDATA
384	  monitor records. The monitor records are updated at certain time
385	  intervals, once the timer is started.
386	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
387	  i.e. enables or disables monitoring on the Linux side.
388	  A custom interval value (in seconds) can be written to
389	  /proc/appldata/interval.
390
391	  Defaults are 60 seconds interval and timer off.
392	  The /proc entries can also be read from, showing the current settings.
393
394config APPLDATA_MEM
395	tristate "Monitor memory management statistics"
396	depends on APPLDATA_BASE
397	help
398	  This provides memory management related data to the Linux - VM Monitor
399	  Stream, like paging/swapping rate, memory utilisation, etc.
400	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
401	  APPLDATA monitor record, i.e. enables or disables monitoring this record
402	  on the z/VM side.
403
404	  Default is disabled.
405	  The /proc entry can also be read from, showing the current settings.
406
407	  This can also be compiled as a module, which will be called
408	  appldata_mem.o.
409
410config APPLDATA_OS
411	tristate "Monitor OS statistics"
412	depends on APPLDATA_BASE
413	help
414	  This provides OS related data to the Linux - VM Monitor Stream, like
415	  CPU utilisation, etc.
416	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
417	  APPLDATA monitor record, i.e. enables or disables monitoring this record
418	  on the z/VM side.
419
420	  Default is disabled.
421	  This can also be compiled as a module, which will be called
422	  appldata_os.o.
423
424config APPLDATA_NET_SUM
425	tristate "Monitor overall network statistics"
426	depends on APPLDATA_BASE
427	help
428	  This provides network related data to the Linux - VM Monitor Stream,
429	  currently there is only a total sum of network I/O statistics, no
430	  per-interface data.
431	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
432	  APPLDATA monitor record, i.e. enables or disables monitoring this record
433	  on the z/VM side.
434
435	  Default is disabled.
436	  This can also be compiled as a module, which will be called
437	  appldata_net_sum.o.
438
439config NO_IDLE_HZ
440	bool "No HZ timer ticks in idle"
441	help
442	  Switches the regular HZ timer off when the system is going idle.
443	  This helps z/VM to detect that the Linux system is idle. VM can
444	  then "swap-out" this guest which reduces memory usage. It also
445	  reduces the overhead of idle systems.
446
447	  The HZ timer can be switched on/off via /proc/sys/kernel/hz_timer.
448	  hz_timer=0 means HZ timer is disabled. hz_timer=1 means HZ
449	  timer is active.
450
451config NO_IDLE_HZ_INIT
452	bool "HZ timer in idle off by default"
453	depends on NO_IDLE_HZ
454	help
455	  The HZ timer is switched off in idle by default. That means the
456	  HZ timer is already disabled at boot time.
457
458config KEXEC
459	bool "kexec system call (EXPERIMENTAL)"
460	depends on EXPERIMENTAL
461	help
462	  kexec is a system call that implements the ability to shutdown your
463	  current kernel, and to start another kernel.  It is like a reboot
464	  but is independent of hardware/microcode support.
465
466endmenu
467
468config PCMCIA
469	bool
470	default n
471
472source "drivers/base/Kconfig"
473
474source "drivers/scsi/Kconfig"
475
476source "drivers/s390/Kconfig"
477
478source "net/Kconfig"
479
480source "fs/Kconfig"
481
482source "arch/s390/oprofile/Kconfig"
483
484source "arch/s390/Kconfig.debug"
485
486source "security/Kconfig"
487
488source "crypto/Kconfig"
489
490source "lib/Kconfig"
491