Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / arch / parisc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config PARISC
3         def_bool y
4         select ARCH_32BIT_OFF_T if !64BIT
5         select ARCH_MIGHT_HAVE_PC_PARPORT
6         select HAVE_IDE
7         select HAVE_OPROFILE
8         select HAVE_FUNCTION_TRACER
9         select HAVE_FUNCTION_GRAPH_TRACER
10         select HAVE_SYSCALL_TRACEPOINTS
11         select ARCH_WANT_FRAME_POINTERS
12         select ARCH_HAS_ELF_RANDOMIZE
13         select ARCH_HAS_STRICT_KERNEL_RWX
14         select ARCH_HAS_UBSAN_SANITIZE_ALL
15         select ARCH_NO_SG_CHAIN
16         select ARCH_SUPPORTS_MEMORY_FAILURE
17         select RTC_CLASS
18         select RTC_DRV_GENERIC
19         select INIT_ALL_POSSIBLE
20         select BUG
21         select BUILDTIME_EXTABLE_SORT
22         select HAVE_PCI
23         select HAVE_PERF_EVENTS
24         select HAVE_KERNEL_BZIP2
25         select HAVE_KERNEL_GZIP
26         select HAVE_KERNEL_LZ4
27         select HAVE_KERNEL_LZMA
28         select HAVE_KERNEL_LZO
29         select HAVE_KERNEL_XZ
30         select GENERIC_ATOMIC64 if !64BIT
31         select GENERIC_IRQ_PROBE
32         select GENERIC_PCI_IOMAP
33         select ARCH_HAVE_NMI_SAFE_CMPXCHG
34         select GENERIC_SMP_IDLE_THREAD
35         select GENERIC_CPU_DEVICES
36         select GENERIC_STRNCPY_FROM_USER
37         select SYSCTL_ARCH_UNALIGN_ALLOW
38         select SYSCTL_EXCEPTION_TRACE
39         select ARCH_DISCARD_MEMBLOCK
40         select HAVE_MOD_ARCH_SPECIFIC
41         select VIRT_TO_BUS
42         select MODULES_USE_ELF_RELA
43         select CLONE_BACKWARDS
44         select TTY # Needed for pdc_cons.c
45         select HAVE_DEBUG_STACKOVERFLOW
46         select HAVE_ARCH_AUDITSYSCALL
47         select HAVE_ARCH_HASH
48         select HAVE_ARCH_JUMP_LABEL
49         select HAVE_ARCH_JUMP_LABEL_RELATIVE
50         select HAVE_ARCH_SECCOMP_FILTER
51         select HAVE_ARCH_TRACEHOOK
52         select HAVE_REGS_AND_STACK_ACCESS_API
53         select GENERIC_SCHED_CLOCK
54         select HAVE_UNSTABLE_SCHED_CLOCK if SMP
55         select GENERIC_CLOCKEVENTS
56         select ARCH_NO_COHERENT_DMA_MMAP
57         select CPU_NO_EFFICIENT_FFS
58         select NEED_DMA_MAP_STATE
59         select NEED_SG_DMA_LENGTH
60         select HAVE_ARCH_KGDB
61         select HAVE_KPROBES
62         select HAVE_KRETPROBES
63
64         help
65           The PA-RISC microprocessor is designed by Hewlett-Packard and used
66           in many of their workstations & servers (HP9000 700 and 800 series,
67           and later HP3000 series).  The PA-RISC Linux project home page is
68           at <http://www.parisc-linux.org/>.
69
70 config CPU_BIG_ENDIAN
71         def_bool y
72
73 config MMU
74         def_bool y
75
76 config STACK_GROWSUP
77         def_bool y
78
79 config GENERIC_LOCKBREAK
80         bool
81         default y
82         depends on SMP && PREEMPT
83
84 config ARCH_HAS_ILOG2_U32
85         bool
86         default n
87
88 config ARCH_HAS_ILOG2_U64
89         bool
90         default n
91
92 config GENERIC_BUG
93         bool
94         default y
95         depends on BUG
96
97 config GENERIC_HWEIGHT
98         bool
99         default y
100
101 config GENERIC_CALIBRATE_DELAY
102         bool
103         default y
104
105 config TIME_LOW_RES
106         bool
107         depends on SMP
108         default y
109
110 # unless you want to implement ACPI on PA-RISC ... ;-)
111 config PM
112         bool
113
114 config STACKTRACE_SUPPORT
115         def_bool y
116
117 config ISA_DMA_API
118         bool
119
120 config ARCH_MAY_HAVE_PC_FDC
121         bool
122         depends on BROKEN
123         default y
124
125 config PGTABLE_LEVELS
126         int
127         default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
128         default 2
129
130 config SYS_SUPPORTS_HUGETLBFS
131         def_bool y if PA20
132
133
134 menu "Processor type and features"
135
136 choice
137         prompt "Processor type"
138         default PA7000
139
140 config PA7000
141         bool "PA7000/PA7100"
142         ---help---
143           This is the processor type of your CPU.  This information is
144           used for optimizing purposes.  In order to compile a kernel
145           that can run on all 32-bit PA CPUs (albeit not optimally fast),
146           you can specify "PA7000" here.
147
148           Specifying "PA8000" here will allow you to select a 64-bit kernel
149           which is required on some machines.
150
151 config PA7100LC
152         bool "PA7100LC"
153         help
154           Select this option for the PCX-L processor, as used in the
155           712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
156           D200, D210, D300, D310 and E-class
157
158 config PA7200
159         bool "PA7200"
160         help
161           Select this option for the PCX-T' processor, as used in the
162           C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
163           K100, K200, K210, K220, K400, K410 and K420
164
165 config PA7300LC
166         bool "PA7300LC"
167         help
168           Select this option for the PCX-L2 processor, as used in the
169           744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
170           D220, D230, D320 and D330.
171
172 config PA8X00
173         bool "PA8000 and up"
174         help
175           Select this option for PCX-U to PCX-W2 processors.
176
177 endchoice
178
179 # Define implied options from the CPU selection here
180
181 config PA20
182         def_bool y
183         depends on PA8X00
184
185 config PA11
186         def_bool y
187         depends on PA7000 || PA7100LC || PA7200 || PA7300LC
188         select ARCH_HAS_SYNC_DMA_FOR_CPU
189         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
190         select DMA_NONCOHERENT_CACHE_SYNC
191
192 config PREFETCH
193         def_bool y
194         depends on PA8X00 || PA7200
195
196 config MLONGCALLS
197         bool "Enable the -mlong-calls compiler option for big kernels"
198         default y
199         depends on PA8X00
200         help
201           If you configure the kernel to include many drivers built-in instead
202           as modules, the kernel executable may become too big, so that the
203           linker will not be able to resolve some long branches and fails to link
204           your vmlinux kernel. In that case enabling this option will help you
205           to overcome this limit by using the -mlong-calls compiler option.
206
207           Usually you want to say N here, unless you e.g. want to build
208           a kernel which includes all necessary drivers built-in and which can
209           be used for TFTP booting without the need to have an initrd ramdisk.
210
211           Enabling this option will probably slow down your kernel.
212
213 config 64BIT
214         bool "64-bit kernel"
215         depends on PA8X00
216         help
217           Enable this if you want to support 64bit kernel on PA-RISC platform.
218
219           At the moment, only people willing to use more than 2GB of RAM,
220           or having a 64bit-only capable PA-RISC machine should say Y here.
221
222           Since there is no 64bit userland on PA-RISC, there is no point to
223           enable this option otherwise. The 64bit kernel is significantly bigger
224           and slower than the 32bit one.
225
226 choice
227         prompt "Kernel page size"
228         default PARISC_PAGE_SIZE_4KB
229
230 config PARISC_PAGE_SIZE_4KB
231         bool "4KB"
232         help
233           This lets you select the page size of the kernel.  For best
234           performance, a page size of 16KB is recommended.  For best
235           compatibility with 32bit applications, a page size of 4KB should be
236           selected (the vast majority of 32bit binaries work perfectly fine
237           with a larger page size).
238
239           4KB                For best 32bit compatibility
240           16KB               For best performance
241           64KB               For best performance, might give more overhead.
242
243           If you don't know what to do, choose 4KB.
244
245 config PARISC_PAGE_SIZE_16KB
246         bool "16KB"
247         depends on PA8X00 && BROKEN
248
249 config PARISC_PAGE_SIZE_64KB
250         bool "64KB"
251         depends on PA8X00 && BROKEN
252
253 endchoice
254
255 config PARISC_SELF_EXTRACT
256         bool "Build kernel as self-extracting executable"
257         default y
258         help
259           Say Y if you want to build the parisc kernel as a kind of
260           self-extracting executable.
261
262           If you say N here, the kernel will be compressed with gzip
263           which can be loaded by the palo bootloader directly too.
264
265           If you don't know what to do here, say Y.
266
267 config SMP
268         bool "Symmetric multi-processing support"
269         ---help---
270           This enables support for systems with more than one CPU. If you have
271           a system with only one CPU, say N. If you have a system with more
272           than one CPU, say Y.
273
274           If you say N here, the kernel will run on uni- and multiprocessor
275           machines, but will use only one CPU of a multiprocessor machine.
276           On a uniprocessor machine, the kernel will run faster if you say N.
277
278           See also <file:Documentation/lockup-watchdogs.txt> and the SMP-HOWTO
279           available at <http://www.tldp.org/docs.html#howto>.
280
281           If you don't know what to do here, say N.
282
283 config PARISC_CPU_TOPOLOGY
284         bool "Support cpu topology definition"
285         depends on SMP
286         default y
287         help
288           Support PARISC cpu topology definition.
289
290 config SCHED_MC
291         bool "Multi-core scheduler support"
292         depends on PARISC_CPU_TOPOLOGY && PA8X00
293         help
294           Multi-core scheduler support improves the CPU scheduler's decision
295           making when dealing with multi-core CPU chips at a cost of slightly
296           increased overhead in some places. If unsure say N here.
297
298 config IRQSTACKS
299         bool "Use separate kernel stacks when processing interrupts"
300         default y
301         help
302           If you say Y here the kernel will use separate kernel stacks
303           for handling hard and soft interrupts.  This can help avoid
304           overflowing the process kernel stacks.
305
306 config HOTPLUG_CPU
307         bool
308         default y if SMP
309
310 config ARCH_SELECT_MEMORY_MODEL
311         def_bool y
312         depends on 64BIT
313
314 config ARCH_SPARSEMEM_ENABLE
315         def_bool y
316         depends on 64BIT
317
318 config ARCH_FLATMEM_ENABLE
319         def_bool y
320
321 config ARCH_SPARSEMEM_DEFAULT
322         def_bool y
323         depends on ARCH_SPARSEMEM_ENABLE
324
325 source "kernel/Kconfig.hz"
326
327 config COMPAT
328         def_bool y
329         depends on 64BIT
330         select COMPAT_BINFMT_ELF if BINFMT_ELF
331
332 config SYSVIPC_COMPAT
333         def_bool y
334         depends on COMPAT && SYSVIPC
335
336 config AUDIT_ARCH
337         def_bool y
338
339 config NR_CPUS
340         int "Maximum number of CPUs (2-32)"
341         range 2 32
342         depends on SMP
343         default "4"
344
345 endmenu
346
347
348 source "drivers/parisc/Kconfig"
349
350 config SECCOMP
351         def_bool y
352         prompt "Enable seccomp to safely compute untrusted bytecode"
353         ---help---
354           This kernel feature is useful for number crunching applications
355           that may need to compute untrusted bytecode during their
356           execution. By using pipes or other transports made available to
357           the process as file descriptors supporting the read/write
358           syscalls, it's possible to isolate those applications in
359           their own address space using seccomp. Once seccomp is
360           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
361           and the task is only allowed to execute a few safe syscalls
362           defined by each seccomp mode.
363
364           If unsure, say Y. Only embedded should say N here.