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