1 # SPDX-License-Identifier: GPL-2.0
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
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
24 select ARCH_HAS_CACHE_LINE_SIZE
25 select ARCH_HAS_DEBUG_VM_PGTABLE
26 select HAVE_RELIABLE_STACKTRACE
28 select RTC_DRV_GENERIC
29 select INIT_ALL_POSSIBLE
31 select HAVE_KERNEL_UNCOMPRESSED
33 select HAVE_PERF_EVENTS
34 select HAVE_KERNEL_BZIP2
35 select HAVE_KERNEL_GZIP
36 select HAVE_KERNEL_LZ4
37 select HAVE_KERNEL_LZMA
38 select HAVE_KERNEL_LZO
40 select GENERIC_ATOMIC64 if !64BIT
41 select GENERIC_IRQ_PROBE
42 select GENERIC_PCI_IOMAP
43 select GENERIC_IOREMAP
44 select ARCH_HAVE_NMI_SAFE_CMPXCHG
45 select GENERIC_SMP_IDLE_THREAD
46 select GENERIC_ARCH_TOPOLOGY if SMP
47 select GENERIC_CPU_DEVICES if !SMP
48 select GENERIC_LIB_DEVMEM_IS_ALLOWED
49 select SYSCTL_ARCH_UNALIGN_ALLOW
50 select SYSCTL_ARCH_UNALIGN_NO_WARN
51 select SYSCTL_EXCEPTION_TRACE
52 select HAVE_MOD_ARCH_SPECIFIC
53 select MODULES_USE_ELF_RELA
54 select CLONE_BACKWARDS
55 select TTY # Needed for pdc_cons.c
56 select HAS_IOPORT if PCI || EISA
57 select HAVE_DEBUG_STACKOVERFLOW
58 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
59 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
60 select HAVE_ARCH_MMAP_RND_BITS
61 select HAVE_ARCH_AUDITSYSCALL
63 select HAVE_ARCH_JUMP_LABEL
64 select HAVE_ARCH_JUMP_LABEL_RELATIVE
65 select HAVE_ARCH_KFENCE
66 select HAVE_ARCH_SECCOMP_FILTER
67 select HAVE_ARCH_TRACEHOOK
69 select ARCH_WANT_DEFAULT_BPF_JIT
70 select HAVE_REGS_AND_STACK_ACCESS_API
71 select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU
72 select GENERIC_SCHED_CLOCK
73 select GENERIC_IRQ_MIGRATION if SMP
74 select HAVE_UNSTABLE_SCHED_CLOCK if SMP
75 select GENERIC_CLOCKEVENTS
76 select CPU_NO_EFFICIENT_FFS
77 select THREAD_INFO_IN_TASK
78 select NEED_DMA_MAP_STATE
79 select NEED_SG_DMA_LENGTH
82 select HAVE_KRETPROBES
83 select HAVE_DYNAMIC_FTRACE if $(cc-option,-fpatchable-function-entry=1,1)
84 select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
85 select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY if DYNAMIC_FTRACE
86 select HAVE_KPROBES_ON_FTRACE
87 select HAVE_DYNAMIC_FTRACE_WITH_REGS
88 select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
89 select TRACE_IRQFLAGS_SUPPORT
90 select HAVE_FUNCTION_DESCRIPTORS if 64BIT
91 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
94 The PA-RISC microprocessor is designed by Hewlett-Packard and used
95 in many of their workstations & servers (HP9000 700 and 800 series,
96 and later HP3000 series). The PA-RISC Linux project home page is
97 at <https://parisc.wiki.kernel.org>.
108 config GENERIC_LOCKBREAK
111 depends on SMP && PREEMPTION
113 config ARCH_HAS_ILOG2_U32
117 config ARCH_HAS_ILOG2_U64
124 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
126 config GENERIC_BUG_RELATIVE_POINTERS
129 config GENERIC_HWEIGHT
133 config GENERIC_CALIBRATE_DELAY
142 config ARCH_MMAP_RND_BITS_MIN
146 config ARCH_MMAP_RND_COMPAT_BITS_MIN
149 config ARCH_MMAP_RND_BITS_MAX
153 config ARCH_MMAP_RND_COMPAT_BITS_MAX
156 # unless you want to implement ACPI on PA-RISC ... ;-)
160 config STACKTRACE_SUPPORT
163 config LOCKDEP_SUPPORT
170 config ARCH_MAY_HAVE_PC_FDC
175 config PGTABLE_LEVELS
177 default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
180 menu "Processor type and features"
183 prompt "Processor type"
184 default PA7000 if "$(ARCH)" = "parisc"
187 bool "PA7000/PA7100" if "$(ARCH)" = "parisc"
189 This is the processor type of your CPU. This information is
190 used for optimizing purposes. In order to compile a kernel
191 that can run on all 32-bit PA CPUs (albeit not optimally fast),
192 you can specify "PA7000" here.
194 Specifying "PA8000" here will allow you to select a 64-bit kernel
195 which is required on some machines.
198 bool "PA7100LC" if "$(ARCH)" = "parisc"
200 Select this option for the PCX-L processor, as used in the
201 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
202 D200, D210, D300, D310 and E-class
205 bool "PA7200" if "$(ARCH)" = "parisc"
207 Select this option for the PCX-T' processor, as used in the
208 C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
209 K100, K200, K210, K220, K400, K410 and K420
212 bool "PA7300LC" if "$(ARCH)" = "parisc"
214 Select this option for the PCX-L2 processor, as used in the
215 744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
216 D220, D230, D320 and D330.
221 Select this option for PCX-U to PCX-W2 processors.
225 # Define implied options from the CPU selection here
233 depends on PA7000 || PA7100LC || PA7200 || PA7300LC
234 select ARCH_HAS_SYNC_DMA_FOR_CPU
235 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
239 depends on PA8X00 || PA7200
241 config PARISC_HUGE_KERNEL
242 def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
245 bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
247 default PARISC_HUGE_KERNEL
249 If you configure the kernel to include many drivers built-in instead
250 as modules, the kernel executable may become too big, so that the
251 linker will not be able to resolve some long branches and fails to link
252 your vmlinux kernel. In that case enabling this option will help you
253 to overcome this limit by using the -mlong-calls compiler option.
255 Usually you want to say N here, unless you e.g. want to build
256 a kernel which includes all necessary drivers built-in and which can
257 be used for TFTP booting without the need to have an initrd ramdisk.
259 Enabling this option will probably slow down your kernel.
262 bool "64-bit kernel" if "$(ARCH)" = "parisc"
264 default "$(ARCH)" = "parisc64"
266 Enable this if you want to support 64bit kernel on PA-RISC platform.
268 At the moment, only people willing to use more than 2GB of RAM,
269 or having a 64bit-only capable PA-RISC machine should say Y here.
271 Since there is no 64bit userland on PA-RISC, there is no point to
272 enable this option otherwise. The 64bit kernel is significantly bigger
273 and slower than the 32bit one.
276 prompt "Kernel page size"
277 default PARISC_PAGE_SIZE_4KB
279 config PARISC_PAGE_SIZE_4KB
281 select HAVE_PAGE_SIZE_4KB
283 This lets you select the page size of the kernel. For best
284 performance, a page size of 16KB is recommended. For best
285 compatibility with 32bit applications, a page size of 4KB should be
286 selected (the vast majority of 32bit binaries work perfectly fine
287 with a larger page size).
289 4KB For best 32bit compatibility
290 16KB For best performance
291 64KB For best performance, might give more overhead.
293 If you don't know what to do, choose 4KB.
295 config PARISC_PAGE_SIZE_16KB
297 select HAVE_PAGE_SIZE_16KB
298 depends on PA8X00 && BROKEN && !KFENCE
300 config PARISC_PAGE_SIZE_64KB
302 select HAVE_PAGE_SIZE_64KB
303 depends on PA8X00 && BROKEN && !KFENCE
308 bool "Symmetric multi-processing support"
310 This enables support for systems with more than one CPU. If you have
311 a system with only one CPU, say N. If you have a system with more
314 If you say N here, the kernel will run on uni- and multiprocessor
315 machines, but will use only one CPU of a multiprocessor machine.
316 On a uniprocessor machine, the kernel will run faster if you say N.
318 See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
319 available at <https://www.tldp.org/docs.html#howto>.
321 If you don't know what to do here, say N.
324 bool "Multi-core scheduler support"
325 depends on GENERIC_ARCH_TOPOLOGY && PA8X00
327 Multi-core scheduler support improves the CPU scheduler's decision
328 making when dealing with multi-core CPU chips at a cost of slightly
329 increased overhead in some places. If unsure say N here.
332 bool "Use separate kernel stacks when processing interrupts"
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.
343 config ARCH_SELECT_MEMORY_MODEL
347 config ARCH_SPARSEMEM_ENABLE
351 config ARCH_FLATMEM_ENABLE
354 config ARCH_SPARSEMEM_DEFAULT
356 depends on ARCH_SPARSEMEM_ENABLE
358 source "kernel/Kconfig.hz"
368 int "Maximum number of CPUs (2-32)"
376 config ARCH_SUPPORTS_KEXEC
379 config ARCH_SUPPORTS_KEXEC_FILE
382 config ARCH_SELECTS_KEXEC_FILE
384 depends on KEXEC_FILE
387 source "drivers/parisc/Kconfig"