Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / arch / powerpc / Kconfig
1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/kconfig-language.txt.
3 #
4
5 mainmenu "Linux/PowerPC Kernel Configuration"
6
7 source "arch/powerpc/platforms/Kconfig.cputype"
8
9 config PPC32
10         bool
11         default y if !PPC64
12
13 config 64BIT
14         bool
15         default y if PPC64
16
17 config PPC_MERGE
18         def_bool y
19
20 config MMU
21         bool
22         default y
23
24 config GENERIC_HARDIRQS
25         bool
26         default y
27
28 config IRQ_PER_CPU
29         bool
30         default y
31
32 config RWSEM_GENERIC_SPINLOCK
33         bool
34
35 config RWSEM_XCHGADD_ALGORITHM
36         bool
37         default y
38
39 config ARCH_HAS_ILOG2_U32
40         bool
41         default y
42
43 config ARCH_HAS_ILOG2_U64
44         bool
45         default y if 64BIT
46
47 config GENERIC_HWEIGHT
48         bool
49         default y
50
51 config GENERIC_CALIBRATE_DELAY
52         bool
53         default y
54
55 config GENERIC_FIND_NEXT_BIT
56         bool
57         default y
58
59 config ARCH_NO_VIRT_TO_BUS
60         def_bool PPC64
61
62 config PPC
63         bool
64         default y
65
66 config EARLY_PRINTK
67         bool
68         default y
69
70 config COMPAT
71         bool
72         default y if PPC64
73
74 config SYSVIPC_COMPAT
75         bool
76         depends on COMPAT && SYSVIPC
77         default y
78
79 # All PPC32s use generic nvram driver through ppc_md
80 config GENERIC_NVRAM
81         bool
82         default y if PPC32
83
84 config SCHED_NO_NO_OMIT_FRAME_POINTER
85         bool
86         default y
87
88 config ARCH_MAY_HAVE_PC_FDC
89         bool
90         default !PPC_PSERIES || PCI
91
92 config PPC_OF
93         def_bool y
94
95 config PPC_UDBG_16550
96         bool
97         default n
98
99 config GENERIC_TBSYNC
100         bool
101         default y if PPC32 && SMP
102         default n
103
104 config AUDIT_ARCH
105         bool
106         default y
107
108 config GENERIC_BUG
109         bool
110         default y
111         depends on BUG
112
113 config SYS_SUPPORTS_APM_EMULATION
114         default y if PMAC_APM_EMU
115         bool
116
117 config DEFAULT_UIMAGE
118         bool
119         help
120           Used to allow a board to specify it wants a uImage built by default
121         default n
122
123 config PPC64_SWSUSP
124         bool
125         depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
126         default y
127
128 config PPC_DCR_NATIVE
129         bool
130         default n
131
132 config PPC_DCR_MMIO
133         bool
134         default n
135
136 config PPC_DCR
137         bool
138         depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
139         default y
140
141 config PPC_OF_PLATFORM_PCI
142         bool
143         depends on PPC64 # not supported on 32 bits yet
144         default n
145
146 source "init/Kconfig"
147
148 source "arch/powerpc/platforms/Kconfig"
149
150 menu "Kernel options"
151
152 config HIGHMEM
153         bool "High memory support"
154         depends on PPC32
155
156 source kernel/Kconfig.hz
157 source kernel/Kconfig.preempt
158 source "fs/Kconfig.binfmt"
159
160 # We optimistically allocate largepages from the VM, so make the limit
161 # large enough (16MB). This badly named config option is actually
162 # max order + 1
163 config FORCE_MAX_ZONEORDER
164         int
165         depends on PPC64
166         default "9" if PPC_64K_PAGES
167         default "13"
168
169 config MATH_EMULATION
170         bool "Math emulation"
171         depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
172         ---help---
173           Some PowerPC chips designed for embedded applications do not have
174           a floating-point unit and therefore do not implement the
175           floating-point instructions in the PowerPC instruction set.  If you
176           say Y here, the kernel will include code to emulate a floating-point
177           unit, which will allow programs that use floating-point
178           instructions to run.
179
180 config IOMMU_VMERGE
181         bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
182         depends on EXPERIMENTAL && PPC64
183         default n
184         help
185           Cause IO segments sent to a device for DMA to be merged virtually
186           by the IOMMU when they happen to have been allocated contiguously.
187           This doesn't add pressure to the IOMMU allocator. However, some
188           drivers don't support getting large merged segments coming back
189           from *_map_sg(). Say Y if you know the drivers you are using are
190           properly handling this case.
191
192 config HOTPLUG_CPU
193         bool "Support for enabling/disabling CPUs"
194         depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
195         ---help---
196           Say Y here to be able to disable and re-enable individual
197           CPUs at runtime on SMP machines.
198
199           Say N if you are unsure.
200
201 config ARCH_ENABLE_MEMORY_HOTPLUG
202         def_bool y
203
204 config KEXEC
205         bool "kexec system call (EXPERIMENTAL)"
206         depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
207         help
208           kexec is a system call that implements the ability to shutdown your
209           current kernel, and to start another kernel.  It is like a reboot
210           but it is independent of the system firmware.   And like a reboot
211           you can start any kernel with it, not just Linux.
212
213           The name comes from the similarity to the exec system call.
214
215           It is an ongoing process to be certain the hardware in a machine
216           is properly shutdown, so do not be surprised if this code does not
217           initially work for you.  It may help to enable device hotplugging
218           support.  As of this writing the exact hardware interface is
219           strongly in flux, so no good recommendation can be made.
220
221 config CRASH_DUMP
222         bool "Build a kdump crash kernel (EXPERIMENTAL)"
223         depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
224         help
225           Build a kernel suitable for use as a kdump capture kernel.
226           The kernel will be linked at a different address than normal, and
227           so can only be used for Kdump.
228
229           Don't change this unless you know what you are doing.
230
231 config PPCBUG_NVRAM
232         bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
233         default y if PPC_PREP
234
235 config IRQ_ALL_CPUS
236         bool "Distribute interrupts on all CPUs by default"
237         depends on SMP && !MV64360
238         help
239           This option gives the kernel permission to distribute IRQs across
240           multiple CPUs.  Saying N here will route all IRQs to the first
241           CPU.  Generally saying Y is safe, although some problems have been
242           reported with SMP Power Macintoshes with this option enabled.
243
244 config NUMA
245         bool "NUMA support"
246         depends on PPC64
247         default y if SMP && PPC_PSERIES
248
249 config NODES_SHIFT
250         int
251         default "4"
252         depends on NEED_MULTIPLE_NODES
253
254 config ARCH_SELECT_MEMORY_MODEL
255         def_bool y
256         depends on PPC64
257
258 config ARCH_FLATMEM_ENABLE
259         def_bool y
260         depends on (PPC64 && !NUMA) || PPC32
261
262 config ARCH_SPARSEMEM_ENABLE
263         def_bool y
264         depends on PPC64
265
266 config ARCH_SPARSEMEM_DEFAULT
267         def_bool y
268         depends on (SMP && PPC_PSERIES) || PPC_PS3
269
270 config ARCH_POPULATES_NODE_MAP
271         def_bool y
272
273 source "mm/Kconfig"
274
275 config ARCH_MEMORY_PROBE
276         def_bool y
277         depends on MEMORY_HOTPLUG
278
279 # Some NUMA nodes have memory ranges that span
280 # other nodes.  Even though a pfn is valid and
281 # between a node's start and end pfns, it may not
282 # reside on that node.  See memmap_init_zone()
283 # for details.
284 config NODES_SPAN_OTHER_NODES
285         def_bool y
286         depends on NEED_MULTIPLE_NODES
287
288 config PPC_HAS_HASH_64K
289         bool
290         depends on PPC64
291         default n
292
293 config PPC_64K_PAGES
294         bool "64k page size"
295         depends on PPC64
296         select PPC_HAS_HASH_64K
297         help
298           This option changes the kernel logical page size to 64k. On machines
299           without processor support for 64k pages, the kernel will simulate
300           them by loading each individual 4k page on demand transparently,
301           while on hardware with such support, it will be used to map
302           normal application pages.
303
304 config SCHED_SMT
305         bool "SMT (Hyperthreading) scheduler support"
306         depends on PPC64 && SMP
307         help
308           SMT scheduler support improves the CPU scheduler's decision making
309           when dealing with POWER5 cpus at a cost of slightly increased
310           overhead in some places. If unsure say N here.
311
312 config PROC_DEVICETREE
313         bool "Support for device tree in /proc"
314         depends on PROC_FS
315         help
316           This option adds a device-tree directory under /proc which contains
317           an image of the device tree that the kernel copies from Open
318           Firmware or other boot firmware. If unsure, say Y here.
319
320 config CMDLINE_BOOL
321         bool "Default bootloader kernel arguments"
322
323 config CMDLINE
324         string "Initial kernel command string"
325         depends on CMDLINE_BOOL
326         default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
327         help
328           On some platforms, there is currently no way for the boot loader to
329           pass arguments to the kernel. For these platforms, you can supply
330           some command-line options at build time by entering them here.  In
331           most cases you will need to specify the root device here.
332
333 if !44x || BROKEN
334 source kernel/power/Kconfig
335 endif
336
337 config SECCOMP
338         bool "Enable seccomp to safely compute untrusted bytecode"
339         depends on PROC_FS
340         default y
341         help
342           This kernel feature is useful for number crunching applications
343           that may need to compute untrusted bytecode during their
344           execution. By using pipes or other transports made available to
345           the process as file descriptors supporting the read/write
346           syscalls, it's possible to isolate those applications in
347           their own address space using seccomp. Once seccomp is
348           enabled via /proc/<pid>/seccomp, it cannot be disabled
349           and the task is only allowed to execute a few safe syscalls
350           defined by each seccomp mode.
351
352           If unsure, say Y. Only embedded should say N here.
353
354 config WANT_DEVICE_TREE
355         bool
356         default n
357
358 config DEVICE_TREE
359         string "Static device tree source file"
360         depends on WANT_DEVICE_TREE
361         help
362           This specifies the device tree source (.dts) file to be
363           compiled and included when building the bootwrapper.  If a
364           relative filename is given, then it will be relative to
365           arch/powerpc/boot/dts.  If you are not using the bootwrapper,
366           or do not need to build a dts into the bootwrapper, this
367           field is ignored.
368
369           For example, this is required when building a cuImage target
370           for an older U-Boot, which cannot pass a device tree itself.
371           Such a kernel will not work with a newer U-Boot that tries to
372           pass a device tree (unless you tell it not to).  If your U-Boot
373           does not mention a device tree in "help bootm", then use the
374           cuImage target and specify a device tree here.  Otherwise, use
375           the uImage target and leave this field blank.
376
377 endmenu
378
379 config ISA_DMA_API
380         bool
381         default y
382
383 menu "Bus options"
384
385 config ISA
386         bool "Support for ISA-bus hardware"
387         depends on PPC_PREP || PPC_CHRP
388         select PPC_I8259
389         help
390           Find out whether you have ISA slots on your motherboard.  ISA is the
391           name of a bus system, i.e. the way the CPU talks to the other stuff
392           inside your box.  If you have an Apple machine, say N here; if you
393           have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
394           you have an embedded board, consult your board documentation.
395
396 config ZONE_DMA
397         bool
398         default y
399
400 config GENERIC_ISA_DMA
401         bool
402         depends on PPC64 || POWER4 || 6xx && !CPM2
403         default y
404
405 config PPC_INDIRECT_PCI
406         bool
407         depends on PCI
408         default y if 40x || 44x
409         default n
410
411 config PPC_INDIRECT_PCI_BE
412         bool
413         depends PPC_INDIRECT_PCI
414         default n
415
416 config EISA
417         bool
418
419 config SBUS
420         bool
421
422 config FSL_SOC
423         bool
424
425 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
426 config MCA
427         bool
428
429 config PCI
430         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
431                 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
432                 || PPC_PS3
433         default y if !40x && !CPM2 && !8xx && !PPC_83xx \
434                 && !PPC_85xx && !PPC_86xx
435         default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
436         default PCI_QSPAN if !4xx && !CPM2 && 8xx
437         select ARCH_SUPPORTS_MSI
438         help
439           Find out whether your system includes a PCI bus. PCI is the name of
440           a bus system, i.e. the way the CPU talks to the other stuff inside
441           your box.  If you say Y here, the kernel will include drivers and
442           infrastructure code to support PCI bus devices.
443
444 config PCI_DOMAINS
445         def_bool PCI
446
447 config PCI_SYSCALL
448         def_bool PCI
449
450 config PCI_QSPAN
451         bool "QSpan PCI"
452         depends on !4xx && !CPM2 && 8xx
453         select PPC_I8259
454         help
455           Say Y here if you have a system based on a Motorola 8xx-series
456           embedded processor with a QSPAN PCI interface, otherwise say N.
457
458 config PCI_8260
459         bool
460         depends on PCI && 8260
461         select PPC_INDIRECT_PCI
462         default y
463
464 config 8260_PCI9
465         bool "Enable workaround for MPC826x erratum PCI 9"
466         depends on PCI_8260 && !ADS8272
467         default y
468
469 choice
470         prompt "IDMA channel for PCI 9 workaround"
471         depends on 8260_PCI9
472
473 config 8260_PCI9_IDMA1
474         bool "IDMA1"
475
476 config 8260_PCI9_IDMA2
477         bool "IDMA2"
478
479 config 8260_PCI9_IDMA3
480         bool "IDMA3"
481
482 config 8260_PCI9_IDMA4
483         bool "IDMA4"
484
485 endchoice
486
487 source "drivers/pci/pcie/Kconfig"
488
489 source "drivers/pci/Kconfig"
490
491 source "drivers/pcmcia/Kconfig"
492
493 source "drivers/pci/hotplug/Kconfig"
494
495 endmenu
496
497 menu "Advanced setup"
498         depends on PPC32
499
500 config ADVANCED_OPTIONS
501         bool "Prompt for advanced kernel configuration options"
502         help
503           This option will enable prompting for a variety of advanced kernel
504           configuration options.  These options can cause the kernel to not
505           work if they are set incorrectly, but can be used to optimize certain
506           aspects of kernel memory management.
507
508           Unless you know what you are doing, say N here.
509
510 comment "Default settings for advanced configuration options are used"
511         depends on !ADVANCED_OPTIONS
512
513 config HIGHMEM_START_BOOL
514         bool "Set high memory pool address"
515         depends on ADVANCED_OPTIONS && HIGHMEM
516         help
517           This option allows you to set the base address of the kernel virtual
518           area used to map high memory pages.  This can be useful in
519           optimizing the layout of kernel virtual memory.
520
521           Say N here unless you know what you are doing.
522
523 config HIGHMEM_START
524         hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
525         default "0xfe000000"
526
527 config LOWMEM_SIZE_BOOL
528         bool "Set maximum low memory"
529         depends on ADVANCED_OPTIONS
530         help
531           This option allows you to set the maximum amount of memory which
532           will be used as "low memory", that is, memory which the kernel can
533           access directly, without having to set up a kernel virtual mapping.
534           This can be useful in optimizing the layout of kernel virtual
535           memory.
536
537           Say N here unless you know what you are doing.
538
539 config LOWMEM_SIZE
540         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
541         default "0x30000000"
542
543 config KERNEL_START_BOOL
544         bool "Set custom kernel base address"
545         depends on ADVANCED_OPTIONS
546         help
547           This option allows you to set the kernel virtual address at which
548           the kernel will map low memory (the kernel image will be linked at
549           this address).  This can be useful in optimizing the virtual memory
550           layout of the system.
551
552           Say N here unless you know what you are doing.
553
554 config KERNEL_START
555         hex "Virtual address of kernel base" if KERNEL_START_BOOL
556         default "0xc0000000"
557
558 config TASK_SIZE_BOOL
559         bool "Set custom user task size"
560         depends on ADVANCED_OPTIONS
561         help
562           This option allows you to set the amount of virtual address space
563           allocated to user tasks.  This can be useful in optimizing the
564           virtual memory layout of the system.
565
566           Say N here unless you know what you are doing.
567
568 config TASK_SIZE
569         hex "Size of user task space" if TASK_SIZE_BOOL
570         default "0x80000000"
571
572 config CONSISTENT_START_BOOL
573         bool "Set custom consistent memory pool address"
574         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
575         help
576           This option allows you to set the base virtual address
577           of the consistent memory pool.  This pool of virtual
578           memory is used to make consistent memory allocations.
579
580 config CONSISTENT_START
581         hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
582         default "0xff100000" if NOT_COHERENT_CACHE
583
584 config CONSISTENT_SIZE_BOOL
585         bool "Set custom consistent memory pool size"
586         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
587         help
588           This option allows you to set the size of the
589           consistent memory pool.  This pool of virtual memory
590           is used to make consistent memory allocations.
591
592 config CONSISTENT_SIZE
593         hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
594         default "0x00200000" if NOT_COHERENT_CACHE
595
596 config BOOT_LOAD_BOOL
597         bool "Set the boot link/load address"
598         depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
599         help
600           This option allows you to set the initial load address of the zImage
601           or zImage.initrd file.  This can be useful if you are on a board
602           which has a small amount of memory.
603
604           Say N here unless you know what you are doing.
605
606 config BOOT_LOAD
607         hex "Link/load address for booting" if BOOT_LOAD_BOOL
608         default "0x00400000" if 40x || 8xx || 8260
609         default "0x01000000" if 44x
610         default "0x00800000"
611
612 config PIN_TLB
613         bool "Pinned Kernel TLBs (860 ONLY)"
614         depends on ADVANCED_OPTIONS && 8xx
615 endmenu
616
617 if PPC64
618 config KERNEL_START
619         hex
620         default "0xc000000000000000"
621 endif
622
623 source "net/Kconfig"
624
625 source "drivers/Kconfig"
626
627 source "fs/Kconfig"
628
629 # XXX source "arch/ppc/8xx_io/Kconfig"
630
631 # XXX source "arch/ppc/8260_io/Kconfig"
632
633 source "arch/powerpc/sysdev/qe_lib/Kconfig"
634
635 source "lib/Kconfig"
636
637 menu "Instrumentation Support"
638         depends on EXPERIMENTAL
639
640 source "arch/powerpc/oprofile/Kconfig"
641
642 config KPROBES
643         bool "Kprobes"
644         depends on !BOOKE && !4xx && KALLSYMS && MODULES
645         help
646           Kprobes allows you to trap at almost any kernel address and
647           execute a callback function.  register_kprobe() establishes
648           a probepoint and specifies the callback.  Kprobes is useful
649           for kernel debugging, non-intrusive instrumentation and testing.
650           If in doubt, say "N".
651 endmenu
652
653 source "arch/powerpc/Kconfig.debug"
654
655 source "security/Kconfig"
656
657 config KEYS_COMPAT
658         bool
659         depends on COMPAT && KEYS
660         default y
661
662 source "crypto/Kconfig"