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