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