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