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