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