xref: /openbmc/linux/arch/sparc/Kconfig (revision 609e478b)
1config 64BIT
2	bool "64-bit kernel" if ARCH = "sparc"
3	default ARCH = "sparc64"
4	help
5	  SPARC is a family of RISC microprocessors designed and marketed by
6	  Sun Microsystems, incorporated.  They are very widely found in Sun
7	  workstations and clones.
8
9	  Say yes to build a 64-bit kernel - formerly known as sparc64
10	  Say no to build a 32-bit kernel - formerly known as sparc
11
12config SPARC
13	bool
14	default y
15	select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
16	select ARCH_MIGHT_HAVE_PC_SERIO
17	select OF
18	select OF_PROMTREE
19	select HAVE_IDE
20	select HAVE_OPROFILE
21	select HAVE_ARCH_KGDB if !SMP || SPARC64
22	select HAVE_ARCH_TRACEHOOK
23	select SYSCTL_EXCEPTION_TRACE
24	select ARCH_WANT_OPTIONAL_GPIOLIB
25	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
26	select RTC_CLASS
27	select RTC_DRV_M48T59
28	select HAVE_DMA_ATTRS
29	select HAVE_DMA_API_DEBUG
30	select HAVE_ARCH_JUMP_LABEL if SPARC64
31	select GENERIC_IRQ_SHOW
32	select ARCH_WANT_IPC_PARSE_VERSION
33	select GENERIC_PCI_IOMAP
34	select HAVE_NMI_WATCHDOG if SPARC64
35	select HAVE_BPF_JIT
36	select HAVE_DEBUG_BUGVERBOSE
37	select GENERIC_SMP_IDLE_THREAD
38	select GENERIC_CMOS_UPDATE
39	select GENERIC_CLOCKEVENTS
40	select GENERIC_STRNCPY_FROM_USER
41	select GENERIC_STRNLEN_USER
42	select MODULES_USE_ELF_RELA
43	select ODD_RT_SIGACTION
44	select OLD_SIGSUSPEND
45	select ARCH_HAS_SG_CHAIN
46
47config SPARC32
48	def_bool !64BIT
49	select GENERIC_ATOMIC64
50	select CLZ_TAB
51	select HAVE_UID16
52	select OLD_SIGACTION
53
54config SPARC64
55	def_bool 64BIT
56	select HAVE_FUNCTION_TRACER
57	select HAVE_FUNCTION_GRAPH_TRACER
58	select HAVE_FUNCTION_GRAPH_FP_TEST
59	select HAVE_KRETPROBES
60	select HAVE_KPROBES
61	select HAVE_RCU_TABLE_FREE if SMP
62	select HAVE_MEMBLOCK
63	select HAVE_MEMBLOCK_NODE_MAP
64	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
65	select HAVE_DYNAMIC_FTRACE
66	select HAVE_FTRACE_MCOUNT_RECORD
67	select HAVE_SYSCALL_TRACEPOINTS
68	select HAVE_CONTEXT_TRACKING
69	select HAVE_DEBUG_KMEMLEAK
70	select SPARSE_IRQ
71	select RTC_DRV_CMOS
72	select RTC_DRV_BQ4802
73	select RTC_DRV_SUN4V
74	select RTC_DRV_STARFIRE
75	select HAVE_PERF_EVENTS
76	select PERF_USE_VMALLOC
77	select IRQ_PREFLOW_FASTEOI
78	select ARCH_HAVE_NMI_SAFE_CMPXCHG
79	select HAVE_C_RECORDMCOUNT
80	select NO_BOOTMEM
81	select HAVE_ARCH_AUDITSYSCALL
82	select ARCH_SUPPORTS_ATOMIC_RMW
83
84config ARCH_DEFCONFIG
85	string
86	default "arch/sparc/configs/sparc32_defconfig" if SPARC32
87	default "arch/sparc/configs/sparc64_defconfig" if SPARC64
88
89config IOMMU_HELPER
90	bool
91	default y if SPARC64
92
93config STACKTRACE_SUPPORT
94	bool
95	default y if SPARC64
96
97config LOCKDEP_SUPPORT
98	bool
99	default y if SPARC64
100
101config HAVE_LATENCYTOP_SUPPORT
102	bool
103	default y if SPARC64
104
105config ARCH_HIBERNATION_POSSIBLE
106	def_bool y if SPARC64
107
108config AUDIT_ARCH
109	bool
110	default y
111
112config HAVE_SETUP_PER_CPU_AREA
113	def_bool y if SPARC64
114
115config NEED_PER_CPU_EMBED_FIRST_CHUNK
116	def_bool y if SPARC64
117
118config NEED_PER_CPU_PAGE_FIRST_CHUNK
119	def_bool y if SPARC64
120
121config MMU
122	bool
123	default y
124
125config HIGHMEM
126	bool
127	default y if SPARC32
128
129config ZONE_DMA
130	bool
131	default y if SPARC32
132
133config NEED_DMA_MAP_STATE
134	def_bool y
135
136config NEED_SG_DMA_LENGTH
137	def_bool y
138
139config GENERIC_ISA_DMA
140	bool
141	default y if SPARC32
142
143config ARCH_SUPPORTS_DEBUG_PAGEALLOC
144	def_bool y if SPARC64
145
146source "init/Kconfig"
147
148source "kernel/Kconfig.freezer"
149
150menu "Processor type and features"
151
152config SMP
153	bool "Symmetric multi-processing support"
154	---help---
155	  This enables support for systems with more than one CPU. If you have
156	  a system with only one CPU, say N. If you have a system with more
157	  than one CPU, say Y.
158
159	  If you say N here, the kernel will run on uni- and multiprocessor
160	  machines, but will use only one CPU of a multiprocessor machine. If
161	  you say Y here, the kernel will run on many, but not all,
162	  uniprocessor machines. On a uniprocessor machine, the kernel
163	  will run faster if you say N here.
164
165	  People using multiprocessor machines who say Y here should also say
166	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
167	  Management" code will be disabled if you say Y here.
168
169	  See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
170	  available at <http://www.tldp.org/docs.html#howto>.
171
172	  If you don't know what to do here, say N.
173
174config NR_CPUS
175	int "Maximum number of CPUs"
176	depends on SMP
177	range 2 32 if SPARC32
178	range 2 1024 if SPARC64
179	default 32 if SPARC32
180	default 64 if SPARC64
181
182source kernel/Kconfig.hz
183
184config RWSEM_GENERIC_SPINLOCK
185	bool
186	default y if SPARC32
187
188config RWSEM_XCHGADD_ALGORITHM
189	bool
190	default y if SPARC64
191
192config GENERIC_HWEIGHT
193	bool
194	default y
195
196config GENERIC_CALIBRATE_DELAY
197	bool
198	default y
199
200config ARCH_MAY_HAVE_PC_FDC
201	bool
202	default y
203
204config EMULATED_CMPXCHG
205	bool
206	default y if SPARC32
207	help
208	  Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
209	  is emulated, and therefore it is not completely atomic.
210
211# Makefile helpers
212config SPARC32_SMP
213	bool
214	default y
215	depends on SPARC32 && SMP
216
217config SPARC64_SMP
218	bool
219	default y
220	depends on SPARC64 && SMP
221
222config EARLYFB
223	bool "Support for early boot text console"
224	default y
225	depends on SPARC64
226	help
227	  Say Y here to enable a faster early framebuffer boot console.
228
229config SECCOMP
230	bool "Enable seccomp to safely compute untrusted bytecode"
231	depends on SPARC64 && PROC_FS
232	default y
233	help
234	  This kernel feature is useful for number crunching applications
235	  that may need to compute untrusted bytecode during their
236	  execution. By using pipes or other transports made available to
237	  the process as file descriptors supporting the read/write
238	  syscalls, it's possible to isolate those applications in
239	  their own address space using seccomp. Once seccomp is
240	  enabled via /proc/<pid>/seccomp, it cannot be disabled
241	  and the task is only allowed to execute a few safe syscalls
242	  defined by each seccomp mode.
243
244	  If unsure, say Y. Only embedded should say N here.
245
246config HOTPLUG_CPU
247	bool "Support for hot-pluggable CPUs"
248	depends on SPARC64 && SMP
249	help
250	  Say Y here to experiment with turning CPUs off and on.  CPUs
251	  can be controlled through /sys/devices/system/cpu/cpu#.
252	  Say N if you want to disable CPU hotplug.
253
254if SPARC64
255source "drivers/cpufreq/Kconfig"
256endif
257
258config US3_MC
259	tristate "UltraSPARC-III Memory Controller driver"
260	depends on SPARC64
261	default y
262	help
263	  This adds a driver for the UltraSPARC-III memory controller.
264	  Loading this driver allows exact mnemonic strings to be
265	  printed in the event of a memory error, so that the faulty DIMM
266	  on the motherboard can be matched to the error.
267
268	  If in doubt, say Y, as this information can be very useful.
269
270# Global things across all Sun machines.
271config GENERIC_LOCKBREAK
272	bool
273	default y
274	depends on SPARC64 && SMP && PREEMPT
275
276config NUMA
277	bool "NUMA support"
278	depends on SPARC64 && SMP
279
280config NODES_SHIFT
281	int
282	default "4"
283	depends on NEED_MULTIPLE_NODES
284
285# Some NUMA nodes have memory ranges that span
286# other nodes.  Even though a pfn is valid and
287# between a node's start and end pfns, it may not
288# reside on that node.  See memmap_init_zone()
289# for details.
290config NODES_SPAN_OTHER_NODES
291	def_bool y
292	depends on NEED_MULTIPLE_NODES
293
294config ARCH_SELECT_MEMORY_MODEL
295	def_bool y if SPARC64
296
297config ARCH_SPARSEMEM_ENABLE
298	def_bool y if SPARC64
299	select SPARSEMEM_VMEMMAP_ENABLE
300
301config ARCH_SPARSEMEM_DEFAULT
302	def_bool y if SPARC64
303
304source "mm/Kconfig"
305
306if SPARC64
307source "kernel/power/Kconfig"
308endif
309
310config SCHED_SMT
311	bool "SMT (Hyperthreading) scheduler support"
312	depends on SPARC64 && SMP
313	default y
314	help
315	  SMT scheduler support improves the CPU scheduler's decision making
316	  when dealing with SPARC cpus at a cost of slightly increased overhead
317	  in some places. If unsure say N here.
318
319config SCHED_MC
320	bool "Multi-core scheduler support"
321	depends on SPARC64 && SMP
322	default y
323	help
324	  Multi-core scheduler support improves the CPU scheduler's decision
325	  making when dealing with multi-core CPU chips at a cost of slightly
326	  increased overhead in some places. If unsure say N here.
327
328source "kernel/Kconfig.preempt"
329
330config CMDLINE_BOOL
331	bool "Default bootloader kernel arguments"
332	depends on SPARC64
333
334config CMDLINE
335	string "Initial kernel command string"
336	depends on CMDLINE_BOOL
337	default "console=ttyS0,9600 root=/dev/sda1"
338	help
339	  Say Y here if you want to be able to pass default arguments to
340	  the kernel. This will be overridden by the bootloader, if you
341	  use one (such as SILO). This is most useful if you want to boot
342	  a kernel from TFTP, and want default options to be available
343	  with having them passed on the command line.
344
345	  NOTE: This option WILL override the PROM bootargs setting!
346
347config SUN_PM
348	bool
349	default y if SPARC32
350	help
351	  Enable power management and CPU standby features on supported
352	  SPARC platforms.
353
354config SPARC_LED
355	tristate "Sun4m LED driver"
356	depends on SPARC32
357	help
358	  This driver toggles the front-panel LED on sun4m systems
359	  in a user-specifiable manner.  Its state can be probed
360	  by reading /proc/led and its blinking mode can be changed
361	  via writes to /proc/led
362
363config SERIAL_CONSOLE
364	bool
365	depends on SPARC32
366	default y
367	---help---
368	  If you say Y here, it will be possible to use a serial port as the
369	  system console (the system console is the device which receives all
370	  kernel messages and warnings and which allows logins in single user
371	  mode). This could be useful if some terminal or printer is connected
372	  to that serial port.
373
374	  Even if you say Y here, the currently visible virtual console
375	  (/dev/tty0) will still be used as the system console by default, but
376	  you can alter that using a kernel command line option such as
377	  "console=ttyS1". (Try "man bootparam" or see the documentation of
378	  your boot loader (silo) about how to pass options to the kernel at
379	  boot time.)
380
381	  If you don't have a graphics card installed and you say Y here, the
382	  kernel will automatically use the first serial line, /dev/ttyS0, as
383	  system console.
384
385	  If unsure, say N.
386
387config SPARC_LEON
388	bool "Sparc Leon processor family"
389	depends on SPARC32
390	select USB_EHCI_BIG_ENDIAN_MMIO
391	select USB_EHCI_BIG_ENDIAN_DESC
392	---help---
393	  If you say Y here if you are running on a SPARC-LEON processor.
394	  The LEON processor is a synthesizable VHDL model of the
395	  SPARC-v8 standard. LEON is  part of the GRLIB collection of
396	  IP cores that are distributed under GPL. GRLIB can be downloaded
397	  from www.gaisler.com. You can download a sparc-linux cross-compilation
398	  toolchain at www.gaisler.com.
399
400if SPARC_LEON
401menu "U-Boot options"
402
403config UBOOT_LOAD_ADDR
404	hex "uImage Load Address"
405	default 0x40004000
406	---help---
407	 U-Boot kernel load address, the address in physical address space
408	 where u-boot will place the Linux kernel before booting it.
409	 This address is normally the base address of main memory + 0x4000.
410
411config UBOOT_FLASH_ADDR
412	hex "uImage.o Load Address"
413	default 0x00080000
414	---help---
415	 Optional setting only affecting the uImage.o ELF-image used to
416	 download the uImage file to the target using a ELF-loader other than
417	 U-Boot. It may for example be used to download an uImage to FLASH with
418	 the GRMON utility before even starting u-boot.
419
420config UBOOT_ENTRY_ADDR
421	hex "uImage Entry Address"
422	default 0xf0004000
423	---help---
424	 Do not change this unless you know what you're doing. This is
425	 hardcoded by the SPARC32 and LEON port.
426
427	 This is the virtual address u-boot jumps to when booting the Linux
428	 Kernel.
429
430endmenu
431endif
432
433endmenu
434
435menu "Bus options (PCI etc.)"
436config SBUS
437	bool
438	default y
439
440config SBUSCHAR
441	bool
442	default y
443
444config SUN_LDOMS
445	bool "Sun Logical Domains support"
446	depends on SPARC64
447	help
448	  Say Y here is you want to support virtual devices via
449	  Logical Domains.
450
451config PCI
452	bool "Support for PCI and PS/2 keyboard/mouse"
453	help
454	  Find out whether your system includes a PCI bus. PCI is the name of
455	  a bus system, i.e. the way the CPU talks to the other stuff inside
456	  your box.  If you say Y here, the kernel will include drivers and
457	  infrastructure code to support PCI bus devices.
458
459	  CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
460	  CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
461	  All of these platforms are extremely obscure, so say N if unsure.
462
463config PCI_DOMAINS
464	def_bool PCI if SPARC64
465
466config PCI_SYSCALL
467	def_bool PCI
468
469config PCIC_PCI
470	bool
471	depends on PCI && SPARC32 && !SPARC_LEON
472	default y
473
474config LEON_PCI
475	bool
476	depends on PCI && SPARC_LEON
477	default y
478
479config SPARC_GRPCI1
480	bool "GRPCI Host Bridge Support"
481	depends on LEON_PCI
482	default y
483	help
484	  Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
485	  PCI host controller is typically found in GRLIB SPARC32/LEON
486	  systems. The driver has one property (all_pci_errors) controlled
487	  from the bootloader that makes the GRPCI to generate interrupts
488	  on detected PCI Parity and System errors.
489
490config SPARC_GRPCI2
491	bool "GRPCI2 Host Bridge Support"
492	depends on LEON_PCI
493	default y
494	help
495	  Say Y here to include the GRPCI2 Host Bridge Driver.
496
497source "drivers/pci/Kconfig"
498
499source "drivers/pcmcia/Kconfig"
500
501config SUN_OPENPROMFS
502	tristate "Openprom tree appears in /proc/openprom"
503	help
504	  If you say Y, the OpenPROM device tree will be available as a
505	  virtual file system, which you can mount to /proc/openprom by "mount
506	  -t openpromfs none /proc/openprom".
507
508	  To compile the /proc/openprom support as a module, choose M here: the
509	  module will be called openpromfs.
510
511	  Only choose N if you know in advance that you will not need to modify
512	  OpenPROM settings on the running system.
513
514# Makefile helpers
515config SPARC64_PCI
516	bool
517	default y
518	depends on SPARC64 && PCI
519
520config SPARC64_PCI_MSI
521	bool
522	default y
523	depends on SPARC64_PCI && PCI_MSI
524
525endmenu
526
527menu "Executable file formats"
528
529source "fs/Kconfig.binfmt"
530
531config COMPAT
532	bool
533	depends on SPARC64
534	default y
535	select COMPAT_BINFMT_ELF
536	select HAVE_UID16
537	select ARCH_WANT_OLD_COMPAT_IPC
538	select COMPAT_OLD_SIGACTION
539
540config SYSVIPC_COMPAT
541	bool
542	depends on COMPAT && SYSVIPC
543	default y
544
545config KEYS_COMPAT
546	def_bool y if COMPAT && KEYS
547
548endmenu
549
550source "net/Kconfig"
551
552source "drivers/Kconfig"
553
554source "drivers/sbus/char/Kconfig"
555
556source "fs/Kconfig"
557
558source "arch/sparc/Kconfig.debug"
559
560source "security/Kconfig"
561
562source "crypto/Kconfig"
563
564source "lib/Kconfig"
565