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