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