Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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"