arch: define CONFIG_PAGE_SIZE_*KB on all architectures
[linux-block.git] / arch / sparc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config 64BIT
3         bool "64-bit kernel" if "$(ARCH)" = "sparc"
4         default "$(ARCH)" = "sparc64"
5         help
6           SPARC is a family of RISC microprocessors designed and marketed by
7           Sun Microsystems, incorporated.  They are very widely found in Sun
8           workstations and clones.
9
10           Say yes to build a 64-bit kernel - formerly known as sparc64
11           Say no to build a 32-bit kernel - formerly known as sparc
12
13 config SPARC
14         bool
15         default y
16         select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
17         select ARCH_MIGHT_HAVE_PC_SERIO
18         select DMA_OPS
19         select OF
20         select OF_PROMTREE
21         select HAVE_ASM_MODVERSIONS
22         select HAVE_ARCH_KGDB if !SMP || SPARC64
23         select HAVE_ARCH_TRACEHOOK
24         select HAVE_ARCH_SECCOMP if SPARC64
25         select HAVE_EXIT_THREAD
26         select HAVE_PCI
27         select SYSCTL_EXCEPTION_TRACE
28         select RTC_CLASS
29         select RTC_DRV_M48T59
30         select RTC_SYSTOHC
31         select HAVE_ARCH_JUMP_LABEL if SPARC64
32         select GENERIC_IRQ_SHOW
33         select ARCH_WANT_IPC_PARSE_VERSION
34         select GENERIC_PCI_IOMAP
35         select HAS_IOPORT
36         select HAVE_HARDLOCKUP_DETECTOR_SPARC64 if SPARC64
37         select HAVE_CBPF_JIT if SPARC32
38         select HAVE_EBPF_JIT if SPARC64
39         select HAVE_DEBUG_BUGVERBOSE
40         select GENERIC_SMP_IDLE_THREAD
41         select MODULES_USE_ELF_RELA
42         select PCI_SYSCALL if PCI
43         select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
44         select ODD_RT_SIGACTION
45         select OLD_SIGSUSPEND
46         select CPU_NO_EFFICIENT_FFS
47         select LOCKDEP_SMALL if LOCKDEP
48         select NEED_DMA_MAP_STATE
49         select NEED_SG_DMA_LENGTH
50         select TRACE_IRQFLAGS_SUPPORT
51
52 config SPARC32
53         def_bool !64BIT
54         select ARCH_32BIT_OFF_T
55         select ARCH_HAS_CPU_FINALIZE_INIT if !SMP
56         select ARCH_HAS_SYNC_DMA_FOR_CPU
57         select CLZ_TAB
58         select DMA_DIRECT_REMAP
59         select GENERIC_ATOMIC64
60         select HAVE_UID16
61         select HAVE_PAGE_SIZE_4KB
62         select LOCK_MM_AND_FIND_VMA
63         select OLD_SIGACTION
64         select ZONE_DMA
65
66 config SPARC64
67         def_bool 64BIT
68         select ALTERNATE_USER_ADDRESS_SPACE
69         select HAVE_FUNCTION_TRACER
70         select HAVE_FUNCTION_GRAPH_TRACER
71         select HAVE_KRETPROBES
72         select HAVE_KPROBES
73         select MMU_GATHER_RCU_TABLE_FREE if SMP
74         select MMU_GATHER_MERGE_VMAS
75         select MMU_GATHER_NO_FLUSH_CACHE
76         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
77         select HAVE_DYNAMIC_FTRACE
78         select HAVE_FTRACE_MCOUNT_RECORD
79         select HAVE_PAGE_SIZE_8KB
80         select HAVE_SYSCALL_TRACEPOINTS
81         select HAVE_CONTEXT_TRACKING_USER
82         select HAVE_TIF_NOHZ
83         select HAVE_DEBUG_KMEMLEAK
84         select IOMMU_HELPER
85         select SPARSE_IRQ
86         select RTC_DRV_CMOS
87         select RTC_DRV_BQ4802
88         select RTC_DRV_SUN4V
89         select RTC_DRV_STARFIRE
90         select HAVE_PERF_EVENTS
91         select PERF_USE_VMALLOC
92         select ARCH_HAVE_NMI_SAFE_CMPXCHG
93         select HAVE_C_RECORDMCOUNT
94         select HAVE_ARCH_AUDITSYSCALL
95         select ARCH_SUPPORTS_ATOMIC_RMW
96         select ARCH_SUPPORTS_DEBUG_PAGEALLOC
97         select HAVE_NMI
98         select HAVE_REGS_AND_STACK_ACCESS_API
99         select ARCH_USE_QUEUED_RWLOCKS
100         select ARCH_USE_QUEUED_SPINLOCKS
101         select GENERIC_TIME_VSYSCALL
102         select ARCH_CLOCKSOURCE_DATA
103         select ARCH_HAS_PTE_SPECIAL
104         select PCI_DOMAINS if PCI
105         select ARCH_HAS_GIGANTIC_PAGE
106         select HAVE_SOFTIRQ_ON_OWN_STACK
107         select HAVE_SETUP_PER_CPU_AREA
108         select NEED_PER_CPU_EMBED_FIRST_CHUNK
109         select NEED_PER_CPU_PAGE_FIRST_CHUNK
110
111 config ARCH_PROC_KCORE_TEXT
112         def_bool y
113
114 config CPU_BIG_ENDIAN
115         def_bool y
116
117 config ARCH_ATU
118         bool
119         default y if SPARC64
120
121 config STACKTRACE_SUPPORT
122         bool
123         default y if SPARC64
124
125 config LOCKDEP_SUPPORT
126         bool
127         default y if SPARC64
128
129 config ARCH_HIBERNATION_POSSIBLE
130         def_bool y if SPARC64
131
132 config AUDIT_ARCH
133         bool
134         default y
135
136 config MMU
137         bool
138         default y
139
140 config HIGHMEM
141         bool
142         default y if SPARC32
143         select KMAP_LOCAL
144
145 config GENERIC_ISA_DMA
146         bool
147         default y if SPARC32
148
149 config PGTABLE_LEVELS
150         default 4 if 64BIT
151         default 3
152
153 config ARCH_SUPPORTS_UPROBES
154         def_bool y if SPARC64
155
156 menu "Processor type and features"
157
158 config SMP
159         bool "Symmetric multi-processing support"
160         help
161           This enables support for systems with more than one CPU. If you have
162           a system with only one CPU, say N. If you have a system with more
163           than one CPU, say Y.
164
165           If you say N here, the kernel will run on uni- and multiprocessor
166           machines, but will use only one CPU of a multiprocessor machine. If
167           you say Y here, the kernel will run on many, but not all,
168           uniprocessor machines. On a uniprocessor machine, the kernel
169           will run faster if you say N here.
170
171           People using multiprocessor machines who say Y here should also say
172           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
173           Management" code will be disabled if you say Y here.
174
175           See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
176           available at <https://www.tldp.org/docs.html#howto>.
177
178           If you don't know what to do here, say N.
179
180 config NR_CPUS
181         int "Maximum number of CPUs"
182         depends on SMP
183         range 2 32 if SPARC32
184         range 2 4096 if SPARC64
185         default 32 if SPARC32
186         default 4096 if SPARC64
187
188 source "kernel/Kconfig.hz"
189
190 config GENERIC_HWEIGHT
191         bool
192         default y
193
194 config GENERIC_CALIBRATE_DELAY
195         bool
196         default y
197
198 config ARCH_MAY_HAVE_PC_FDC
199         bool
200         default y
201
202 config EMULATED_CMPXCHG
203         bool
204         default y if SPARC32
205         help
206           Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
207           is emulated, and therefore it is not completely atomic.
208
209 # Makefile helpers
210 config SPARC32_SMP
211         bool
212         default y
213         depends on SPARC32 && SMP
214
215 config SPARC64_SMP
216         bool
217         default y
218         depends on SPARC64 && SMP
219
220 config EARLYFB
221         bool "Support for early boot text console"
222         default y
223         depends on SPARC64
224         help
225           Say Y here to enable a faster early framebuffer boot console.
226
227 config HOTPLUG_CPU
228         bool "Support for hot-pluggable CPUs"
229         depends on SPARC64 && SMP
230         help
231           Say Y here to experiment with turning CPUs off and on.  CPUs
232           can be controlled through /sys/devices/system/cpu/cpu#.
233           Say N if you want to disable CPU hotplug.
234
235 if SPARC64
236 source "drivers/cpufreq/Kconfig"
237 endif
238
239 config US3_MC
240         tristate "UltraSPARC-III Memory Controller driver"
241         depends on SPARC64
242         default y
243         help
244           This adds a driver for the UltraSPARC-III memory controller.
245           Loading this driver allows exact mnemonic strings to be
246           printed in the event of a memory error, so that the faulty DIMM
247           on the motherboard can be matched to the error.
248
249           If in doubt, say Y, as this information can be very useful.
250
251 # Global things across all Sun machines.
252 config GENERIC_LOCKBREAK
253         bool
254         default y
255         depends on SPARC64 && SMP && PREEMPTION
256
257 config NUMA
258         bool "NUMA support"
259         depends on SPARC64 && SMP
260
261 config NODES_SHIFT
262         int "Maximum NUMA Nodes (as a power of 2)"
263         range 4 5 if SPARC64
264         default "5"
265         depends on NUMA
266         help
267           Specify the maximum number of NUMA Nodes available on the target
268           system.  Increases memory reserved to accommodate various tables.
269
270 config ARCH_SPARSEMEM_ENABLE
271         def_bool y if SPARC64
272         select SPARSEMEM_VMEMMAP_ENABLE
273
274 config ARCH_SPARSEMEM_DEFAULT
275         def_bool y if SPARC64
276
277 config ARCH_FORCE_MAX_ORDER
278         int "Order of maximal physically contiguous allocations"
279         default "12"
280         help
281           The kernel page allocator limits the size of maximal physically
282           contiguous allocations. The limit is called MAX_PAGE_ORDER and it
283           defines the maximal power of two of number of pages that can be
284           allocated as a single contiguous block. This option allows
285           overriding the default setting when ability to allocate very
286           large blocks of physically contiguous memory is required.
287
288           Don't change if unsure.
289
290 if SPARC64 || COMPILE_TEST
291 source "kernel/power/Kconfig"
292 endif
293
294 config SCHED_SMT
295         bool "SMT (Hyperthreading) scheduler support"
296         depends on SPARC64 && SMP
297         default y
298         help
299           SMT scheduler support improves the CPU scheduler's decision making
300           when dealing with SPARC cpus at a cost of slightly increased overhead
301           in some places. If unsure say N here.
302
303 config SCHED_MC
304         bool "Multi-core scheduler support"
305         depends on SPARC64 && SMP
306         default y
307         help
308           Multi-core scheduler support improves the CPU scheduler's decision
309           making when dealing with multi-core CPU chips at a cost of slightly
310           increased overhead in some places. If unsure say N here.
311
312 config CMDLINE_BOOL
313         bool "Default bootloader kernel arguments"
314         depends on SPARC64
315
316 config CMDLINE
317         string "Initial kernel command string"
318         depends on CMDLINE_BOOL
319         default "console=ttyS0,9600 root=/dev/sda1"
320         help
321           Say Y here if you want to be able to pass default arguments to
322           the kernel. This will be overridden by the bootloader, if you
323           use one (such as SILO). This is most useful if you want to boot
324           a kernel from TFTP, and want default options to be available
325           with having them passed on the command line.
326
327           NOTE: This option WILL override the PROM bootargs setting!
328
329 config SUN_PM
330         bool
331         default y if SPARC32
332         help
333           Enable power management and CPU standby features on supported
334           SPARC platforms.
335
336 config SPARC_LED
337         tristate "Sun4m LED driver"
338         depends on SPARC32
339         help
340           This driver toggles the front-panel LED on sun4m systems
341           in a user-specifiable manner.  Its state can be probed
342           by reading /proc/led and its blinking mode can be changed
343           via writes to /proc/led
344
345 config SERIAL_CONSOLE
346         bool
347         depends on SPARC32
348         default y
349         help
350           If you say Y here, it will be possible to use a serial port as the
351           system console (the system console is the device which receives all
352           kernel messages and warnings and which allows logins in single user
353           mode). This could be useful if some terminal or printer is connected
354           to that serial port.
355
356           Even if you say Y here, the currently visible virtual console
357           (/dev/tty0) will still be used as the system console by default, but
358           you can alter that using a kernel command line option such as
359           "console=ttyS1". (Try "man bootparam" or see the documentation of
360           your boot loader (silo) about how to pass options to the kernel at
361           boot time.)
362
363           If you don't have a graphics card installed and you say Y here, the
364           kernel will automatically use the first serial line, /dev/ttyS0, as
365           system console.
366
367           If unsure, say N.
368
369 config SPARC_LEON
370         bool "Sparc Leon processor family"
371         depends on SPARC32
372         select USB_EHCI_BIG_ENDIAN_MMIO
373         select USB_EHCI_BIG_ENDIAN_DESC
374         select USB_UHCI_BIG_ENDIAN_MMIO
375         select USB_UHCI_BIG_ENDIAN_DESC
376         help
377           If you say Y here if you are running on a SPARC-LEON processor.
378           The LEON processor is a synthesizable VHDL model of the
379           SPARC-v8 standard. LEON is  part of the GRLIB collection of
380           IP cores that are distributed under GPL. GRLIB can be downloaded
381           from www.gaisler.com. You can download a sparc-linux cross-compilation
382           toolchain at www.gaisler.com.
383
384 if SPARC_LEON
385 menu "U-Boot options"
386
387 config UBOOT_LOAD_ADDR
388         hex "uImage Load Address"
389         default 0x40004000
390         help
391          U-Boot kernel load address, the address in physical address space
392          where u-boot will place the Linux kernel before booting it.
393          This address is normally the base address of main memory + 0x4000.
394
395 config UBOOT_FLASH_ADDR
396         hex "uImage.o Load Address"
397         default 0x00080000
398         help
399          Optional setting only affecting the uImage.o ELF-image used to
400          download the uImage file to the target using a ELF-loader other than
401          U-Boot. It may for example be used to download an uImage to FLASH with
402          the GRMON utility before even starting u-boot.
403
404 config UBOOT_ENTRY_ADDR
405         hex "uImage Entry Address"
406         default 0xf0004000
407         help
408          Do not change this unless you know what you're doing. This is
409          hardcoded by the SPARC32 and LEON port.
410
411          This is the virtual address u-boot jumps to when booting the Linux
412          Kernel.
413
414 endmenu
415 endif
416
417 endmenu
418
419 menu "Bus options (PCI etc.)"
420 config SBUS
421         bool
422         default y
423
424 config SBUSCHAR
425         bool
426         default y
427
428 config SUN_LDOMS
429         bool "Sun Logical Domains support"
430         depends on SPARC64
431         help
432           Say Y here is you want to support virtual devices via
433           Logical Domains.
434
435 config PCIC_PCI
436         bool
437         depends on PCI && SPARC32 && !SPARC_LEON
438         default y
439
440 config LEON_PCI
441         bool
442         depends on PCI && SPARC_LEON
443         default y
444
445 config SPARC_GRPCI1
446         bool "GRPCI Host Bridge Support"
447         depends on LEON_PCI
448         default y
449         help
450           Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
451           PCI host controller is typically found in GRLIB SPARC32/LEON
452           systems. The driver has one property (all_pci_errors) controlled
453           from the bootloader that makes the GRPCI to generate interrupts
454           on detected PCI Parity and System errors.
455
456 config SPARC_GRPCI2
457         bool "GRPCI2 Host Bridge Support"
458         depends on LEON_PCI
459         default y
460         help
461           Say Y here to include the GRPCI2 Host Bridge Driver.
462
463 config SUN_OPENPROMFS
464         tristate "Openprom tree appears in /proc/openprom"
465         help
466           If you say Y, the OpenPROM device tree will be available as a
467           virtual file system, which you can mount to /proc/openprom by "mount
468           -t openpromfs none /proc/openprom".
469
470           To compile the /proc/openprom support as a module, choose M here: the
471           module will be called openpromfs.
472
473           Only choose N if you know in advance that you will not need to modify
474           OpenPROM settings on the running system.
475
476 # Makefile helpers
477 config SPARC64_PCI
478         bool
479         default y
480         depends on SPARC64 && PCI
481
482 config SPARC64_PCI_MSI
483         bool
484         default y
485         depends on SPARC64_PCI && PCI_MSI
486
487 endmenu
488
489 config COMPAT
490         bool
491         depends on SPARC64
492         default y
493         select HAVE_UID16
494         select ARCH_WANT_OLD_COMPAT_IPC
495         select COMPAT_OLD_SIGACTION
496
497 source "drivers/sbus/char/Kconfig"