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