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