x86, efi: Set runtime_version to the EFI spec revision
[linux/fpc-iii.git] / arch / s390 / Kconfig
blobb5ea38c2564753df883026f83fece8ab484df68c
1 config MMU
2         def_bool y
4 config ZONE_DMA
5         def_bool y
7 config LOCKDEP_SUPPORT
8         def_bool y
10 config STACKTRACE_SUPPORT
11         def_bool y
13 config HAVE_LATENCYTOP_SUPPORT
14         def_bool y
16 config RWSEM_GENERIC_SPINLOCK
17         bool
19 config RWSEM_XCHGADD_ALGORITHM
20         def_bool y
22 config ARCH_HAS_ILOG2_U32
23         def_bool n
25 config ARCH_HAS_ILOG2_U64
26         def_bool n
28 config GENERIC_HWEIGHT
29         def_bool y
31 config GENERIC_BUG
32         def_bool y if BUG
34 config GENERIC_BUG_RELATIVE_POINTERS
35         def_bool y
37 config ARCH_DMA_ADDR_T_64BIT
38         def_bool 64BIT
40 config GENERIC_LOCKBREAK
41         def_bool y if SMP && PREEMPT
43 config PGSTE
44         def_bool y if KVM
46 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
47         def_bool y
49 config KEXEC
50         def_bool y
52 config AUDIT_ARCH
53         def_bool y
55 config NO_IOPORT
56         def_bool y
58 config PCI_QUIRKS
59         def_bool n
61 config S390
62         def_bool y
63         select USE_GENERIC_SMP_HELPERS if SMP
64         select GENERIC_CPU_DEVICES if !SMP
65         select HAVE_SYSCALL_WRAPPERS
66         select HAVE_FUNCTION_TRACER
67         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
68         select HAVE_FTRACE_MCOUNT_RECORD
69         select HAVE_C_RECORDMCOUNT
70         select HAVE_SYSCALL_TRACEPOINTS
71         select SYSCTL_EXCEPTION_TRACE
72         select HAVE_DYNAMIC_FTRACE
73         select HAVE_FUNCTION_GRAPH_TRACER
74         select HAVE_REGS_AND_STACK_ACCESS_API
75         select HAVE_OPROFILE
76         select HAVE_KPROBES
77         select HAVE_KRETPROBES
78         select HAVE_KVM if 64BIT
79         select HAVE_ARCH_TRACEHOOK
80         select INIT_ALL_POSSIBLE
81         select HAVE_IRQ_WORK
82         select HAVE_PERF_EVENTS
83         select ARCH_HAVE_NMI_SAFE_CMPXCHG
84         select HAVE_DEBUG_KMEMLEAK
85         select HAVE_KERNEL_GZIP
86         select HAVE_KERNEL_BZIP2
87         select HAVE_KERNEL_LZMA
88         select HAVE_KERNEL_LZO
89         select HAVE_KERNEL_XZ
90         select HAVE_ARCH_MUTEX_CPU_RELAX
91         select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
92         select HAVE_BPF_JIT if 64BIT && PACK_STACK
93         select ARCH_SAVE_PAGE_KEYS if HIBERNATION
94         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
95         select HAVE_MEMBLOCK
96         select HAVE_MEMBLOCK_NODE_MAP
97         select HAVE_CMPXCHG_LOCAL
98         select HAVE_CMPXCHG_DOUBLE
99         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
100         select HAVE_VIRT_CPU_ACCOUNTING
101         select VIRT_CPU_ACCOUNTING
102         select ARCH_DISCARD_MEMBLOCK
103         select BUILDTIME_EXTABLE_SORT
104         select ARCH_INLINE_SPIN_TRYLOCK
105         select ARCH_INLINE_SPIN_TRYLOCK_BH
106         select ARCH_INLINE_SPIN_LOCK
107         select ARCH_INLINE_SPIN_LOCK_BH
108         select ARCH_INLINE_SPIN_LOCK_IRQ
109         select ARCH_INLINE_SPIN_LOCK_IRQSAVE
110         select ARCH_INLINE_SPIN_UNLOCK
111         select ARCH_INLINE_SPIN_UNLOCK_BH
112         select ARCH_INLINE_SPIN_UNLOCK_IRQ
113         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
114         select ARCH_INLINE_READ_TRYLOCK
115         select ARCH_INLINE_READ_LOCK
116         select ARCH_INLINE_READ_LOCK_BH
117         select ARCH_INLINE_READ_LOCK_IRQ
118         select ARCH_INLINE_READ_LOCK_IRQSAVE
119         select ARCH_INLINE_READ_UNLOCK
120         select ARCH_INLINE_READ_UNLOCK_BH
121         select ARCH_INLINE_READ_UNLOCK_IRQ
122         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
123         select ARCH_INLINE_WRITE_TRYLOCK
124         select ARCH_INLINE_WRITE_LOCK
125         select ARCH_INLINE_WRITE_LOCK_BH
126         select ARCH_INLINE_WRITE_LOCK_IRQ
127         select ARCH_INLINE_WRITE_LOCK_IRQSAVE
128         select ARCH_INLINE_WRITE_UNLOCK
129         select ARCH_INLINE_WRITE_UNLOCK_BH
130         select ARCH_INLINE_WRITE_UNLOCK_IRQ
131         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
132         select HAVE_UID16 if 32BIT
133         select ARCH_WANT_IPC_PARSE_VERSION
134         select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT
135         select GENERIC_SMP_IDLE_THREAD
136         select GENERIC_TIME_VSYSCALL_OLD
137         select GENERIC_CLOCKEVENTS
138         select KTIME_SCALAR if 32BIT
139         select HAVE_ARCH_SECCOMP_FILTER
140         select HAVE_MOD_ARCH_SPECIFIC
141         select MODULES_USE_ELF_RELA
142         select CLONE_BACKWARDS2
144 config SCHED_OMIT_FRAME_POINTER
145         def_bool y
147 source "init/Kconfig"
149 source "kernel/Kconfig.freezer"
151 menu "Processor type and features"
153 config HAVE_MARCH_Z900_FEATURES
154         def_bool n
156 config HAVE_MARCH_Z990_FEATURES
157         def_bool n
158         select HAVE_MARCH_Z900_FEATURES
160 config HAVE_MARCH_Z9_109_FEATURES
161         def_bool n
162         select HAVE_MARCH_Z990_FEATURES
164 config HAVE_MARCH_Z10_FEATURES
165         def_bool n
166         select HAVE_MARCH_Z9_109_FEATURES
168 config HAVE_MARCH_Z196_FEATURES
169         def_bool n
170         select HAVE_MARCH_Z10_FEATURES
172 config HAVE_MARCH_ZEC12_FEATURES
173         def_bool n
174         select HAVE_MARCH_Z196_FEATURES
176 choice
177         prompt "Processor type"
178         default MARCH_G5
180 config MARCH_G5
181         bool "System/390 model G5 and G6"
182         depends on !64BIT
183         help
184           Select this to build a 31 bit kernel that works
185           on all ESA/390 and z/Architecture machines.
187 config MARCH_Z900
188         bool "IBM zSeries model z800 and z900"
189         select HAVE_MARCH_Z900_FEATURES if 64BIT
190         help
191           Select this to enable optimizations for model z800/z900 (2064 and
192           2066 series). This will enable some optimizations that are not
193           available on older ESA/390 (31 Bit) only CPUs.
195 config MARCH_Z990
196         bool "IBM zSeries model z890 and z990"
197         select HAVE_MARCH_Z990_FEATURES if 64BIT
198         help
199           Select this to enable optimizations for model z890/z990 (2084 and
200           2086 series). The kernel will be slightly faster but will not work
201           on older machines.
203 config MARCH_Z9_109
204         bool "IBM System z9"
205         select HAVE_MARCH_Z9_109_FEATURES if 64BIT
206         help
207           Select this to enable optimizations for IBM System z9 (2094 and
208           2096 series). The kernel will be slightly faster but will not work
209           on older machines.
211 config MARCH_Z10
212         bool "IBM System z10"
213         select HAVE_MARCH_Z10_FEATURES if 64BIT
214         help
215           Select this to enable optimizations for IBM System z10 (2097 and
216           2098 series). The kernel will be slightly faster but will not work
217           on older machines.
219 config MARCH_Z196
220         bool "IBM zEnterprise 114 and 196"
221         select HAVE_MARCH_Z196_FEATURES if 64BIT
222         help
223           Select this to enable optimizations for IBM zEnterprise 114 and 196
224           (2818 and 2817 series). The kernel will be slightly faster but will
225           not work on older machines.
227 config MARCH_ZEC12
228         bool "IBM zEC12"
229         select HAVE_MARCH_ZEC12_FEATURES if 64BIT
230         help
231           Select this to enable optimizations for IBM zEC12 (2827 series). The
232           kernel will be slightly faster but will not work on older machines.
234 endchoice
236 config 64BIT
237         def_bool y
238         prompt "64 bit kernel"
239         help
240           Select this option if you have an IBM z/Architecture machine
241           and want to use the 64 bit addressing mode.
243 config 32BIT
244         def_bool y if !64BIT
246 config COMPAT
247         def_bool y
248         prompt "Kernel support for 31 bit emulation"
249         depends on 64BIT
250         select COMPAT_BINFMT_ELF if BINFMT_ELF
251         select ARCH_WANT_OLD_COMPAT_IPC
252         help
253           Select this option if you want to enable your system kernel to
254           handle system-calls from ELF binaries for 31 bit ESA.  This option
255           (and some other stuff like libraries and such) is needed for
256           executing 31 bit applications.  It is safe to say "Y".
258 config SYSVIPC_COMPAT
259         def_bool y if COMPAT && SYSVIPC
261 config KEYS_COMPAT
262         def_bool y if COMPAT && KEYS
264 config SMP
265         def_bool y
266         prompt "Symmetric multi-processing support"
267         ---help---
268           This enables support for systems with more than one CPU. If you have
269           a system with only one CPU, like most personal computers, say N. If
270           you have a system with more than one CPU, say Y.
272           If you say N here, the kernel will run on single and multiprocessor
273           machines, but will use only one CPU of a multiprocessor machine. If
274           you say Y here, the kernel will run on many, but not all,
275           singleprocessor machines. On a singleprocessor machine, the kernel
276           will run faster if you say N here.
278           See also the SMP-HOWTO available at
279           <http://www.tldp.org/docs.html#howto>.
281           Even if you don't know what to do here, say Y.
283 config NR_CPUS
284         int "Maximum number of CPUs (2-64)"
285         range 2 64
286         depends on SMP
287         default "32" if !64BIT
288         default "64" if 64BIT
289         help
290           This allows you to specify the maximum number of CPUs which this
291           kernel will support.  The maximum supported value is 64 and the
292           minimum value which makes sense is 2.
294           This is purely to save memory - each supported CPU adds
295           approximately sixteen kilobytes to the kernel image.
297 config HOTPLUG_CPU
298         def_bool y
299         prompt "Support for hot-pluggable CPUs"
300         depends on SMP
301         select HOTPLUG
302         help
303           Say Y here to be able to turn CPUs off and on. CPUs
304           can be controlled through /sys/devices/system/cpu/cpu#.
305           Say N if you want to disable CPU hotplug.
307 config SCHED_MC
308         def_bool n
310 config SCHED_BOOK
311         def_bool y
312         prompt "Book scheduler support"
313         depends on SMP
314         select SCHED_MC
315         help
316           Book scheduler support improves the CPU scheduler's decision making
317           when dealing with machines that have several books.
319 source kernel/Kconfig.preempt
321 config MATHEMU
322         def_bool y
323         prompt "IEEE FPU emulation"
324         depends on MARCH_G5
325         help
326           This option is required for IEEE compliant floating point arithmetic
327           on older ESA/390 machines. Say Y unless you know your machine doesn't
328           need this.
330 source kernel/Kconfig.hz
332 endmenu
334 menu "Memory setup"
336 config ARCH_SPARSEMEM_ENABLE
337         def_bool y
338         select SPARSEMEM_VMEMMAP_ENABLE
339         select SPARSEMEM_VMEMMAP
340         select SPARSEMEM_STATIC if !64BIT
342 config ARCH_SPARSEMEM_DEFAULT
343         def_bool y
345 config ARCH_SELECT_MEMORY_MODEL
346         def_bool y
348 config ARCH_ENABLE_MEMORY_HOTPLUG
349         def_bool y if SPARSEMEM
351 config ARCH_ENABLE_MEMORY_HOTREMOVE
352         def_bool y
354 config FORCE_MAX_ZONEORDER
355         int
356         default "9"
358 source "mm/Kconfig"
360 config PACK_STACK
361         def_bool y
362         prompt "Pack kernel stack"
363         help
364           This option enables the compiler option -mkernel-backchain if it
365           is available. If the option is available the compiler supports
366           the new stack layout which dramatically reduces the minimum stack
367           frame size. With an old compiler a non-leaf function needs a
368           minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
369           -mkernel-backchain the minimum size drops to 16 byte on 31 bit
370           and 24 byte on 64 bit.
372           Say Y if you are unsure.
374 config SMALL_STACK
375         def_bool n
376         prompt "Use 8kb for kernel stack instead of 16kb"
377         depends on PACK_STACK && 64BIT && !LOCKDEP
378         help
379           If you say Y here and the compiler supports the -mkernel-backchain
380           option the kernel will use a smaller kernel stack size. The reduced
381           size is 8kb instead of 16kb. This allows to run more threads on a
382           system and reduces the pressure on the memory management for higher
383           order page allocations.
385           Say N if you are unsure.
387 config CHECK_STACK
388         def_bool y
389         prompt "Detect kernel stack overflow"
390         help
391           This option enables the compiler option -mstack-guard and
392           -mstack-size if they are available. If the compiler supports them
393           it will emit additional code to each function prolog to trigger
394           an illegal operation if the kernel stack is about to overflow.
396           Say N if you are unsure.
398 config STACK_GUARD
399         int "Size of the guard area (128-1024)"
400         range 128 1024
401         depends on CHECK_STACK
402         default "256"
403         help
404           This allows you to specify the size of the guard area at the lower
405           end of the kernel stack. If the kernel stack points into the guard
406           area on function entry an illegal operation is triggered. The size
407           needs to be a power of 2. Please keep in mind that the size of an
408           interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
409           The minimum size for the stack guard should be 256 for 31 bit and
410           512 for 64 bit.
412 config WARN_DYNAMIC_STACK
413         def_bool n
414         prompt "Emit compiler warnings for function with dynamic stack usage"
415         help
416           This option enables the compiler option -mwarn-dynamicstack. If the
417           compiler supports this options generates warnings for functions
418           that dynamically allocate stack space using alloca.
420           Say N if you are unsure.
422 endmenu
424 menu "I/O subsystem"
426 config QDIO
427         def_tristate y
428         prompt "QDIO support"
429         ---help---
430           This driver provides the Queued Direct I/O base support for
431           IBM System z.
433           To compile this driver as a module, choose M here: the
434           module will be called qdio.
436           If unsure, say Y.
438 menuconfig PCI
439         bool "PCI support"
440         default n
441         depends on 64BIT
442         select ARCH_SUPPORTS_MSI
443         select PCI_MSI
444         help
445           Enable PCI support.
447 if PCI
449 config PCI_NR_FUNCTIONS
450         int "Maximum number of PCI functions (1-4096)"
451         range 1 4096
452         default "64"
453         help
454           This allows you to specify the maximum number of PCI functions which
455           this kernel will support.
457 source "drivers/pci/Kconfig"
458 source "drivers/pci/pcie/Kconfig"
459 source "drivers/pci/hotplug/Kconfig"
461 endif   # PCI
463 config PCI_DOMAINS
464         def_bool PCI
466 config HAS_IOMEM
467         def_bool PCI
469 config IOMMU_HELPER
470         def_bool PCI
472 config HAS_DMA
473         def_bool PCI
474         select HAVE_DMA_API_DEBUG
476 config NEED_SG_DMA_LENGTH
477         def_bool PCI
479 config HAVE_DMA_ATTRS
480         def_bool PCI
482 config NEED_DMA_MAP_STATE
483         def_bool PCI
485 config CHSC_SCH
486         def_tristate m
487         prompt "Support for CHSC subchannels"
488         help
489           This driver allows usage of CHSC subchannels. A CHSC subchannel
490           is usually present on LPAR only.
491           The driver creates a device /dev/chsc, which may be used to
492           obtain I/O configuration information about the machine and
493           to issue asynchronous chsc commands (DANGEROUS).
494           You will usually only want to use this interface on a special
495           LPAR designated for system management.
497           To compile this driver as a module, choose M here: the
498           module will be called chsc_sch.
500           If unsure, say N.
502 config SCM_BUS
503         def_bool y
504         depends on 64BIT
505         prompt "SCM bus driver"
506         help
507           Bus driver for Storage Class Memory.
509 config EADM_SCH
510         def_tristate m
511         prompt "Support for EADM subchannels"
512         depends on SCM_BUS
513         help
514           This driver allows usage of EADM subchannels. EADM subchannels act
515           as a communication vehicle for SCM increments.
517           To compile this driver as a module, choose M here: the
518           module will be called eadm_sch.
520 endmenu
522 menu "Dump support"
524 config CRASH_DUMP
525         bool "kernel crash dumps"
526         depends on 64BIT && SMP
527         select KEXEC
528         help
529           Generate crash dump after being started by kexec.
530           Crash dump kernels are loaded in the main kernel with kexec-tools
531           into a specially reserved region and then later executed after
532           a crash by kdump/kexec.
533           For more details see Documentation/kdump/kdump.txt
535 config ZFCPDUMP
536         def_bool n
537         prompt "zfcpdump support"
538         select SMP
539         help
540           Select this option if you want to build an zfcpdump enabled kernel.
541           Refer to <file:Documentation/s390/zfcpdump.txt> for more details on this.
543 endmenu
545 menu "Executable file formats / Emulations"
547 source "fs/Kconfig.binfmt"
549 config SECCOMP
550         def_bool y
551         prompt "Enable seccomp to safely compute untrusted bytecode"
552         depends on PROC_FS
553         help
554           This kernel feature is useful for number crunching applications
555           that may need to compute untrusted bytecode during their
556           execution. By using pipes or other transports made available to
557           the process as file descriptors supporting the read/write
558           syscalls, it's possible to isolate those applications in
559           their own address space using seccomp. Once seccomp is
560           enabled via /proc/<pid>/seccomp, it cannot be disabled
561           and the task is only allowed to execute a few safe syscalls
562           defined by each seccomp mode.
564           If unsure, say Y.
566 endmenu
568 menu "Power Management"
570 config ARCH_HIBERNATION_POSSIBLE
571         def_bool y if 64BIT
573 source "kernel/power/Kconfig"
575 endmenu
577 source "net/Kconfig"
579 config PCMCIA
580         def_bool n
582 config CCW
583         def_bool y
585 source "drivers/Kconfig"
587 source "fs/Kconfig"
589 source "arch/s390/Kconfig.debug"
591 source "security/Kconfig"
593 source "crypto/Kconfig"
595 source "lib/Kconfig"
597 menu "Virtualization"
599 config PFAULT
600         def_bool y
601         prompt "Pseudo page fault support"
602         help
603           Select this option, if you want to use PFAULT pseudo page fault
604           handling under VM. If running native or in LPAR, this option
605           has no effect. If your VM does not support PFAULT, PAGEEX
606           pseudo page fault handling will be used.
607           Note that VM 4.2 supports PFAULT but has a bug in its
608           implementation that causes some problems.
609           Everybody who wants to run Linux under VM != VM4.2 should select
610           this option.
612 config SHARED_KERNEL
613         bool "VM shared kernel support"
614         depends on !JUMP_LABEL
615         help
616           Select this option, if you want to share the text segment of the
617           Linux kernel between different VM guests. This reduces memory
618           usage with lots of guests but greatly increases kernel size.
619           Also if a kernel was IPL'ed from a shared segment the kexec system
620           call will not work.
621           You should only select this option if you know what you are
622           doing and want to exploit this feature.
624 config CMM
625         def_tristate n
626         prompt "Cooperative memory management"
627         help
628           Select this option, if you want to enable the kernel interface
629           to reduce the memory size of the system. This is accomplished
630           by allocating pages of memory and put them "on hold". This only
631           makes sense for a system running under VM where the unused pages
632           will be reused by VM for other guest systems. The interface
633           allows an external monitor to balance memory of many systems.
634           Everybody who wants to run Linux under VM should select this
635           option.
637 config CMM_IUCV
638         def_bool y
639         prompt "IUCV special message interface to cooperative memory management"
640         depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
641         help
642           Select this option to enable the special message interface to
643           the cooperative memory management.
645 config APPLDATA_BASE
646         def_bool n
647         prompt "Linux - VM Monitor Stream, base infrastructure"
648         depends on PROC_FS
649         help
650           This provides a kernel interface for creating and updating z/VM APPLDATA
651           monitor records. The monitor records are updated at certain time
652           intervals, once the timer is started.
653           Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
654           i.e. enables or disables monitoring on the Linux side.
655           A custom interval value (in seconds) can be written to
656           /proc/appldata/interval.
658           Defaults are 60 seconds interval and timer off.
659           The /proc entries can also be read from, showing the current settings.
661 config APPLDATA_MEM
662         def_tristate m
663         prompt "Monitor memory management statistics"
664         depends on APPLDATA_BASE && VM_EVENT_COUNTERS
665         help
666           This provides memory management related data to the Linux - VM Monitor
667           Stream, like paging/swapping rate, memory utilisation, etc.
668           Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
669           APPLDATA monitor record, i.e. enables or disables monitoring this record
670           on the z/VM side.
672           Default is disabled.
673           The /proc entry can also be read from, showing the current settings.
675           This can also be compiled as a module, which will be called
676           appldata_mem.o.
678 config APPLDATA_OS
679         def_tristate m
680         prompt "Monitor OS statistics"
681         depends on APPLDATA_BASE
682         help
683           This provides OS related data to the Linux - VM Monitor Stream, like
684           CPU utilisation, etc.
685           Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
686           APPLDATA monitor record, i.e. enables or disables monitoring this record
687           on the z/VM side.
689           Default is disabled.
690           This can also be compiled as a module, which will be called
691           appldata_os.o.
693 config APPLDATA_NET_SUM
694         def_tristate m
695         prompt "Monitor overall network statistics"
696         depends on APPLDATA_BASE && NET
697         help
698           This provides network related data to the Linux - VM Monitor Stream,
699           currently there is only a total sum of network I/O statistics, no
700           per-interface data.
701           Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
702           APPLDATA monitor record, i.e. enables or disables monitoring this record
703           on the z/VM side.
705           Default is disabled.
706           This can also be compiled as a module, which will be called
707           appldata_net_sum.o.
709 config S390_HYPFS_FS
710         def_bool y
711         prompt "s390 hypervisor file system support"
712         select SYS_HYPERVISOR
713         help
714           This is a virtual file system intended to provide accounting
715           information in an s390 hypervisor environment.
717 source "arch/s390/kvm/Kconfig"
719 config S390_GUEST
720         def_bool y
721         prompt "s390 support for virtio devices (EXPERIMENTAL)"
722         depends on 64BIT && EXPERIMENTAL
723         select VIRTUALIZATION
724         select VIRTIO
725         select VIRTIO_CONSOLE
726         help
727           Enabling this option adds support for virtio based paravirtual device
728           drivers on s390.
730           Select this option if you want to run the kernel as a guest under
731           the KVM hypervisor.
733 endmenu