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