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