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