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