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