1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/kconfig-language.txt.
5 mainmenu "Linux/PowerPC Kernel Configuration"
7 source "arch/powerpc/platforms/Kconfig.cputype"
24 config GENERIC_HARDIRQS
32 config RWSEM_GENERIC_SPINLOCK
35 config RWSEM_XCHGADD_ALGORITHM
39 config ARCH_HAS_ILOG2_U32
43 config ARCH_HAS_ILOG2_U64
47 config GENERIC_HWEIGHT
51 config GENERIC_CALIBRATE_DELAY
55 config GENERIC_FIND_NEXT_BIT
59 config ARCH_NO_VIRT_TO_BUS
76 depends on COMPAT && SYSVIPC
79 # All PPC32s use generic nvram driver through ppc_md
84 config SCHED_NO_NO_OMIT_FRAME_POINTER
88 config ARCH_MAY_HAVE_PC_FDC
90 default !PPC_PSERIES || PCI
101 default y if PPC32 && SMP
113 config SYS_SUPPORTS_APM_EMULATION
114 default y if PMAC_APM_EMU
117 config DEFAULT_UIMAGE
120 Used to allow a board to specify it wants a uImage built by default
125 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
128 config PPC_DCR_NATIVE
138 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
141 config PPC_OF_PLATFORM_PCI
143 depends on PPC64 # not supported on 32 bits yet
146 source "init/Kconfig"
148 source "arch/powerpc/platforms/Kconfig"
150 menu "Kernel options"
153 bool "High memory support"
156 source kernel/Kconfig.hz
157 source kernel/Kconfig.preempt
158 source "fs/Kconfig.binfmt"
160 # We optimistically allocate largepages from the VM, so make the limit
161 # large enough (16MB). This badly named config option is actually
163 config FORCE_MAX_ZONEORDER
166 default "9" if PPC_64K_PAGES
169 config MATH_EMULATION
170 bool "Math emulation"
171 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
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
181 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
182 depends on EXPERIMENTAL && PPC64
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.
193 bool "Support for enabling/disabling CPUs"
194 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
196 Say Y here to be able to disable and re-enable individual
197 CPUs at runtime on SMP machines.
199 Say N if you are unsure.
201 config ARCH_ENABLE_MEMORY_HOTPLUG
205 bool "kexec system call (EXPERIMENTAL)"
206 depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
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.
213 The name comes from the similarity to the exec system call.
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.
222 bool "Build a kdump crash kernel (EXPERIMENTAL)"
223 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
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.
229 Don't change this unless you know what you are doing.
232 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
233 default y if PPC_PREP
236 bool "Distribute interrupts on all CPUs by default"
237 depends on SMP && !MV64360
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.
247 default y if SMP && PPC_PSERIES
252 depends on NEED_MULTIPLE_NODES
254 config ARCH_SELECT_MEMORY_MODEL
258 config ARCH_FLATMEM_ENABLE
260 depends on (PPC64 && !NUMA) || PPC32
262 config ARCH_SPARSEMEM_ENABLE
266 config ARCH_SPARSEMEM_DEFAULT
268 depends on (SMP && PPC_PSERIES) || PPC_PS3
270 config ARCH_POPULATES_NODE_MAP
275 config ARCH_MEMORY_PROBE
277 depends on MEMORY_HOTPLUG
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()
284 config NODES_SPAN_OTHER_NODES
286 depends on NEED_MULTIPLE_NODES
288 config PPC_HAS_HASH_64K
296 select PPC_HAS_HASH_64K
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.
305 bool "SMT (Hyperthreading) scheduler support"
306 depends on PPC64 && SMP
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.
312 config PROC_DEVICETREE
313 bool "Support for device tree in /proc"
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.
321 bool "Default bootloader kernel arguments"
324 string "Initial kernel command string"
325 depends on CMDLINE_BOOL
326 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
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.
334 source kernel/power/Kconfig
338 bool "Enable seccomp to safely compute untrusted bytecode"
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.
352 If unsure, say Y. Only embedded should say N here.
354 config WANT_DEVICE_TREE
359 string "Static device tree source file"
360 depends on WANT_DEVICE_TREE
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
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.
386 bool "Support for ISA-bus hardware"
387 depends on PPC_PREP || PPC_CHRP
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.
400 config GENERIC_ISA_DMA
402 depends on PPC64 || POWER4 || 6xx && !CPM2
405 config PPC_INDIRECT_PCI
408 default y if 40x || 44x
411 config PPC_INDIRECT_PCI_BE
413 depends PPC_INDIRECT_PCI
425 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
430 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
431 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
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
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.
452 depends on !4xx && !CPM2 && 8xx
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.
460 depends on PCI && 8260
461 select PPC_INDIRECT_PCI
465 bool "Enable workaround for MPC826x erratum PCI 9"
466 depends on PCI_8260 && !ADS8272
470 prompt "IDMA channel for PCI 9 workaround"
473 config 8260_PCI9_IDMA1
476 config 8260_PCI9_IDMA2
479 config 8260_PCI9_IDMA3
482 config 8260_PCI9_IDMA4
487 source "drivers/pci/pcie/Kconfig"
489 source "drivers/pci/Kconfig"
491 source "drivers/pcmcia/Kconfig"
493 source "drivers/pci/hotplug/Kconfig"
497 menu "Advanced setup"
500 config ADVANCED_OPTIONS
501 bool "Prompt for advanced kernel configuration options"
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.
508 Unless you know what you are doing, say N here.
510 comment "Default settings for advanced configuration options are used"
511 depends on !ADVANCED_OPTIONS
513 config HIGHMEM_START_BOOL
514 bool "Set high memory pool address"
515 depends on ADVANCED_OPTIONS && HIGHMEM
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.
521 Say N here unless you know what you are doing.
524 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
527 config LOWMEM_SIZE_BOOL
528 bool "Set maximum low memory"
529 depends on ADVANCED_OPTIONS
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
537 Say N here unless you know what you are doing.
540 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
543 config KERNEL_START_BOOL
544 bool "Set custom kernel base address"
545 depends on ADVANCED_OPTIONS
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.
552 Say N here unless you know what you are doing.
555 hex "Virtual address of kernel base" if KERNEL_START_BOOL
558 config TASK_SIZE_BOOL
559 bool "Set custom user task size"
560 depends on ADVANCED_OPTIONS
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.
566 Say N here unless you know what you are doing.
569 hex "Size of user task space" if TASK_SIZE_BOOL
572 config CONSISTENT_START_BOOL
573 bool "Set custom consistent memory pool address"
574 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
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.
580 config CONSISTENT_START
581 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
582 default "0xff100000" if NOT_COHERENT_CACHE
584 config CONSISTENT_SIZE_BOOL
585 bool "Set custom consistent memory pool size"
586 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
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.
592 config CONSISTENT_SIZE
593 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
594 default "0x00200000" if NOT_COHERENT_CACHE
596 config BOOT_LOAD_BOOL
597 bool "Set the boot link/load address"
598 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
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.
604 Say N here unless you know what you are doing.
607 hex "Link/load address for booting" if BOOT_LOAD_BOOL
608 default "0x00400000" if 40x || 8xx || 8260
609 default "0x01000000" if 44x
613 bool "Pinned Kernel TLBs (860 ONLY)"
614 depends on ADVANCED_OPTIONS && 8xx
620 default "0xc000000000000000"
625 source "drivers/Kconfig"
629 # XXX source "arch/ppc/8xx_io/Kconfig"
631 # XXX source "arch/ppc/8260_io/Kconfig"
633 source "arch/powerpc/sysdev/qe_lib/Kconfig"
637 menu "Instrumentation Support"
638 depends on EXPERIMENTAL
640 source "arch/powerpc/oprofile/Kconfig"
644 depends on !BOOKE && !4xx && KALLSYMS && MODULES
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".
653 source "arch/powerpc/Kconfig.debug"
655 source "security/Kconfig"
659 depends on COMPAT && KEYS
662 source "crypto/Kconfig"