xref: /linux/arch/sparc/Kconfig (revision b889fcf63cb62e7fdb7816565e28f44dbe4a76a5)
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 SYSCTL_EXCEPTION_TRACE
22	select ARCH_WANT_OPTIONAL_GPIOLIB
23	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
24	select RTC_CLASS
25	select RTC_DRV_M48T59
26	select HAVE_IRQ_WORK
27	select HAVE_DMA_ATTRS
28	select HAVE_DMA_API_DEBUG
29	select HAVE_ARCH_JUMP_LABEL
30	select HAVE_GENERIC_HARDIRQS
31	select GENERIC_IRQ_SHOW
32	select ARCH_WANT_IPC_PARSE_VERSION
33	select USE_GENERIC_SMP_HELPERS if SMP
34	select GENERIC_PCI_IOMAP
35	select HAVE_NMI_WATCHDOG if SPARC64
36	select HAVE_BPF_JIT
37	select HAVE_DEBUG_BUGVERBOSE
38	select GENERIC_SMP_IDLE_THREAD
39	select GENERIC_CMOS_UPDATE
40	select GENERIC_CLOCKEVENTS
41	select GENERIC_STRNCPY_FROM_USER
42	select GENERIC_STRNLEN_USER
43	select MODULES_USE_ELF_RELA
44	select GENERIC_KERNEL_THREAD
45	select GENERIC_KERNEL_EXECVE
46
47config SPARC32
48	def_bool !64BIT
49	select GENERIC_ATOMIC64
50	select CLZ_TAB
51	select HAVE_UID16
52
53config SPARC64
54	def_bool 64BIT
55	select ARCH_SUPPORTS_MSI
56	select HAVE_FUNCTION_TRACER
57	select HAVE_FUNCTION_GRAPH_TRACER
58	select HAVE_FUNCTION_GRAPH_FP_TEST
59	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
60	select HAVE_KRETPROBES
61	select HAVE_KPROBES
62	select HAVE_RCU_TABLE_FREE if SMP
63	select HAVE_MEMBLOCK
64	select HAVE_MEMBLOCK_NODE_MAP
65	select HAVE_SYSCALL_WRAPPERS
66	select HAVE_DYNAMIC_FTRACE
67	select HAVE_FTRACE_MCOUNT_RECORD
68	select HAVE_SYSCALL_TRACEPOINTS
69	select HAVE_DEBUG_KMEMLEAK
70	select RTC_DRV_CMOS
71	select RTC_DRV_BQ4802
72	select RTC_DRV_SUN4V
73	select RTC_DRV_STARFIRE
74	select HAVE_PERF_EVENTS
75	select PERF_USE_VMALLOC
76	select IRQ_PREFLOW_FASTEOI
77	select ARCH_HAVE_NMI_SAFE_CMPXCHG
78	select HAVE_C_RECORDMCOUNT
79	select NO_BOOTMEM
80
81config ARCH_DEFCONFIG
82	string
83	default "arch/sparc/configs/sparc32_defconfig" if SPARC32
84	default "arch/sparc/configs/sparc64_defconfig" if SPARC64
85
86# CONFIG_BITS can be used at source level to get 32/64 bits
87config BITS
88	int
89	default 32 if SPARC32
90	default 64 if SPARC64
91
92config IOMMU_HELPER
93	bool
94	default y if SPARC64
95
96config STACKTRACE_SUPPORT
97	bool
98	default y if SPARC64
99
100config LOCKDEP_SUPPORT
101	bool
102	default y if SPARC64
103
104config HAVE_LATENCYTOP_SUPPORT
105	bool
106	default y if SPARC64
107
108config AUDIT_ARCH
109	bool
110	default y
111
112config HAVE_SETUP_PER_CPU_AREA
113	def_bool y if SPARC64
114
115config NEED_PER_CPU_EMBED_FIRST_CHUNK
116	def_bool y if SPARC64
117
118config NEED_PER_CPU_PAGE_FIRST_CHUNK
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 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"
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_HWEIGHT
201	bool
202	default y if !ULTRA_HAS_POPULATION_COUNT
203
204config GENERIC_CALIBRATE_DELAY
205	bool
206	default y
207
208config ARCH_MAY_HAVE_PC_FDC
209	bool
210	default y
211
212config EMULATED_CMPXCHG
213	bool
214	default y if SPARC32
215	help
216	  Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
217	  is emulated, and therefore it is not completely atomic.
218
219# Makefile helpers
220config SPARC32_SMP
221	bool
222	default y
223	depends on SPARC32 && SMP
224
225config SPARC64_SMP
226	bool
227	default y
228	depends on SPARC64 && SMP
229
230config EARLYFB
231	bool "Support for early boot text console"
232	default y
233	depends on SPARC64
234	help
235	  Say Y here to enable a faster early framebuffer boot console.
236
237config SECCOMP
238	bool "Enable seccomp to safely compute untrusted bytecode"
239	depends on SPARC64 && PROC_FS
240	default y
241	help
242	  This kernel feature is useful for number crunching applications
243	  that may need to compute untrusted bytecode during their
244	  execution. By using pipes or other transports made available to
245	  the process as file descriptors supporting the read/write
246	  syscalls, it's possible to isolate those applications in
247	  their own address space using seccomp. Once seccomp is
248	  enabled via /proc/<pid>/seccomp, it cannot be disabled
249	  and the task is only allowed to execute a few safe syscalls
250	  defined by each seccomp mode.
251
252	  If unsure, say Y. Only embedded should say N here.
253
254config HOTPLUG_CPU
255	bool "Support for hot-pluggable CPUs"
256	depends on SPARC64 && SMP
257	select HOTPLUG
258	help
259	  Say Y here to experiment with turning CPUs off and on.  CPUs
260	  can be controlled through /sys/devices/system/cpu/cpu#.
261	  Say N if you want to disable CPU hotplug.
262
263if SPARC64
264source "drivers/cpufreq/Kconfig"
265
266config US3_FREQ
267	tristate "UltraSPARC-III CPU Frequency driver"
268	depends on CPU_FREQ
269	select CPU_FREQ_TABLE
270	help
271	  This adds the CPUFreq driver for UltraSPARC-III processors.
272
273	  For details, take a look at <file:Documentation/cpu-freq>.
274
275	  If in doubt, say N.
276
277config US2E_FREQ
278	tristate "UltraSPARC-IIe CPU Frequency driver"
279	depends on CPU_FREQ
280	select CPU_FREQ_TABLE
281	help
282	  This adds the CPUFreq driver for UltraSPARC-IIe processors.
283
284	  For details, take a look at <file:Documentation/cpu-freq>.
285
286	  If in doubt, say N.
287
288endif
289
290config US3_MC
291	tristate "UltraSPARC-III Memory Controller driver"
292	depends on SPARC64
293	default y
294	help
295	  This adds a driver for the UltraSPARC-III memory controller.
296	  Loading this driver allows exact mnemonic strings to be
297	  printed in the event of a memory error, so that the faulty DIMM
298	  on the motherboard can be matched to the error.
299
300	  If in doubt, say Y, as this information can be very useful.
301
302# Global things across all Sun machines.
303config GENERIC_LOCKBREAK
304	bool
305	default y
306	depends on SPARC64 && SMP && PREEMPT
307
308config NUMA
309	bool "NUMA support"
310	depends on SPARC64 && SMP
311
312config NODES_SHIFT
313	int
314	default "4"
315	depends on NEED_MULTIPLE_NODES
316
317# Some NUMA nodes have memory ranges that span
318# other nodes.  Even though a pfn is valid and
319# between a node's start and end pfns, it may not
320# reside on that node.  See memmap_init_zone()
321# for details.
322config NODES_SPAN_OTHER_NODES
323	def_bool y
324	depends on NEED_MULTIPLE_NODES
325
326config ARCH_SELECT_MEMORY_MODEL
327	def_bool y if SPARC64
328
329config ARCH_SPARSEMEM_ENABLE
330	def_bool y if SPARC64
331	select SPARSEMEM_VMEMMAP_ENABLE
332
333config ARCH_SPARSEMEM_DEFAULT
334	def_bool y if SPARC64
335
336source "mm/Kconfig"
337
338config SCHED_SMT
339	bool "SMT (Hyperthreading) scheduler support"
340	depends on SPARC64 && SMP
341	default y
342	help
343	  SMT scheduler support improves the CPU scheduler's decision making
344	  when dealing with SPARC cpus at a cost of slightly increased overhead
345	  in some places. If unsure say N here.
346
347config SCHED_MC
348	bool "Multi-core scheduler support"
349	depends on SPARC64 && SMP
350	default y
351	help
352	  Multi-core scheduler support improves the CPU scheduler's decision
353	  making when dealing with multi-core CPU chips at a cost of slightly
354	  increased overhead in some places. If unsure say N here.
355
356source "kernel/Kconfig.preempt"
357
358config CMDLINE_BOOL
359	bool "Default bootloader kernel arguments"
360	depends on SPARC64
361
362config CMDLINE
363	string "Initial kernel command string"
364	depends on CMDLINE_BOOL
365	default "console=ttyS0,9600 root=/dev/sda1"
366	help
367	  Say Y here if you want to be able to pass default arguments to
368	  the kernel. This will be overridden by the bootloader, if you
369	  use one (such as SILO). This is most useful if you want to boot
370	  a kernel from TFTP, and want default options to be available
371	  with having them passed on the command line.
372
373	  NOTE: This option WILL override the PROM bootargs setting!
374
375config SUN_PM
376	bool
377	default y if SPARC32
378	help
379	  Enable power management and CPU standby features on supported
380	  SPARC platforms.
381
382config SPARC_LED
383	tristate "Sun4m LED driver"
384	depends on SPARC32
385	help
386	  This driver toggles the front-panel LED on sun4m systems
387	  in a user-specifiable manner.  Its state can be probed
388	  by reading /proc/led and its blinking mode can be changed
389	  via writes to /proc/led
390
391config SERIAL_CONSOLE
392	bool
393	depends on SPARC32
394	default y
395	---help---
396	  If you say Y here, it will be possible to use a serial port as the
397	  system console (the system console is the device which receives all
398	  kernel messages and warnings and which allows logins in single user
399	  mode). This could be useful if some terminal or printer is connected
400	  to that serial port.
401
402	  Even if you say Y here, the currently visible virtual console
403	  (/dev/tty0) will still be used as the system console by default, but
404	  you can alter that using a kernel command line option such as
405	  "console=ttyS1". (Try "man bootparam" or see the documentation of
406	  your boot loader (silo) about how to pass options to the kernel at
407	  boot time.)
408
409	  If you don't have a graphics card installed and you say Y here, the
410	  kernel will automatically use the first serial line, /dev/ttyS0, as
411	  system console.
412
413	  If unsure, say N.
414
415config SPARC_LEON
416	bool "Sparc Leon processor family"
417	depends on SPARC32
418	---help---
419	  If you say Y here if you are running on a SPARC-LEON processor.
420	  The LEON processor is a synthesizable VHDL model of the
421	  SPARC-v8 standard. LEON is  part of the GRLIB collection of
422	  IP cores that are distributed under GPL. GRLIB can be downloaded
423	  from www.gaisler.com. You can download a sparc-linux cross-compilation
424	  toolchain at www.gaisler.com.
425
426if SPARC_LEON
427menu "U-Boot options"
428
429config UBOOT_LOAD_ADDR
430	hex "uImage Load Address"
431	default 0x40004000
432	---help---
433	 U-Boot kernel load address, the address in physical address space
434	 where u-boot will place the Linux kernel before booting it.
435	 This address is normally the base address of main memory + 0x4000.
436
437config UBOOT_FLASH_ADDR
438	hex "uImage.o Load Address"
439	default 0x00080000
440	---help---
441	 Optional setting only affecting the uImage.o ELF-image used to
442	 download the uImage file to the target using a ELF-loader other than
443	 U-Boot. It may for example be used to download an uImage to FLASH with
444	 the GRMON utility before even starting u-boot.
445
446config UBOOT_ENTRY_ADDR
447	hex "uImage Entry Address"
448	default 0xf0004000
449	---help---
450	 Do not change this unless you know what you're doing. This is
451	 hardcoded by the SPARC32 and LEON port.
452
453	 This is the virtual address u-boot jumps to when booting the Linux
454	 Kernel.
455
456endmenu
457endif
458
459endmenu
460
461menu "Bus options (PCI etc.)"
462config SBUS
463	bool
464	default y
465
466config SBUSCHAR
467	bool
468	default y
469
470config SUN_LDOMS
471	bool "Sun Logical Domains support"
472	depends on SPARC64
473	help
474	  Say Y here is you want to support virtual devices via
475	  Logical Domains.
476
477config PCI
478	bool "Support for PCI and PS/2 keyboard/mouse"
479	help
480	  Find out whether your system includes a PCI bus. PCI is the name of
481	  a bus system, i.e. the way the CPU talks to the other stuff inside
482	  your box.  If you say Y here, the kernel will include drivers and
483	  infrastructure code to support PCI bus devices.
484
485	  CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
486	  CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
487	  All of these platforms are extremely obscure, so say N if unsure.
488
489config PCI_DOMAINS
490	def_bool PCI if SPARC64
491
492config PCI_SYSCALL
493	def_bool PCI
494
495config PCIC_PCI
496	bool
497	depends on PCI && SPARC32 && !SPARC_LEON
498	default y
499
500config LEON_PCI
501	bool
502	depends on PCI && SPARC_LEON
503	default y
504
505config GRPCI2
506	bool "GRPCI2 Host Bridge Support"
507	depends on LEON_PCI
508	default y
509	help
510	  Say Y here to include the GRPCI2 Host Bridge Driver.
511
512source "drivers/pci/Kconfig"
513
514source "drivers/pcmcia/Kconfig"
515
516config SUN_OPENPROMFS
517	tristate "Openprom tree appears in /proc/openprom"
518	help
519	  If you say Y, the OpenPROM device tree will be available as a
520	  virtual file system, which you can mount to /proc/openprom by "mount
521	  -t openpromfs none /proc/openprom".
522
523	  To compile the /proc/openprom support as a module, choose M here: the
524	  module will be called openpromfs.
525
526	  Only choose N if you know in advance that you will not need to modify
527	  OpenPROM settings on the running system.
528
529# Makefile helper
530config SPARC64_PCI
531	bool
532	default y
533	depends on SPARC64 && PCI
534
535endmenu
536
537menu "Executable file formats"
538
539source "fs/Kconfig.binfmt"
540
541config COMPAT
542	bool
543	depends on SPARC64
544	default y
545	select COMPAT_BINFMT_ELF
546	select HAVE_UID16
547	select ARCH_WANT_OLD_COMPAT_IPC
548
549config SYSVIPC_COMPAT
550	bool
551	depends on COMPAT && SYSVIPC
552	default y
553
554config KEYS_COMPAT
555	def_bool y if COMPAT && KEYS
556
557endmenu
558
559source "net/Kconfig"
560
561source "drivers/Kconfig"
562
563source "drivers/sbus/char/Kconfig"
564
565source "fs/Kconfig"
566
567source "arch/sparc/Kconfig.debug"
568
569source "security/Kconfig"
570
571source "crypto/Kconfig"
572
573source "lib/Kconfig"
574