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