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