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
73 depends on COMPAT && SYSVIPC
76 # All PPC32s use generic nvram driver through ppc_md
81 config SCHED_NO_NO_OMIT_FRAME_POINTER
85 config ARCH_MAY_HAVE_PC_FDC
87 default !PPC_PSERIES || PCI
98 default y if PPC32 && SMP
110 config SYS_SUPPORTS_APM_EMULATION
111 default y if PMAC_APM_EMU
114 config DEFAULT_UIMAGE
117 Used to allow a board to specify it wants a uImage built by default
122 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
125 config PPC_DCR_NATIVE
135 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
138 config PPC_OF_PLATFORM_PCI
140 depends on PPC64 # not supported on 32 bits yet
143 source "init/Kconfig"
145 source "arch/powerpc/platforms/Kconfig"
147 menu "Kernel options"
150 bool "High memory support"
153 source kernel/Kconfig.hz
154 source kernel/Kconfig.preempt
155 source "fs/Kconfig.binfmt"
157 # We optimistically allocate largepages from the VM, so make the limit
158 # large enough (16MB). This badly named config option is actually
160 config FORCE_MAX_ZONEORDER
163 default "9" if PPC_64K_PAGES
166 config MATH_EMULATION
167 bool "Math emulation"
168 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
170 Some PowerPC chips designed for embedded applications do not have
171 a floating-point unit and therefore do not implement the
172 floating-point instructions in the PowerPC instruction set. If you
173 say Y here, the kernel will include code to emulate a floating-point
174 unit, which will allow programs that use floating-point
178 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
179 depends on EXPERIMENTAL && PPC64
182 Cause IO segments sent to a device for DMA to be merged virtually
183 by the IOMMU when they happen to have been allocated contiguously.
184 This doesn't add pressure to the IOMMU allocator. However, some
185 drivers don't support getting large merged segments coming back
186 from *_map_sg(). Say Y if you know the drivers you are using are
187 properly handling this case.
190 bool "Support for enabling/disabling CPUs"
191 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
193 Say Y here to be able to disable and re-enable individual
194 CPUs at runtime on SMP machines.
196 Say N if you are unsure.
198 config ARCH_ENABLE_MEMORY_HOTPLUG
202 bool "kexec system call (EXPERIMENTAL)"
203 depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
205 kexec is a system call that implements the ability to shutdown your
206 current kernel, and to start another kernel. It is like a reboot
207 but it is independent of the system firmware. And like a reboot
208 you can start any kernel with it, not just Linux.
210 The name comes from the similarity to the exec system call.
212 It is an ongoing process to be certain the hardware in a machine
213 is properly shutdown, so do not be surprised if this code does not
214 initially work for you. It may help to enable device hotplugging
215 support. As of this writing the exact hardware interface is
216 strongly in flux, so no good recommendation can be made.
219 bool "Build a kdump crash kernel (EXPERIMENTAL)"
220 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
222 Build a kernel suitable for use as a kdump capture kernel.
223 The kernel will be linked at a different address than normal, and
224 so can only be used for Kdump.
226 Don't change this unless you know what you are doing.
229 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
230 default y if PPC_PREP
233 bool "Distribute interrupts on all CPUs by default"
234 depends on SMP && !MV64360
236 This option gives the kernel permission to distribute IRQs across
237 multiple CPUs. Saying N here will route all IRQs to the first
238 CPU. Generally saying Y is safe, although some problems have been
239 reported with SMP Power Macintoshes with this option enabled.
244 default y if SMP && PPC_PSERIES
249 depends on NEED_MULTIPLE_NODES
251 config ARCH_SELECT_MEMORY_MODEL
255 config ARCH_FLATMEM_ENABLE
257 depends on (PPC64 && !NUMA) || PPC32
259 config ARCH_SPARSEMEM_ENABLE
263 config ARCH_SPARSEMEM_DEFAULT
265 depends on (SMP && PPC_PSERIES) || PPC_PS3
267 config ARCH_POPULATES_NODE_MAP
272 config ARCH_MEMORY_PROBE
274 depends on MEMORY_HOTPLUG
276 # Some NUMA nodes have memory ranges that span
277 # other nodes. Even though a pfn is valid and
278 # between a node's start and end pfns, it may not
279 # reside on that node. See memmap_init_zone()
281 config NODES_SPAN_OTHER_NODES
283 depends on NEED_MULTIPLE_NODES
285 config PPC_HAS_HASH_64K
293 select PPC_HAS_HASH_64K
295 This option changes the kernel logical page size to 64k. On machines
296 without processor support for 64k pages, the kernel will simulate
297 them by loading each individual 4k page on demand transparently,
298 while on hardware with such support, it will be used to map
299 normal application pages.
302 bool "SMT (Hyperthreading) scheduler support"
303 depends on PPC64 && SMP
305 SMT scheduler support improves the CPU scheduler's decision making
306 when dealing with POWER5 cpus at a cost of slightly increased
307 overhead in some places. If unsure say N here.
309 config PROC_DEVICETREE
310 bool "Support for device tree in /proc"
313 This option adds a device-tree directory under /proc which contains
314 an image of the device tree that the kernel copies from Open
315 Firmware or other boot firmware. If unsure, say Y here.
318 bool "Default bootloader kernel arguments"
321 string "Initial kernel command string"
322 depends on CMDLINE_BOOL
323 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
325 On some platforms, there is currently no way for the boot loader to
326 pass arguments to the kernel. For these platforms, you can supply
327 some command-line options at build time by entering them here. In
328 most cases you will need to specify the root device here.
331 source kernel/power/Kconfig
335 bool "Enable seccomp to safely compute untrusted bytecode"
339 This kernel feature is useful for number crunching applications
340 that may need to compute untrusted bytecode during their
341 execution. By using pipes or other transports made available to
342 the process as file descriptors supporting the read/write
343 syscalls, it's possible to isolate those applications in
344 their own address space using seccomp. Once seccomp is
345 enabled via /proc/<pid>/seccomp, it cannot be disabled
346 and the task is only allowed to execute a few safe syscalls
347 defined by each seccomp mode.
349 If unsure, say Y. Only embedded should say N here.
351 config WANT_DEVICE_TREE
356 string "Static device tree source file"
357 depends on WANT_DEVICE_TREE
359 This specifies the device tree source (.dts) file to be
360 compiled and included when building the bootwrapper. If a
361 relative filename is given, then it will be relative to
362 arch/powerpc/boot/dts. If you are not using the bootwrapper,
363 or do not need to build a dts into the bootwrapper, this
366 For example, this is required when building a cuImage target
367 for an older U-Boot, which cannot pass a device tree itself.
368 Such a kernel will not work with a newer U-Boot that tries to
369 pass a device tree (unless you tell it not to). If your U-Boot
370 does not mention a device tree in "help bootm", then use the
371 cuImage target and specify a device tree here. Otherwise, use
372 the uImage target and leave this field blank.
383 bool "Support for ISA-bus hardware"
384 depends on PPC_PREP || PPC_CHRP
387 Find out whether you have ISA slots on your motherboard. ISA is the
388 name of a bus system, i.e. the way the CPU talks to the other stuff
389 inside your box. If you have an Apple machine, say N here; if you
390 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
391 you have an embedded board, consult your board documentation.
397 config GENERIC_ISA_DMA
399 depends on PPC64 || POWER4 || 6xx && !CPM2
402 config PPC_INDIRECT_PCI
405 default y if 40x || 44x
408 config PPC_INDIRECT_PCI_BE
410 depends PPC_INDIRECT_PCI
426 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
431 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
432 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
433 || MPC7448HPC2 || PPC_PS3 || PPC_HOLLY
434 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
435 && !PPC_85xx && !PPC_86xx
436 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
437 default PCI_QSPAN if !4xx && !CPM2 && 8xx
438 select ARCH_SUPPORTS_MSI
440 Find out whether your system includes a PCI bus. PCI is the name of
441 a bus system, i.e. the way the CPU talks to the other stuff inside
442 your box. If you say Y here, the kernel will include drivers and
443 infrastructure code to support PCI bus devices.
451 depends on !4xx && !CPM2 && 8xx
454 Say Y here if you have a system based on a Motorola 8xx-series
455 embedded processor with a QSPAN PCI interface, otherwise say N.
459 depends on PCI && 8260
460 select PPC_INDIRECT_PCI
464 bool "Enable workaround for MPC826x erratum PCI 9"
465 depends on PCI_8260 && !ADS8272
469 prompt "IDMA channel for PCI 9 workaround"
472 config 8260_PCI9_IDMA1
475 config 8260_PCI9_IDMA2
478 config 8260_PCI9_IDMA3
481 config 8260_PCI9_IDMA4
486 source "drivers/pci/pcie/Kconfig"
488 source "drivers/pci/Kconfig"
490 source "drivers/pcmcia/Kconfig"
492 source "drivers/pci/hotplug/Kconfig"
496 menu "Advanced setup"
499 config ADVANCED_OPTIONS
500 bool "Prompt for advanced kernel configuration options"
502 This option will enable prompting for a variety of advanced kernel
503 configuration options. These options can cause the kernel to not
504 work if they are set incorrectly, but can be used to optimize certain
505 aspects of kernel memory management.
507 Unless you know what you are doing, say N here.
509 comment "Default settings for advanced configuration options are used"
510 depends on !ADVANCED_OPTIONS
512 config HIGHMEM_START_BOOL
513 bool "Set high memory pool address"
514 depends on ADVANCED_OPTIONS && HIGHMEM
516 This option allows you to set the base address of the kernel virtual
517 area used to map high memory pages. This can be useful in
518 optimizing the layout of kernel virtual memory.
520 Say N here unless you know what you are doing.
523 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
526 config LOWMEM_SIZE_BOOL
527 bool "Set maximum low memory"
528 depends on ADVANCED_OPTIONS
530 This option allows you to set the maximum amount of memory which
531 will be used as "low memory", that is, memory which the kernel can
532 access directly, without having to set up a kernel virtual mapping.
533 This can be useful in optimizing the layout of kernel virtual
536 Say N here unless you know what you are doing.
539 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
542 config KERNEL_START_BOOL
543 bool "Set custom kernel base address"
544 depends on ADVANCED_OPTIONS
546 This option allows you to set the kernel virtual address at which
547 the kernel will map low memory (the kernel image will be linked at
548 this address). This can be useful in optimizing the virtual memory
549 layout of the system.
551 Say N here unless you know what you are doing.
554 hex "Virtual address of kernel base" if KERNEL_START_BOOL
557 config TASK_SIZE_BOOL
558 bool "Set custom user task size"
559 depends on ADVANCED_OPTIONS
561 This option allows you to set the amount of virtual address space
562 allocated to user tasks. This can be useful in optimizing the
563 virtual memory layout of the system.
565 Say N here unless you know what you are doing.
568 hex "Size of user task space" if TASK_SIZE_BOOL
571 config CONSISTENT_START_BOOL
572 bool "Set custom consistent memory pool address"
573 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
575 This option allows you to set the base virtual address
576 of the consistent memory pool. This pool of virtual
577 memory is used to make consistent memory allocations.
579 config CONSISTENT_START
580 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
581 default "0xff100000" if NOT_COHERENT_CACHE
583 config CONSISTENT_SIZE_BOOL
584 bool "Set custom consistent memory pool size"
585 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
587 This option allows you to set the size of the
588 consistent memory pool. This pool of virtual memory
589 is used to make consistent memory allocations.
591 config CONSISTENT_SIZE
592 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
593 default "0x00200000" if NOT_COHERENT_CACHE
595 config BOOT_LOAD_BOOL
596 bool "Set the boot link/load address"
597 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
599 This option allows you to set the initial load address of the zImage
600 or zImage.initrd file. This can be useful if you are on a board
601 which has a small amount of memory.
603 Say N here unless you know what you are doing.
606 hex "Link/load address for booting" if BOOT_LOAD_BOOL
607 default "0x00400000" if 40x || 8xx || 8260
608 default "0x01000000" if 44x
612 bool "Pinned Kernel TLBs (860 ONLY)"
613 depends on ADVANCED_OPTIONS && 8xx
619 default "0xc000000000000000"
624 source "drivers/Kconfig"
628 # XXX source "arch/ppc/8xx_io/Kconfig"
630 # XXX source "arch/ppc/8260_io/Kconfig"
632 source "arch/powerpc/sysdev/qe_lib/Kconfig"
636 menu "Instrumentation Support"
637 depends on EXPERIMENTAL
639 source "arch/powerpc/oprofile/Kconfig"
642 bool "Kprobes (EXPERIMENTAL)"
643 depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
645 Kprobes allows you to trap at almost any kernel address and
646 execute a callback function. register_kprobe() establishes
647 a probepoint and specifies the callback. Kprobes is useful
648 for kernel debugging, non-intrusive instrumentation and testing.
649 If in doubt, say "N".
652 source "arch/powerpc/Kconfig.debug"
654 source "security/Kconfig"
658 depends on COMPAT && KEYS
661 source "crypto/Kconfig"