blob: afc3b8d03572684d649e7fe82ef88839c0e0714e [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
Sam Ravnborgec7748b2008-02-09 10:46:40 +01006 select HAVE_IDE
Helge Deller366dd4e2016-04-13 22:27:22 +02007 select HAVE_FUNCTION_TRACER
8 select HAVE_FUNCTION_GRAPH_TRACER
Helge Dellerfc791682016-04-13 22:44:54 +02009 select HAVE_SYSCALL_TRACEPOINTS
Helge Deller4530c492013-02-27 00:37:12 +010010 select ARCH_WANT_FRAME_POINTERS
Helge Deller18d98a72016-10-16 00:02:27 +020011 select ARCH_HAS_ELF_RANDOMIZE
Laura Abbottad21fc42017-02-06 16:31:57 -080012 select ARCH_HAS_STRICT_KERNEL_RWX
Helge Dellere35a2ce2017-08-04 23:46:16 +020013 select ARCH_HAS_UBSAN_SANITIZE_ALL
Christoph Hellwig7c703e52018-11-09 09:51:00 +010014 select ARCH_NO_SG_CHAIN
Helge Deller54ac8fc2017-08-04 19:23:53 +020015 select ARCH_SUPPORTS_MEMORY_FAILURE
Christoph Hellwig2f9237d2020-07-08 09:30:00 +020016 select DMA_OPS
Kyle McMartin9eb16862008-09-10 14:24:07 +000017 select RTC_CLASS
Geert Uytterhoeven3afe6d02009-02-19 16:46:49 +010018 select RTC_DRV_GENERIC
Rusty Russell98a79d62008-12-13 21:19:41 +103019 select INIT_ALL_POSSIBLE
Kyle McMartinf67d3c82009-03-25 14:09:10 +000020 select BUG
Shile Zhang10916702019-12-04 08:46:31 +080021 select BUILDTIME_TABLE_SORT
Christoph Hellwigeb01d422018-11-15 20:05:32 +010022 select HAVE_PCI
Ingo Molnarcdd6c482009-09-21 12:02:48 +020023 select HAVE_PERF_EVENTS
Helge Dellerb6adc162017-08-20 10:52:22 +020024 select HAVE_KERNEL_BZIP2
25 select HAVE_KERNEL_GZIP
26 select HAVE_KERNEL_LZ4
27 select HAVE_KERNEL_LZMA
28 select HAVE_KERNEL_LZO
29 select HAVE_KERNEL_XZ
Kyle McMartin64daa442009-07-02 13:10:29 -040030 select GENERIC_ATOMIC64 if !64BIT
Thomas Gleixner72e73af2011-01-19 20:38:30 +010031 select GENERIC_IRQ_PROBE
Michael S. Tsirkin629a8582011-11-24 21:11:16 +020032 select GENERIC_PCI_IOMAP
Huang Yingdf013ff2011-07-13 13:14:22 +080033 select ARCH_HAVE_NMI_SAFE_CMPXCHG
Thomas Gleixner9a134722012-04-20 13:05:56 +000034 select GENERIC_SMP_IDLE_THREAD
Helge Dellerbf7b4c12017-09-21 21:55:01 +020035 select GENERIC_CPU_DEVICES
James Bottomleyb1195c02012-05-26 09:48:19 +010036 select GENERIC_STRNCPY_FROM_USER
Helge Deller61c43942020-12-19 12:45:40 +010037 select GENERIC_LIB_DEVMEM_IS_ALLOWED
Vineet Guptabf14e3b2013-01-18 15:12:24 +053038 select SYSCTL_ARCH_UNALIGN_ALLOW
Helge Dellerfef47e22014-05-05 18:07:12 +020039 select SYSCTL_EXCEPTION_TRACE
David Howells786d35d2012-09-28 14:31:03 +093040 select HAVE_MOD_ARCH_SPECIFIC
Stephen Rothwell4febd952013-03-07 15:48:16 +110041 select VIRT_TO_BUS
David Howells786d35d2012-09-28 14:31:03 +093042 select MODULES_USE_ELF_RELA
Al Viro415bfae2012-10-26 19:59:16 -040043 select CLONE_BACKWARDS
Joe Millenbach4f73bc42013-01-17 22:44:22 -080044 select TTY # Needed for pdc_cons.c
Dave Hansend1a1dc02013-07-01 13:04:42 -070045 select HAVE_DEBUG_STACKOVERFLOW
AKASHI Takahiro7a017722014-02-25 18:16:24 +090046 select HAVE_ARCH_AUDITSYSCALL
George Spelvin773e1c52016-06-07 19:45:06 -040047 select HAVE_ARCH_HASH
Helge Deller62217beb2019-05-03 23:51:00 +020048 select HAVE_ARCH_JUMP_LABEL
49 select HAVE_ARCH_JUMP_LABEL_RELATIVE
Helge Deller910cd322016-03-30 14:14:31 +020050 select HAVE_ARCH_SECCOMP_FILTER
Helge Deller64e2a422016-04-01 22:40:53 +020051 select HAVE_ARCH_TRACEHOOK
Helge Deller75ebedf2018-06-28 22:47:11 +020052 select HAVE_REGS_AND_STACK_ACCESS_API
Helge Deller43b1f6a2016-11-22 18:08:30 +010053 select GENERIC_SCHED_CLOCK
54 select HAVE_UNSTABLE_SCHED_CLOCK if SMP
Arnd Bergmann686092e2020-09-24 15:30:34 +020055 select LEGACY_TIMER_TICK
Zhaoxiu Zengfff7fb02016-05-20 17:03:57 -070056 select CPU_NO_EFFICIENT_FFS
Christoph Hellwigf616ab52018-05-09 06:53:49 +020057 select NEED_DMA_MAP_STATE
Christoph Hellwig86596f02018-04-05 09:44:52 +020058 select NEED_SG_DMA_LENGTH
Sven Schnelleeacbfce2019-04-04 21:14:10 +020059 select HAVE_ARCH_KGDB
Sven Schnelle8858ac82019-04-07 20:10:58 +020060 select HAVE_KPROBES
Sven Schnellee0b59b72019-04-09 19:30:28 +020061 select HAVE_KRETPROBES
Sven Schnelle6ca63662019-06-05 22:32:22 +020062 select HAVE_DYNAMIC_FTRACE if $(cc-option,-fpatchable-function-entry=1,1)
63 select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
Sami Tolvanen3d1dc712021-02-24 14:57:06 -080064 select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY if DYNAMIC_FTRACE
Sven Schnelle52a22e62019-07-23 22:37:52 +020065 select HAVE_KPROBES_ON_FTRACE
66 select HAVE_DYNAMIC_FTRACE_WITH_REGS
Thomas Gleixnercd1a41c2021-02-10 00:40:52 +010067 select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
Christoph Hellwig5e6e9852020-09-03 16:22:35 +020068 select SET_FS
Thomas Gleixner72e73af2011-01-19 20:38:30 +010069
Linus Torvalds1da177e2005-04-16 15:20:36 -070070 help
71 The PA-RISC microprocessor is designed by Hewlett-Packard and used
72 in many of their workstations & servers (HP9000 700 and 800 series,
73 and later HP3000 series). The PA-RISC Linux project home page is
Helge Deller24289f52020-06-01 23:00:52 +020074 at <https://parisc.wiki.kernel.org>.
Linus Torvalds1da177e2005-04-16 15:20:36 -070075
Babu Moger74ad3d22017-07-06 09:34:19 -070076config CPU_BIG_ENDIAN
77 def_bool y
78
Linus Torvalds1da177e2005-04-16 15:20:36 -070079config MMU
80 def_bool y
81
82config STACK_GROWSUP
83 def_bool y
84
Helge Dellerededa082020-03-26 23:31:43 +010085config ARCH_DEFCONFIG
86 string
87 default "arch/parisc/configs/generic-32bit_defconfig" if !64BIT
88 default "arch/parisc/configs/generic-64bit_defconfig" if 64BIT
89
Nick Piggin95c354f2008-01-30 13:31:20 +010090config GENERIC_LOCKBREAK
91 bool
92 default y
Thomas Gleixner09613e82019-10-15 21:18:02 +020093 depends on SMP && PREEMPTION
Nick Piggin95c354f2008-01-30 13:31:20 +010094
David Howellsf0d1b0b2006-12-08 02:37:49 -080095config ARCH_HAS_ILOG2_U32
96 bool
97 default n
98
99config ARCH_HAS_ILOG2_U64
100 bool
101 default n
102
Helge Deller6891f8a2006-12-16 16:16:50 +0100103config GENERIC_BUG
104 bool
105 default y
106 depends on BUG
107
Akinobu Mita59e18a22006-03-26 01:39:31 -0800108config GENERIC_HWEIGHT
109 bool
110 default y
111
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112config GENERIC_CALIBRATE_DELAY
113 bool
114 default y
115
Ingo Molnar06027bd2006-02-14 13:53:15 -0800116config TIME_LOW_RES
117 bool
118 depends on SMP
119 default y
120
Linus Torvalds1da177e2005-04-16 15:20:36 -0700121# unless you want to implement ACPI on PA-RISC ... ;-)
122config PM
123 bool
124
Helge Deller548f1172009-02-06 21:50:39 +0100125config STACKTRACE_SUPPORT
126 def_bool y
127
Al Viro5cae8412005-05-04 05:39:22 +0100128config ISA_DMA_API
129 bool
Al Viro5cae8412005-05-04 05:39:22 +0100130
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +0100131config ARCH_MAY_HAVE_PC_FDC
132 bool
Grant Grundler8b631342005-10-21 22:52:46 -0400133 depends on BROKEN
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +0100134 default y
135
Kirill A. Shutemovf24ffde2015-04-14 15:45:54 -0700136config PGTABLE_LEVELS
137 int
138 default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
139 default 2
140
Helge Deller736d2162015-11-22 00:07:06 +0100141config SYS_SUPPORTS_HUGETLBFS
142 def_bool y if PA20
143
Linus Torvalds1da177e2005-04-16 15:20:36 -0700144
145menu "Processor type and features"
146
147choice
148 prompt "Processor type"
149 default PA7000
150
151config PA7000
152 bool "PA7000/PA7100"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900153 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700154 This is the processor type of your CPU. This information is
155 used for optimizing purposes. In order to compile a kernel
156 that can run on all 32-bit PA CPUs (albeit not optimally fast),
157 you can specify "PA7000" here.
158
159 Specifying "PA8000" here will allow you to select a 64-bit kernel
160 which is required on some machines.
161
162config PA7100LC
163 bool "PA7100LC"
164 help
165 Select this option for the PCX-L processor, as used in the
166 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
167 D200, D210, D300, D310 and E-class
168
169config PA7200
170 bool "PA7200"
171 help
172 Select this option for the PCX-T' processor, as used in the
173 C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
174 K100, K200, K210, K220, K400, K410 and K420
175
176config PA7300LC
177 bool "PA7300LC"
178 help
179 Select this option for the PCX-L2 processor, as used in the
180 744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
181 D220, D230, D320 and D330.
182
183config PA8X00
184 bool "PA8000 and up"
185 help
186 Select this option for PCX-U to PCX-W2 processors.
187
188endchoice
189
190# Define implied options from the CPU selection here
191
192config PA20
193 def_bool y
194 depends on PA8X00
195
196config PA11
197 def_bool y
198 depends on PA7000 || PA7100LC || PA7200 || PA7300LC
Christoph Hellwigc1f59372018-06-19 09:04:55 +0200199 select ARCH_HAS_SYNC_DMA_FOR_CPU
200 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201
202config PREFETCH
203 def_bool y
Kyle McMartin32104b22006-08-13 20:37:26 -0400204 depends on PA8X00 || PA7200
Linus Torvalds1da177e2005-04-16 15:20:36 -0700205
Helge Deller778e45d2021-03-02 21:07:07 +0100206config PARISC_HUGE_KERNEL
207 def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
208
Helge Dellerec758f92013-01-31 21:44:28 +0000209config MLONGCALLS
Helge Deller778e45d2021-03-02 21:07:07 +0100210 def_bool y if PARISC_HUGE_KERNEL
211 bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
Helge Dellerec758f92013-01-31 21:44:28 +0000212 depends on PA8X00
213 help
214 If you configure the kernel to include many drivers built-in instead
215 as modules, the kernel executable may become too big, so that the
216 linker will not be able to resolve some long branches and fails to link
217 your vmlinux kernel. In that case enabling this option will help you
218 to overcome this limit by using the -mlong-calls compiler option.
219
220 Usually you want to say N here, unless you e.g. want to build
221 a kernel which includes all necessary drivers built-in and which can
222 be used for TFTP booting without the need to have an initrd ramdisk.
223
224 Enabling this option will probably slow down your kernel.
225
Linus Torvalds1da177e2005-04-16 15:20:36 -0700226config 64BIT
227 bool "64-bit kernel"
228 depends on PA8X00
229 help
230 Enable this if you want to support 64bit kernel on PA-RISC platform.
231
232 At the moment, only people willing to use more than 2GB of RAM,
233 or having a 64bit-only capable PA-RISC machine should say Y here.
234
235 Since there is no 64bit userland on PA-RISC, there is no point to
236 enable this option otherwise. The 64bit kernel is significantly bigger
237 and slower than the 32bit one.
238
Helge Deller2fd83032006-04-20 20:40:23 +0000239choice
240 prompt "Kernel page size"
Paul Bolle1c5f8732011-10-12 14:51:12 +0200241 default PARISC_PAGE_SIZE_4KB
Helge Deller2fd83032006-04-20 20:40:23 +0000242
243config PARISC_PAGE_SIZE_4KB
244 bool "4KB"
245 help
246 This lets you select the page size of the kernel. For best
247 performance, a page size of 16KB is recommended. For best
248 compatibility with 32bit applications, a page size of 4KB should be
249 selected (the vast majority of 32bit binaries work perfectly fine
250 with a larger page size).
251
252 4KB For best 32bit compatibility
253 16KB For best performance
254 64KB For best performance, might give more overhead.
255
256 If you don't know what to do, choose 4KB.
257
258config PARISC_PAGE_SIZE_16KB
Kees Cookdaef22c2013-01-16 18:53:21 -0800259 bool "16KB"
Helge Deller1c971f32018-06-15 22:33:44 +0200260 depends on PA8X00 && BROKEN
Helge Deller2fd83032006-04-20 20:40:23 +0000261
262config PARISC_PAGE_SIZE_64KB
Kees Cookdaef22c2013-01-16 18:53:21 -0800263 bool "64KB"
Helge Deller1c971f32018-06-15 22:33:44 +0200264 depends on PA8X00 && BROKEN
Helge Deller2fd83032006-04-20 20:40:23 +0000265
266endchoice
267
Helge Delleraf21b012017-09-22 22:24:02 +0200268config PARISC_SELF_EXTRACT
269 bool "Build kernel as self-extracting executable"
270 default y
271 help
272 Say Y if you want to build the parisc kernel as a kind of
273 self-extracting executable.
274
275 If you say N here, the kernel will be compressed with gzip
276 which can be loaded by the palo bootloader directly too.
277
278 If you don't know what to do here, say Y.
279
Linus Torvalds1da177e2005-04-16 15:20:36 -0700280config SMP
281 bool "Symmetric multi-processing support"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900282 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700283 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -0800284 a system with only one CPU, say N. If you have a system with more
285 than one CPU, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700286
Robert Graffham4a474152014-01-23 15:55:29 -0800287 If you say N here, the kernel will run on uni- and multiprocessor
Helge Deller2a3f53d2018-03-13 20:56:16 +0100288 machines, but will use only one CPU of a multiprocessor machine.
289 On a uniprocessor machine, the kernel will run faster if you say N.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700290
Mauro Carvalho Chehab4f4cfa62019-06-27 14:56:51 -0300291 See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
Alexander A. Klimov693a0652020-07-13 20:15:25 +0200292 available at <https://www.tldp.org/docs.html#howto>.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700293
294 If you don't know what to do here, say N.
295
Helge Dellerbf7b4c12017-09-21 21:55:01 +0200296config PARISC_CPU_TOPOLOGY
297 bool "Support cpu topology definition"
298 depends on SMP
299 default y
300 help
301 Support PARISC cpu topology definition.
302
303config SCHED_MC
304 bool "Multi-core scheduler support"
305 depends on PARISC_CPU_TOPOLOGY && PA8X00
306 help
307 Multi-core scheduler support improves the CPU scheduler's decision
308 making when dealing with multi-core CPU chips at a cost of slightly
309 increased overhead in some places. If unsure say N here.
310
Helge Deller200c8802013-05-07 20:25:42 +0000311config IRQSTACKS
312 bool "Use separate kernel stacks when processing interrupts"
Helge Deller416821d2013-05-10 21:24:01 +0000313 default y
Helge Deller200c8802013-05-07 20:25:42 +0000314 help
315 If you say Y here the kernel will use separate kernel stacks
316 for handling hard and soft interrupts. This can help avoid
317 overflowing the process kernel stacks.
318
Helge Dellerb7795072021-02-12 16:38:52 +0100319config TLB_PTLOCK
320 bool "Use page table locks in TLB fault handler"
321 depends on SMP
322 default n
323 help
324 Select this option to enable page table locking in the TLB
325 fault handler. This ensures that page table entries are
326 updated consistently on SMP machines at the expense of some
327 loss in performance.
328
Linus Torvalds1da177e2005-04-16 15:20:36 -0700329config HOTPLUG_CPU
330 bool
331 default y if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700332
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700333config ARCH_SELECT_MEMORY_MODEL
334 def_bool y
335 depends on 64BIT
336
Helge Dellerdbdf0762019-04-09 21:52:35 +0200337config ARCH_SPARSEMEM_ENABLE
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700338 def_bool y
339 depends on 64BIT
340
341config ARCH_FLATMEM_ENABLE
342 def_bool y
343
Helge Dellerdbdf0762019-04-09 21:52:35 +0200344config ARCH_SPARSEMEM_DEFAULT
Kyle McMartina2ba82c2006-01-27 23:59:36 -0700345 def_bool y
Helge Dellerdbdf0762019-04-09 21:52:35 +0200346 depends on ARCH_SPARSEMEM_ENABLE
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700347
Grant Grundler8b631342005-10-21 22:52:46 -0400348source "kernel/Kconfig.hz"
Dave Hansen3f22ab22005-06-23 00:07:43 -0700349
Linus Torvalds1da177e2005-04-16 15:20:36 -0700350config COMPAT
351 def_bool y
352 depends on 64BIT
353
Helge Dellerbf581e12013-02-19 20:47:37 +0100354config SYSVIPC_COMPAT
355 def_bool y
356 depends on COMPAT && SYSVIPC
357
Helge Deller527973c2013-10-15 19:25:46 +0200358config AUDIT_ARCH
359 def_bool y
360
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361config NR_CPUS
362 int "Maximum number of CPUs (2-32)"
363 range 2 32
364 depends on SMP
Helge Deller435d34c2018-06-15 22:38:22 +0200365 default "4"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700366
Sven Schnellefc697dc2019-09-08 11:33:04 +0200367config KEXEC
368 bool "Kexec system call"
369 select KEXEC_CORE
370 help
371 kexec is a system call that implements the ability to shutdown your
372 current kernel, and to start another kernel. It is like a reboot
373 but it is independent of the system firmware. And like a reboot
374 you can start any kernel with it, not just Linux.
375
376 It is an ongoing process to be certain the hardware in a machine
377 shutdown, so do not be surprised if this code does not
378 initially work for you.
379
Sven Schnelle1191cf42019-09-08 11:33:06 +0200380config KEXEC_FILE
381 bool "kexec file based system call"
382 select KEXEC_CORE
383 select KEXEC_ELF
384 help
385 This enables the kexec_file_load() System call. This is
386 file based and takes file descriptors as system call argument
387 for kernel and initramfs as opposed to list of segments as
388 accepted by previous system call.
389
Linus Torvalds1da177e2005-04-16 15:20:36 -0700390endmenu
391
Helge Deller024f5b52020-08-29 10:02:38 +0200392source "drivers/firmware/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393
394source "drivers/parisc/Kconfig"