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