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