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