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