projects/linux·blob master · refs

388 lines · 9.7 KiB

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