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