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