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