blob: 43c1c880def6ce8bf7d5e62bb4f1891489a7c9f7 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002config PARISC
3 def_bool y
Yury Norov942fa982018-05-16 11:18:49 +03004 select ARCH_32BIT_OFF_T if !64BIT
Mark Salter4a24fb22013-10-07 22:14:01 -04005 select ARCH_MIGHT_HAVE_PC_PARPORT
Helge Deller366dd4e2016-04-13 22:27:22 +02006 select HAVE_FUNCTION_TRACER
7 select HAVE_FUNCTION_GRAPH_TRACER
Helge Dellerfc791682016-04-13 22:44:54 +02008 select HAVE_SYSCALL_TRACEPOINTS
Helge Deller4530c492013-02-27 00:37:12 +01009 select ARCH_WANT_FRAME_POINTERS
Helge Deller18d98a72016-10-16 00:02:27 +020010 select ARCH_HAS_ELF_RANDOMIZE
Laura Abbottad21fc42017-02-06 16:31:57 -080011 select ARCH_HAS_STRICT_KERNEL_RWX
Helge Dellere35a2ce2017-08-04 23:46:16 +020012 select ARCH_HAS_UBSAN_SANITIZE_ALL
Christoph Hellwig7c703e52018-11-09 09:51:00 +010013 select ARCH_NO_SG_CHAIN
Anshuman Khandual855f9a82021-05-04 18:38:13 -070014 select ARCH_SUPPORTS_HUGETLBFS if PA20
Helge Deller54ac8fc2017-08-04 19:23:53 +020015 select ARCH_SUPPORTS_MEMORY_FAILURE
Helge Delleraeb1e832021-05-04 14:49:14 +020016 select ARCH_STACKWALK
17 select HAVE_RELIABLE_STACKTRACE
Christoph Hellwig2f9237d2020-07-08 09:30:00 +020018 select DMA_OPS
Kyle McMartin9eb16862008-09-10 14:24:07 +000019 select RTC_CLASS
Geert Uytterhoeven3afe6d02009-02-19 16:46:49 +010020 select RTC_DRV_GENERIC
Rusty Russell98a79d62008-12-13 21:19:41 +103021 select INIT_ALL_POSSIBLE
Kyle McMartinf67d3c82009-03-25 14:09:10 +000022 select BUG
Shile Zhang10916702019-12-04 08:46:31 +080023 select BUILDTIME_TABLE_SORT
Christoph Hellwigeb01d422018-11-15 20:05:32 +010024 select HAVE_PCI
Ingo Molnarcdd6c482009-09-21 12:02:48 +020025 select HAVE_PERF_EVENTS
Helge Dellerb6adc162017-08-20 10:52:22 +020026 select HAVE_KERNEL_BZIP2
27 select HAVE_KERNEL_GZIP
28 select HAVE_KERNEL_LZ4
29 select HAVE_KERNEL_LZMA
30 select HAVE_KERNEL_LZO
31 select HAVE_KERNEL_XZ
Kyle McMartin64daa442009-07-02 13:10:29 -040032 select GENERIC_ATOMIC64 if !64BIT
Thomas Gleixner72e73af2011-01-19 20:38:30 +010033 select GENERIC_IRQ_PROBE
Michael S. Tsirkin629a8582011-11-24 21:11:16 +020034 select GENERIC_PCI_IOMAP
Huang Yingdf013ff2011-07-13 13:14:22 +080035 select ARCH_HAVE_NMI_SAFE_CMPXCHG
Thomas Gleixner9a134722012-04-20 13:05:56 +000036 select GENERIC_SMP_IDLE_THREAD
Helge Dellerbf7b4c12017-09-21 21:55:01 +020037 select GENERIC_CPU_DEVICES
Helge Deller61c43942020-12-19 12:45:40 +010038 select GENERIC_LIB_DEVMEM_IS_ALLOWED
Vineet Guptabf14e3b2013-01-18 15:12:24 +053039 select SYSCTL_ARCH_UNALIGN_ALLOW
Helge Dellerfef47e22014-05-05 18:07:12 +020040 select SYSCTL_EXCEPTION_TRACE
David Howells786d35d2012-09-28 14:31:03 +093041 select HAVE_MOD_ARCH_SPECIFIC
Stephen Rothwell4febd952013-03-07 15:48:16 +110042 select VIRT_TO_BUS
David Howells786d35d2012-09-28 14:31:03 +093043 select MODULES_USE_ELF_RELA
Al Viro415bfae2012-10-26 19:59:16 -040044 select CLONE_BACKWARDS
Joe Millenbach4f73bc42013-01-17 22:44:22 -080045 select TTY # Needed for pdc_cons.c
Dave Hansend1a1dc02013-07-01 13:04:42 -070046 select HAVE_DEBUG_STACKOVERFLOW
AKASHI Takahiro7a017722014-02-25 18:16:24 +090047 select HAVE_ARCH_AUDITSYSCALL
George Spelvin773e1c52016-06-07 19:45:06 -040048 select HAVE_ARCH_HASH
Helge Deller62217beb2019-05-03 23:51:00 +020049 select HAVE_ARCH_JUMP_LABEL
50 select HAVE_ARCH_JUMP_LABEL_RELATIVE
Helge Dellerec5c1152021-10-09 22:21:49 +020051 select HAVE_ARCH_KFENCE
Helge Deller910cd322016-03-30 14:14:31 +020052 select HAVE_ARCH_SECCOMP_FILTER
Helge Deller64e2a422016-04-01 22:40:53 +020053 select HAVE_ARCH_TRACEHOOK
Helge Deller75ebedf2018-06-28 22:47:11 +020054 select HAVE_REGS_AND_STACK_ACCESS_API
Helge Deller43b1f6a2016-11-22 18:08:30 +010055 select GENERIC_SCHED_CLOCK
56 select HAVE_UNSTABLE_SCHED_CLOCK if SMP
Arnd Bergmann686092e2020-09-24 15:30:34 +020057 select LEGACY_TIMER_TICK
Zhaoxiu Zengfff7fb02016-05-20 17:03:57 -070058 select CPU_NO_EFFICIENT_FFS
Helge Deller2214c0e2021-10-15 10:41:03 +020059 select THREAD_INFO_IN_TASK
Christoph Hellwigf616ab52018-05-09 06:53:49 +020060 select NEED_DMA_MAP_STATE
Christoph Hellwig86596f02018-04-05 09:44:52 +020061 select NEED_SG_DMA_LENGTH
Sven Schnelleeacbfce2019-04-04 21:14:10 +020062 select HAVE_ARCH_KGDB
Sven Schnelle8858ac82019-04-07 20:10:58 +020063 select HAVE_KPROBES
Sven Schnellee0b59b72019-04-09 19:30:28 +020064 select HAVE_KRETPROBES
Sven Schnelle6ca63662019-06-05 22:32:22 +020065 select HAVE_DYNAMIC_FTRACE if $(cc-option,-fpatchable-function-entry=1,1)
66 select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
Sami Tolvanen3d1dc712021-02-24 14:57:06 -080067 select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY if DYNAMIC_FTRACE
Sven Schnelle52a22e62019-07-23 22:37:52 +020068 select HAVE_KPROBES_ON_FTRACE
69 select HAVE_DYNAMIC_FTRACE_WITH_REGS
Thomas Gleixnercd1a41c2021-02-10 00:40:52 +010070 select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
Masahiro Yamada4aae6832021-07-31 14:22:32 +090071 select TRACE_IRQFLAGS_SUPPORT
Thomas Gleixner72e73af2011-01-19 20:38:30 +010072
Linus Torvalds1da177e2005-04-16 15:20:36 -070073 help
74 The PA-RISC microprocessor is designed by Hewlett-Packard and used
75 in many of their workstations & servers (HP9000 700 and 800 series,
76 and later HP3000 series). The PA-RISC Linux project home page is
Helge Deller24289f52020-06-01 23:00:52 +020077 at <https://parisc.wiki.kernel.org>.
Linus Torvalds1da177e2005-04-16 15:20:36 -070078
Babu Moger74ad3d22017-07-06 09:34:19 -070079config CPU_BIG_ENDIAN
80 def_bool y
81
Linus Torvalds1da177e2005-04-16 15:20:36 -070082config MMU
83 def_bool y
84
85config STACK_GROWSUP
86 def_bool y
87
Nick Piggin95c354f2008-01-30 13:31:20 +010088config GENERIC_LOCKBREAK
89 bool
90 default y
Thomas Gleixner09613e82019-10-15 21:18:02 +020091 depends on SMP && PREEMPTION
Nick Piggin95c354f2008-01-30 13:31:20 +010092
David Howellsf0d1b0b2006-12-08 02:37:49 -080093config ARCH_HAS_ILOG2_U32
94 bool
95 default n
96
97config ARCH_HAS_ILOG2_U64
98 bool
99 default n
100
Helge Deller6891f8a2006-12-16 16:16:50 +0100101config GENERIC_BUG
102 bool
103 default y
104 depends on BUG
105
Akinobu Mita59e18a22006-03-26 01:39:31 -0800106config GENERIC_HWEIGHT
107 bool
108 default y
109
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110config GENERIC_CALIBRATE_DELAY
111 bool
112 default y
113
Ingo Molnar06027bd2006-02-14 13:53:15 -0800114config TIME_LOW_RES
115 bool
116 depends on SMP
117 default y
118
Linus Torvalds1da177e2005-04-16 15:20:36 -0700119# unless you want to implement ACPI on PA-RISC ... ;-)
120config PM
121 bool
122
Helge Deller548f1172009-02-06 21:50:39 +0100123config STACKTRACE_SUPPORT
124 def_bool y
125
Al Viro5cae8412005-05-04 05:39:22 +0100126config ISA_DMA_API
127 bool
Al Viro5cae8412005-05-04 05:39:22 +0100128
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +0100129config ARCH_MAY_HAVE_PC_FDC
130 bool
Grant Grundler8b631342005-10-21 22:52:46 -0400131 depends on BROKEN
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +0100132 default y
133
Kirill A. Shutemovf24ffde2015-04-14 15:45:54 -0700134config PGTABLE_LEVELS
135 int
136 default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
137 default 2
138
Linus Torvalds1da177e2005-04-16 15:20:36 -0700139menu "Processor type and features"
140
141choice
142 prompt "Processor type"
143 default PA7000
144
145config PA7000
146 bool "PA7000/PA7100"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900147 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700148 This is the processor type of your CPU. This information is
149 used for optimizing purposes. In order to compile a kernel
150 that can run on all 32-bit PA CPUs (albeit not optimally fast),
151 you can specify "PA7000" here.
152
153 Specifying "PA8000" here will allow you to select a 64-bit kernel
154 which is required on some machines.
155
156config PA7100LC
157 bool "PA7100LC"
158 help
159 Select this option for the PCX-L processor, as used in the
160 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
161 D200, D210, D300, D310 and E-class
162
163config PA7200
164 bool "PA7200"
165 help
166 Select this option for the PCX-T' processor, as used in the
167 C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
168 K100, K200, K210, K220, K400, K410 and K420
169
170config PA7300LC
171 bool "PA7300LC"
172 help
173 Select this option for the PCX-L2 processor, as used in the
174 744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
175 D220, D230, D320 and D330.
176
177config PA8X00
178 bool "PA8000 and up"
179 help
180 Select this option for PCX-U to PCX-W2 processors.
181
182endchoice
183
184# Define implied options from the CPU selection here
185
186config PA20
187 def_bool y
188 depends on PA8X00
189
190config PA11
191 def_bool y
192 depends on PA7000 || PA7100LC || PA7200 || PA7300LC
Christoph Hellwigc1f59372018-06-19 09:04:55 +0200193 select ARCH_HAS_SYNC_DMA_FOR_CPU
194 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700195
196config PREFETCH
197 def_bool y
Kyle McMartin32104b22006-08-13 20:37:26 -0400198 depends on PA8X00 || PA7200
Linus Torvalds1da177e2005-04-16 15:20:36 -0700199
Helge Deller778e45d2021-03-02 21:07:07 +0100200config PARISC_HUGE_KERNEL
201 def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
202
Helge Dellerec758f92013-01-31 21:44:28 +0000203config MLONGCALLS
Helge Deller778e45d2021-03-02 21:07:07 +0100204 def_bool y if PARISC_HUGE_KERNEL
205 bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
Helge Dellerec758f92013-01-31 21:44:28 +0000206 depends on PA8X00
207 help
208 If you configure the kernel to include many drivers built-in instead
209 as modules, the kernel executable may become too big, so that the
210 linker will not be able to resolve some long branches and fails to link
211 your vmlinux kernel. In that case enabling this option will help you
212 to overcome this limit by using the -mlong-calls compiler option.
213
214 Usually you want to say N here, unless you e.g. want to build
215 a kernel which includes all necessary drivers built-in and which can
216 be used for TFTP booting without the need to have an initrd ramdisk.
217
218 Enabling this option will probably slow down your kernel.
219
Linus Torvalds1da177e2005-04-16 15:20:36 -0700220config 64BIT
221 bool "64-bit kernel"
222 depends on PA8X00
223 help
224 Enable this if you want to support 64bit kernel on PA-RISC platform.
225
226 At the moment, only people willing to use more than 2GB of RAM,
227 or having a 64bit-only capable PA-RISC machine should say Y here.
228
229 Since there is no 64bit userland on PA-RISC, there is no point to
230 enable this option otherwise. The 64bit kernel is significantly bigger
231 and slower than the 32bit one.
232
Helge Deller2fd83032006-04-20 20:40:23 +0000233choice
234 prompt "Kernel page size"
Paul Bolle1c5f8732011-10-12 14:51:12 +0200235 default PARISC_PAGE_SIZE_4KB
Helge Deller2fd83032006-04-20 20:40:23 +0000236
237config PARISC_PAGE_SIZE_4KB
238 bool "4KB"
239 help
240 This lets you select the page size of the kernel. For best
241 performance, a page size of 16KB is recommended. For best
242 compatibility with 32bit applications, a page size of 4KB should be
243 selected (the vast majority of 32bit binaries work perfectly fine
244 with a larger page size).
245
246 4KB For best 32bit compatibility
247 16KB For best performance
248 64KB For best performance, might give more overhead.
249
250 If you don't know what to do, choose 4KB.
251
252config PARISC_PAGE_SIZE_16KB
Kees Cookdaef22c2013-01-16 18:53:21 -0800253 bool "16KB"
Helge Dellerec5c1152021-10-09 22:21:49 +0200254 depends on PA8X00 && BROKEN && !KFENCE
Helge Deller2fd83032006-04-20 20:40:23 +0000255
256config PARISC_PAGE_SIZE_64KB
Kees Cookdaef22c2013-01-16 18:53:21 -0800257 bool "64KB"
Helge Dellerec5c1152021-10-09 22:21:49 +0200258 depends on PA8X00 && BROKEN && !KFENCE
Helge Deller2fd83032006-04-20 20:40:23 +0000259
260endchoice
261
Helge Delleraf21b012017-09-22 22:24:02 +0200262config PARISC_SELF_EXTRACT
263 bool "Build kernel as self-extracting executable"
264 default y
265 help
266 Say Y if you want to build the parisc kernel as a kind of
267 self-extracting executable.
268
269 If you say N here, the kernel will be compressed with gzip
270 which can be loaded by the palo bootloader directly too.
271
272 If you don't know what to do here, say Y.
273
Linus Torvalds1da177e2005-04-16 15:20:36 -0700274config SMP
275 bool "Symmetric multi-processing support"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900276 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700277 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -0800278 a system with only one CPU, say N. If you have a system with more
279 than one CPU, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700280
Robert Graffham4a474152014-01-23 15:55:29 -0800281 If you say N here, the kernel will run on uni- and multiprocessor
Helge Deller2a3f53d2018-03-13 20:56:16 +0100282 machines, but will use only one CPU of a multiprocessor machine.
283 On a uniprocessor machine, the kernel will run faster if you say N.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700284
Mauro Carvalho Chehab4f4cfa62019-06-27 14:56:51 -0300285 See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
Alexander A. Klimov693a0652020-07-13 20:15:25 +0200286 available at <https://www.tldp.org/docs.html#howto>.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700287
288 If you don't know what to do here, say N.
289
Helge Dellerbf7b4c12017-09-21 21:55:01 +0200290config PARISC_CPU_TOPOLOGY
291 bool "Support cpu topology definition"
292 depends on SMP
293 default y
294 help
295 Support PARISC cpu topology definition.
296
297config SCHED_MC
298 bool "Multi-core scheduler support"
299 depends on PARISC_CPU_TOPOLOGY && PA8X00
300 help
301 Multi-core scheduler support improves the CPU scheduler's decision
302 making when dealing with multi-core CPU chips at a cost of slightly
303 increased overhead in some places. If unsure say N here.
304
Helge Deller200c8802013-05-07 20:25:42 +0000305config IRQSTACKS
306 bool "Use separate kernel stacks when processing interrupts"
Helge Deller416821d2013-05-10 21:24:01 +0000307 default y
Helge Deller200c8802013-05-07 20:25:42 +0000308 help
309 If you say Y here the kernel will use separate kernel stacks
310 for handling hard and soft interrupts. This can help avoid
311 overflowing the process kernel stacks.
312
Helge Dellerb7795072021-02-12 16:38:52 +0100313config TLB_PTLOCK
314 bool "Use page table locks in TLB fault handler"
315 depends on SMP
316 default n
317 help
318 Select this option to enable page table locking in the TLB
319 fault handler. This ensures that page table entries are
320 updated consistently on SMP machines at the expense of some
321 loss in performance.
322
Linus Torvalds1da177e2005-04-16 15:20:36 -0700323config HOTPLUG_CPU
324 bool
325 default y if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700327config ARCH_SELECT_MEMORY_MODEL
328 def_bool y
329 depends on 64BIT
330
Helge Dellerdbdf0762019-04-09 21:52:35 +0200331config ARCH_SPARSEMEM_ENABLE
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700332 def_bool y
333 depends on 64BIT
334
335config ARCH_FLATMEM_ENABLE
336 def_bool y
337
Helge Dellerdbdf0762019-04-09 21:52:35 +0200338config ARCH_SPARSEMEM_DEFAULT
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700339 def_bool y
Helge Dellerdbdf0762019-04-09 21:52:35 +0200340 depends on ARCH_SPARSEMEM_ENABLE
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700341
Grant Grundler8b631342005-10-21 22:52:46 -0400342source "kernel/Kconfig.hz"
Dave Hansen3f22ab22005-06-23 00:07:43 -0700343
Linus Torvalds1da177e2005-04-16 15:20:36 -0700344config COMPAT
345 def_bool y
346 depends on 64BIT
347
Helge Dellerbf581e12013-02-19 20:47:37 +0100348config SYSVIPC_COMPAT
349 def_bool y
350 depends on COMPAT && SYSVIPC
351
Helge Deller527973c2013-10-15 19:25:46 +0200352config AUDIT_ARCH
353 def_bool y
354
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355config NR_CPUS
356 int "Maximum number of CPUs (2-32)"
357 range 2 32
358 depends on SMP
Helge Deller68d247a2022-01-11 11:54:48 +0100359 default "4" if 64BIT
360 default "16"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361
Sven Schnellefc697dc2019-09-08 11:33:04 +0200362config KEXEC
363 bool "Kexec system call"
364 select KEXEC_CORE
365 help
366 kexec is a system call that implements the ability to shutdown your
367 current kernel, and to start another kernel. It is like a reboot
368 but it is independent of the system firmware. And like a reboot
369 you can start any kernel with it, not just Linux.
370
371 It is an ongoing process to be certain the hardware in a machine
372 shutdown, so do not be surprised if this code does not
373 initially work for you.
374
Sven Schnelle1191cf42019-09-08 11:33:06 +0200375config KEXEC_FILE
376 bool "kexec file based system call"
377 select KEXEC_CORE
378 select KEXEC_ELF
379 help
380 This enables the kexec_file_load() System call. This is
381 file based and takes file descriptors as system call argument
382 for kernel and initramfs as opposed to list of segments as
383 accepted by previous system call.
384
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385endmenu
386
Linus Torvalds1da177e2005-04-16 15:20:36 -0700387source "drivers/parisc/Kconfig"