percpu: Generic support for this_cpu_cmpxchg_double()
[linux-2.6/kvm.git] / arch / sparc / Kconfig
blob95695e97703e8727f5b82367781a03b2c861d532
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.
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
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
29 config SPARC32
30         def_bool !64BIT
32 config SPARC64
33         def_bool 64BIT
34         select ARCH_SUPPORTS_MSI
35         select HAVE_FUNCTION_TRACER
36         select HAVE_FUNCTION_GRAPH_TRACER
37         select HAVE_FUNCTION_GRAPH_FP_TEST
38         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
39         select HAVE_KRETPROBES
40         select HAVE_KPROBES
41         select HAVE_MEMBLOCK
42         select HAVE_SYSCALL_WRAPPERS
43         select HAVE_DYNAMIC_FTRACE
44         select HAVE_FTRACE_MCOUNT_RECORD
45         select HAVE_SYSCALL_TRACEPOINTS
46         select USE_GENERIC_SMP_HELPERS if SMP
47         select RTC_DRV_CMOS
48         select RTC_DRV_BQ4802
49         select RTC_DRV_SUN4V
50         select RTC_DRV_STARFIRE
51         select HAVE_PERF_EVENTS
52         select PERF_USE_VMALLOC
53         select HAVE_GENERIC_HARDIRQS
55 config ARCH_DEFCONFIG
56         string
57         default "arch/sparc/configs/sparc32_defconfig" if SPARC32
58         default "arch/sparc/configs/sparc64_defconfig" if SPARC64
60 # CONFIG_BITS can be used at source level to get 32/64 bits
61 config BITS
62         int
63         default 32 if SPARC32
64         default 64 if SPARC64
66 config ARCH_USES_GETTIMEOFFSET
67         bool
68         default y if SPARC32
70 config GENERIC_CMOS_UPDATE
71         bool
72         default y
74 config GENERIC_CLOCKEVENTS
75         bool
76         default y if SPARC64
78 config IOMMU_HELPER
79         bool
80         default y if SPARC64
82 config QUICKLIST
83         bool
84         default y if SPARC64
86 config STACKTRACE_SUPPORT
87         bool
88         default y if SPARC64
90 config LOCKDEP_SUPPORT
91         bool
92         default y if SPARC64
94 config HAVE_LATENCYTOP_SUPPORT
95         bool
96         default y if SPARC64
98 config AUDIT_ARCH
99         bool
100         default y
102 config HAVE_SETUP_PER_CPU_AREA
103         def_bool y if SPARC64
105 config NEED_PER_CPU_EMBED_FIRST_CHUNK
106         def_bool y if SPARC64
108 config NEED_PER_CPU_PAGE_FIRST_CHUNK
109         def_bool y if SPARC64
111 config MMU
112         bool
113         default y
115 config HIGHMEM
116         bool
117         default y if SPARC32
119 config ZONE_DMA
120         bool
121         default y if SPARC32
123 config NEED_DMA_MAP_STATE
124         def_bool y
126 config NEED_SG_DMA_LENGTH
127         def_bool y
129 config GENERIC_ISA_DMA
130         bool
131         default y if SPARC32
133 config GENERIC_GPIO
134         bool
135         help
136           Generic GPIO API support
138 config ARCH_NO_VIRT_TO_BUS
139         def_bool y
141 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
142         def_bool y if SPARC64
144 source "init/Kconfig"
146 source "kernel/Kconfig.freezer"
148 menu "Processor type and features"
150 config SMP
151         bool "Symmetric multi-processing support (does not work on sun4/sun4c)"
152         ---help---
153           This enables support for systems with more than one CPU. If you have
154           a system with only one CPU, say N. If you have a system with more
155           than one CPU, say Y.
157           If you say N here, the kernel will run on single and multiprocessor
158           machines, but will use only one CPU of a multiprocessor machine. If
159           you say Y here, the kernel will run on many, but not all,
160           singleprocessor machines. On a singleprocessor machine, the kernel
161           will run faster if you say N here.
163           People using multiprocessor machines who say Y here should also say
164           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
165           Management" code will be disabled if you say Y here.
167           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
168           available at <http://www.tldp.org/docs.html#howto>.
170           If you don't know what to do here, say N.
172 config NR_CPUS
173         int "Maximum number of CPUs"
174         depends on SMP
175         range 2 32 if SPARC32
176         range 2 1024 if SPARC64
177         default 32 if SPARC32
178         default 64 if SPARC64
180 source kernel/Kconfig.hz
182 config RWSEM_GENERIC_SPINLOCK
183         bool
184         default y if SPARC32
186 config RWSEM_XCHGADD_ALGORITHM
187         bool
188         default y if SPARC64
190 config GENERIC_FIND_NEXT_BIT
191         bool
192         default y
194 config GENERIC_HWEIGHT
195         bool
196         default y if !ULTRA_HAS_POPULATION_COUNT
198 config GENERIC_CALIBRATE_DELAY
199         bool
200         default y
202 config ARCH_MAY_HAVE_PC_FDC
203         bool
204         default y
206 config 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.
213 # Makefile helpers
214 config SPARC32_SMP
215         bool
216         default y
217         depends on SPARC32 && SMP
219 config SPARC64_SMP
220         bool
221         default y
222         depends on SPARC64 && SMP
224 config 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.
231 choice
232         prompt "Kernel page size" if SPARC64
233         default SPARC64_PAGE_SIZE_8KB
235 config SPARC64_PAGE_SIZE_8KB
236         bool "8KB"
237         help
238           This lets you select the page size of the kernel.
240           8KB and 64KB work quite well, since SPARC ELF sections
241           provide for up to 64KB alignment.
243           If you don't know what to do, choose 8KB.
245 config SPARC64_PAGE_SIZE_64KB
246         bool "64KB"
248 endchoice
250 config 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.
265           If unsure, say Y. Only embedded should say N here.
267 config 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.
276 source "kernel/time/Kconfig"
278 if SPARC64
279 source "drivers/cpufreq/Kconfig"
281 config 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.
288           For details, take a look at <file:Documentation/cpu-freq>.
290           If in doubt, say N.
292 config 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.
299           For details, take a look at <file:Documentation/cpu-freq>.
301           If in doubt, say N.
303 endif
305 config 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.
315           If in doubt, say Y, as this information can be very useful.
317 # Global things across all Sun machines.
318 config GENERIC_LOCKBREAK
319         bool
320         default y
321         depends on SPARC64 && SMP && PREEMPT
323 choice
324         prompt "SPARC64 Huge TLB Page Size"
325         depends on SPARC64 && HUGETLB_PAGE
326         default HUGETLB_PAGE_SIZE_4MB
328 config HUGETLB_PAGE_SIZE_4MB
329         bool "4MB"
331 config HUGETLB_PAGE_SIZE_512K
332         bool "512K"
334 config HUGETLB_PAGE_SIZE_64K
335         depends on !SPARC64_PAGE_SIZE_64KB
336         bool "64K"
338 endchoice
340 config NUMA
341         bool "NUMA support"
342         depends on SPARC64 && SMP
344 config NODES_SHIFT
345         int
346         default "4"
347         depends on NEED_MULTIPLE_NODES
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.
354 config NODES_SPAN_OTHER_NODES
355         def_bool y
356         depends on NEED_MULTIPLE_NODES
358 config ARCH_POPULATES_NODE_MAP
359         def_bool y if SPARC64
361 config ARCH_SELECT_MEMORY_MODEL
362         def_bool y if SPARC64
364 config ARCH_SPARSEMEM_ENABLE
365         def_bool y if SPARC64
366         select SPARSEMEM_VMEMMAP_ENABLE
368 config ARCH_SPARSEMEM_DEFAULT
369         def_bool y if SPARC64
371 source "mm/Kconfig"
373 config SCHED_SMT
374         bool "SMT (Hyperthreading) scheduler support"
375         depends on SPARC64 && SMP
376         default y
377         help
378           SMT scheduler support improves the CPU scheduler's decision making
379           when dealing with SPARC cpus at a cost of slightly increased overhead
380           in some places. If unsure say N here.
382 config SCHED_MC
383         bool "Multi-core scheduler support"
384         depends on SPARC64 && SMP
385         default y
386         help
387           Multi-core scheduler support improves the CPU scheduler's decision
388           making when dealing with multi-core CPU chips at a cost of slightly
389           increased overhead in some places. If unsure say N here.
391 if SPARC64
392 source "kernel/Kconfig.preempt"
393 endif
395 config CMDLINE_BOOL
396         bool "Default bootloader kernel arguments"
397         depends on SPARC64
399 config CMDLINE
400         string "Initial kernel command string"
401         depends on CMDLINE_BOOL
402         default "console=ttyS0,9600 root=/dev/sda1"
403         help
404           Say Y here if you want to be able to pass default arguments to
405           the kernel. This will be overridden by the bootloader, if you
406           use one (such as SILO). This is most useful if you want to boot
407           a kernel from TFTP, and want default options to be available
408           with having them passed on the command line.
410           NOTE: This option WILL override the PROM bootargs setting!
412 config SUN_PM
413         bool
414         default y if SPARC32
415         help
416           Enable power management and CPU standby features on supported
417           SPARC platforms.
419 config SPARC_LED
420         tristate "Sun4m LED driver"
421         depends on SPARC32
422         help
423           This driver toggles the front-panel LED on sun4m systems
424           in a user-specifiable manner.  Its state can be probed
425           by reading /proc/led and its blinking mode can be changed
426           via writes to /proc/led
428 config SERIAL_CONSOLE
429         bool
430         depends on SPARC32
431         default y
432         ---help---
433           If you say Y here, it will be possible to use a serial port as the
434           system console (the system console is the device which receives all
435           kernel messages and warnings and which allows logins in single user
436           mode). This could be useful if some terminal or printer is connected
437           to that serial port.
439           Even if you say Y here, the currently visible virtual console
440           (/dev/tty0) will still be used as the system console by default, but
441           you can alter that using a kernel command line option such as
442           "console=ttyS1". (Try "man bootparam" or see the documentation of
443           your boot loader (silo) about how to pass options to the kernel at
444           boot time.)
446           If you don't have a graphics card installed and you say Y here, the
447           kernel will automatically use the first serial line, /dev/ttyS0, as
448           system console.
450           If unsure, say N.
452 config SPARC_LEON
453         bool "Sparc Leon processor family"
454         depends on SPARC32
455         ---help---
456           If you say Y here if you are running on a SPARC-LEON processor.
457           The LEON processor is a synthesizable VHDL model of the
458           SPARC-v8 standard. LEON is  part of the GRLIB collection of
459           IP cores that are distributed under GPL. GRLIB can be downloaded
460           from www.gaisler.com. You can download a sparc-linux cross-compilation
461           toolchain at www.gaisler.com.
463 endmenu
465 menu "Bus options (PCI etc.)"
466 config SBUS
467         bool
468         default y
470 config SBUSCHAR
471         bool
472         default y
474 config SUN_LDOMS
475         bool "Sun Logical Domains support"
476         depends on SPARC64
477         help
478           Say Y here is you want to support virtual devices via
479           Logical Domains.
481 config PCI
482         bool "Support for PCI and PS/2 keyboard/mouse"
483         help
484           Find out whether your system includes a PCI bus. PCI is the name of
485           a bus system, i.e. the way the CPU talks to the other stuff inside
486           your box.  If you say Y here, the kernel will include drivers and
487           infrastructure code to support PCI bus devices.
489           CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
490           CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
491           All of these platforms are extremely obscure, so say N if unsure.
493 config PCI_DOMAINS
494         def_bool PCI if SPARC64
496 config PCI_SYSCALL
497         def_bool PCI
499 source "drivers/pci/Kconfig"
501 source "drivers/pcmcia/Kconfig"
503 config SUN_OPENPROMFS
504         tristate "Openprom tree appears in /proc/openprom"
505         help
506           If you say Y, the OpenPROM device tree will be available as a
507           virtual file system, which you can mount to /proc/openprom by "mount
508           -t openpromfs none /proc/openprom".
510           To compile the /proc/openprom support as a module, choose M here: the
511           module will be called openpromfs.
513           Only choose N if you know in advance that you will not need to modify
514           OpenPROM settings on the running system.
516 # Makefile helpers
517 config SPARC32_PCI
518         bool
519         default y
520         depends on SPARC32 && PCI
522 config SPARC64_PCI
523         bool
524         default y
525         depends on SPARC64 && PCI
527 endmenu
529 menu "Executable file formats"
531 source "fs/Kconfig.binfmt"
533 config COMPAT
534         bool
535         depends on SPARC64
536         default y
537         select COMPAT_BINFMT_ELF
539 config SYSVIPC_COMPAT
540         bool
541         depends on COMPAT && SYSVIPC
542         default y
544 endmenu
546 source "net/Kconfig"
548 source "drivers/Kconfig"
550 source "drivers/sbus/char/Kconfig"
552 source "fs/Kconfig"
554 source "arch/sparc/Kconfig.debug"
556 source "security/Kconfig"
558 source "crypto/Kconfig"
560 source "lib/Kconfig"