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