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