1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/kconfig-language.txt.
5 mainmenu "Linux/PowerPC Kernel Configuration"
11 This option selects whether a 32-bit or a 64-bit kernel
29 config GENERIC_HARDIRQS
33 config RWSEM_GENERIC_SPINLOCK
36 config RWSEM_XCHGADD_ALGORITHM
40 config GENERIC_CALIBRATE_DELAY
58 depends on COMPAT && SYSVIPC
61 # All PPC32s use generic nvram driver through ppc_md
66 config SCHED_NO_NO_OMIT_FRAME_POINTER
70 config ARCH_MAY_HAVE_PC_FDC
83 default y if PPC32 && SMP
86 menu "Processor support"
88 prompt "Processor Type"
97 There are four families of PowerPC chips supported. The more common
98 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
99 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
100 embedded versions (403 and 405) and the high end 64 bit Power
101 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
103 Unless you are building a kernel for one of the embedded processor
104 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
105 Note that the kernel runs in 32-bit mode even on 64-bit chips.
108 bool "Freescale 52xx"
113 bool "Freescale 82xx"
118 bool "Freescale 83xx"
125 bool "Freescale 85xx"
140 bool "Freescale e200"
145 bool "Optimize for POWER4"
149 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
150 The resulting binary will not work on POWER3 or RS64 processors
151 when compiled with binutils 2.15 or later.
156 default y if !POWER4_ONLY
165 # this is temp to handle compat with arch=ppc
169 # this is temp to handle compat with arch=ppc
182 depends on E200 || E500
187 depends on E200 || E500
192 depends on 44x || E500
194 default y if E500 && PHYS_64BIT
197 bool 'Large physical address support' if E500
198 depends on 44x || E500
201 This option enables kernel support for larger than 32-bit physical
202 addresses. This features is not be available on all e500 cores.
204 If in doubt, say N here.
207 bool "AltiVec Support"
208 depends on CLASSIC32 || POWER4
210 This option enables kernel support for the Altivec extensions to the
211 PowerPC processor. The kernel currently supports saving and restoring
212 altivec registers, and turning on the 'altivec enable' bit so user
213 processes can execute altivec instructions.
215 This option is only usefully if you have a processor that supports
216 altivec (G4, otherwise known as 74xx series), but does not have
217 any affect on a non-altivec cpu (it does, however add code to the
220 If in doubt, say Y here.
224 depends on E200 || E500
227 This option enables kernel support for the Signal Processing
228 Extensions (SPE) to the PowerPC processor. The kernel currently
229 supports saving and restoring SPE registers, and turning on the
230 'spe enable' bit so user processes can execute SPE instructions.
232 This option is only useful if you have a processor that supports
233 SPE (e500, otherwise known as 85xx series), but does not have any
234 effect on a non-spe cpu (it does, however add code to the kernel).
236 If in doubt, say Y here.
240 depends on 6xx || POWER3 || POWER4 || PPC64
243 config PPC_STD_MMU_32
245 depends on PPC_STD_MMU && PPC32
248 depends on PPC_STD_MMU
249 bool "Symmetric multi-processing support"
251 This enables support for systems with more than one CPU. If you have
252 a system with only one CPU, say N. If you have a system with more
253 than one CPU, say Y. Note that the kernel does not currently
254 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
255 since they have inadequate hardware support for multiprocessor
258 If you say N here, the kernel will run on single and multiprocessor
259 machines, but will use only one CPU of a multiprocessor machine. If
260 you say Y here, the kernel will run on single-processor machines.
261 On a single-processor machine, the kernel will run faster if you say
264 If you don't know what to do here, say N.
267 int "Maximum number of CPUs (2-128)"
270 default "32" if PPC64
273 config NOT_COHERENT_CACHE
275 depends on 4xx || 8xx || E200
279 source "init/Kconfig"
281 menu "Platform support"
282 depends on PPC64 || CLASSIC32
285 prompt "Machine type"
286 default PPC_MULTIPLATFORM
288 config PPC_MULTIPLATFORM
289 bool "Generic desktop/server/laptop"
291 Select this option if configuring for an IBM pSeries or
292 RS/6000 machine, an Apple machine, or a PReP, CHRP,
293 Maple or Cell-based machine.
296 bool "IBM Legacy iSeries"
300 bool "Embedded 6xx/7xx/7xxx-based board"
301 depends on PPC32 && BROKEN
305 depends on PPC32 && BROKEN
307 Select APUS if configuring for a PowerUP Amiga.
308 More information is available at:
309 <http://linux-apus.sourceforge.net/>.
313 depends on PPC_MULTIPLATFORM && PPC64
314 bool " IBM pSeries & new (POWER5-based) iSeries"
317 select RTAS_ERROR_LOGGING
318 select PPC_UDBG_16550
322 bool " Common Hardware Reference Platform (CHRP) based machines"
323 depends on PPC_MULTIPLATFORM && PPC32
325 select PPC_INDIRECT_PCI
328 select PPC_UDBG_16550
332 bool " Apple PowerMac based machines"
333 depends on PPC_MULTIPLATFORM
334 select PPC_INDIRECT_PCI if PPC32
335 select PPC_MPC106 if PPC32
340 depends on PPC_PMAC && POWER4
342 select MPIC_BROKEN_U3
343 select GENERIC_TBSYNC
347 bool " PowerPC Reference Platform (PReP) based machines"
348 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
350 select PPC_INDIRECT_PCI
351 select PPC_UDBG_16550
355 depends on PPC_MULTIPLATFORM && PPC64
356 bool " Maple 970FX Evaluation Board"
358 select MPIC_BROKEN_U3
359 select GENERIC_TBSYNC
360 select PPC_UDBG_16550
363 This option enables support for the Maple 970FX Evaluation Board.
364 For more informations, refer to <http://www.970eval.com>
367 bool " Cell Broadband Processor Architecture"
368 depends on PPC_MULTIPLATFORM && PPC64
371 select PPC_UDBG_16550
374 depends on PPC_PSERIES
380 depends on PPC_MULTIPLATFORM && PPC64
384 depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
392 config RTAS_ERROR_LOGGING
398 bool "Proc interface to RTAS"
403 tristate "Firmware flash interface"
404 depends on PPC64 && RTAS_PROC
410 config MPIC_BROKEN_U3
421 depends on PPC_PSERIES || PPC_ISERIES
426 depends on PPC_PSERIES
427 bool "Support for GX bus based adapters"
429 Bus device driver for GX bus based adapters.
435 source "drivers/cpufreq/Kconfig"
438 bool "Support for Apple PowerBooks"
439 depends on CPU_FREQ && ADB_PMU && PPC32
440 select CPU_FREQ_TABLE
442 This adds support for frequency switching on Apple PowerBooks,
443 this currently includes some models of iBook & Titanium
446 config CPU_FREQ_PMAC64
447 bool "Support for some Apple G5s"
448 depends on CPU_FREQ && PMAC_SMU && PPC64
449 select CPU_FREQ_TABLE
451 This adds support for frequency switching on Apple iMac G5,
452 and some of the more recent desktop G5 machines as well.
454 config PPC601_SYNC_FIX
455 bool "Workarounds for PPC601 bugs"
456 depends on 6xx && (PPC_PREP || PPC_PMAC)
458 Some versions of the PPC601 (the first PowerPC chip) have bugs which
459 mean that extra synchronization instructions are required near
460 certain instructions, typically those that make major changes to the
461 CPU state. These extra instructions reduce performance slightly.
462 If you say N here, these extra instructions will not be included,
463 resulting in a kernel which will run faster but may not run at all
464 on some systems with the PPC601 chip.
466 If in doubt, say Y here.
469 bool "Thermal Management Support"
472 G3 and G4 processors have an on-chip temperature sensor called the
473 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
474 temperature within 2-4 degrees Celsius. This option shows the current
475 on-die temperature in /proc/cpuinfo if the cpu supports it.
477 Unfortunately, on some chip revisions, this sensor is very inaccurate
478 and in some cases, does not work at all, so don't assume the cpu
479 temp is actually what /proc/cpuinfo says it is.
482 bool "Interrupt driven TAU driver (DANGEROUS)"
485 The TAU supports an interrupt driven mode which causes an interrupt
486 whenever the temperature goes out of range. This is the fastest way
487 to get notified the temp has exceeded a range. With this option off,
488 a timer is used to re-check the temperature periodically.
490 However, on some cpus it appears that the TAU interrupt hardware
491 is buggy and can cause a situation which would lead unexplained hard
494 Unless you are extending the TAU driver, or enjoy kernel/hardware
495 debugging, leave this option off.
498 bool "Average high and low temp"
501 The TAU hardware can compare the temperature to an upper and lower
502 bound. The default behavior is to show both the upper and lower
503 bound in /proc/cpuinfo. If the range is large, the temperature is
504 either changing a lot, or the TAU hardware is broken (likely on some
505 G4's). If the range is small (around 4 degrees), the temperature is
506 relatively stable. If you say Y here, a single temperature value,
507 halfway between the upper and lower bounds, will be reported in
510 If in doubt, say N here.
513 source arch/powerpc/platforms/embedded6xx/Kconfig
514 source arch/powerpc/platforms/4xx/Kconfig
515 source arch/powerpc/platforms/83xx/Kconfig
516 source arch/powerpc/platforms/85xx/Kconfig
517 source arch/powerpc/platforms/8xx/Kconfig
518 source arch/powerpc/platforms/cell/Kconfig
520 menu "Kernel options"
523 bool "High memory support"
526 source kernel/Kconfig.hz
527 source kernel/Kconfig.preempt
528 source "fs/Kconfig.binfmt"
530 # We optimistically allocate largepages from the VM, so make the limit
531 # large enough (16MB). This badly named config option is actually
533 config FORCE_MAX_ZONEORDER
536 default "9" if PPC_64K_PAGES
539 config MATH_EMULATION
540 bool "Math emulation"
541 depends on 4xx || 8xx || E200 || E500
543 Some PowerPC chips designed for embedded applications do not have
544 a floating-point unit and therefore do not implement the
545 floating-point instructions in the PowerPC instruction set. If you
546 say Y here, the kernel will include code to emulate a floating-point
547 unit, which will allow programs that use floating-point
551 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
552 depends on EXPERIMENTAL && PPC64
555 Cause IO segments sent to a device for DMA to be merged virtually
556 by the IOMMU when they happen to have been allocated contiguously.
557 This doesn't add pressure to the IOMMU allocator. However, some
558 drivers don't support getting large merged segments coming back
559 from *_map_sg(). Say Y if you know the drivers you are using are
560 properly handling this case.
563 bool "Support for enabling/disabling CPUs"
564 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
566 Say Y here to be able to disable and re-enable individual
567 CPUs at runtime on SMP machines.
569 Say N if you are unsure.
572 bool "kexec system call (EXPERIMENTAL)"
573 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
575 kexec is a system call that implements the ability to shutdown your
576 current kernel, and to start another kernel. It is like a reboot
577 but it is indepedent of the system firmware. And like a reboot
578 you can start any kernel with it, not just Linux.
580 The name comes from the similiarity to the exec system call.
582 It is an ongoing process to be certain the hardware in a machine
583 is properly shutdown, so do not be surprised if this code does not
584 initially work for you. It may help to enable device hotplugging
585 support. As of this writing the exact hardware interface is
586 strongly in flux, so no good recommendation can be made.
589 bool "kernel crash dumps (EXPERIMENTAL)"
590 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
592 Build a kernel suitable for use as a kdump capture kernel.
593 The kernel will be linked at a different address than normal, and
594 so can only be used for Kdump.
596 Don't change this unless you know what you are doing.
600 depends on 8xx || 8260
604 bool "PC PS/2 style Keyboard"
605 depends on 4xx || CPM2
608 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
609 default y if PPC_PREP
612 bool "Distribute interrupts on all CPUs by default"
613 depends on SMP && !MV64360
615 This option gives the kernel permission to distribute IRQs across
616 multiple CPUs. Saying N here will route all IRQs to the first
617 CPU. Generally saying Y is safe, although some problems have been
618 reported with SMP Power Macintoshes with this option enabled.
620 source "arch/powerpc/platforms/pseries/Kconfig"
625 default y if SMP && PPC_PSERIES
627 config ARCH_SELECT_MEMORY_MODEL
631 config ARCH_FLATMEM_ENABLE
633 depends on (PPC64 && !NUMA) || PPC32
635 config ARCH_SPARSEMEM_ENABLE
639 config ARCH_SPARSEMEM_DEFAULT
641 depends on SMP && PPC_PSERIES
645 config HAVE_ARCH_EARLY_PFN_TO_NID
647 depends on NEED_MULTIPLE_NODES
649 config ARCH_MEMORY_PROBE
651 depends on MEMORY_HOTPLUG
657 This option changes the kernel logical page size to 64k. On machines
658 without processor support for 64k pages, the kernel will simulate
659 them by loading each individual 4k page on demand transparently,
660 while on hardware with such support, it will be used to map
661 normal application pages.
664 bool "SMT (Hyperthreading) scheduler support"
665 depends on PPC64 && SMP
668 SMT scheduler support improves the CPU scheduler's decision making
669 when dealing with POWER5 cpus at a cost of slightly increased
670 overhead in some places. If unsure say N here.
672 config PROC_DEVICETREE
673 bool "Support for device tree in /proc"
676 This option adds a device-tree directory under /proc which contains
677 an image of the device tree that the kernel copies from Open
678 Firmware or other boot firmware. If unsure, say Y here.
680 source "arch/powerpc/platforms/prep/Kconfig"
683 bool "Default bootloader kernel arguments"
684 depends on !PPC_ISERIES
687 string "Initial kernel command string"
688 depends on CMDLINE_BOOL
689 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
691 On some platforms, there is currently no way for the boot loader to
692 pass arguments to the kernel. For these platforms, you can supply
693 some command-line options at build time by entering them here. In
694 most cases you will need to specify the root device here.
697 source kernel/power/Kconfig
701 bool "Enable seccomp to safely compute untrusted bytecode"
705 This kernel feature is useful for number crunching applications
706 that may need to compute untrusted bytecode during their
707 execution. By using pipes or other transports made available to
708 the process as file descriptors supporting the read/write
709 syscalls, it's possible to isolate those applications in
710 their own address space using seccomp. Once seccomp is
711 enabled via /proc/<pid>/seccomp, it cannot be disabled
712 and the task is only allowed to execute a few safe syscalls
713 defined by each seccomp mode.
715 If unsure, say Y. Only embedded should say N here.
726 bool "Support for ISA-bus hardware"
727 depends on PPC_PREP || PPC_CHRP
730 Find out whether you have ISA slots on your motherboard. ISA is the
731 name of a bus system, i.e. the way the CPU talks to the other stuff
732 inside your box. If you have an Apple machine, say N here; if you
733 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
734 you have an embedded board, consult your board documentation.
736 config GENERIC_ISA_DMA
738 depends on PPC64 || POWER4 || 6xx && !CPM2
745 config PPC_INDIRECT_PCI
748 default y if 40x || 44x
760 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
765 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
766 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx
767 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
768 default PCI_QSPAN if !4xx && !CPM2 && 8xx
770 Find out whether your system includes a PCI bus. PCI is the name of
771 a bus system, i.e. the way the CPU talks to the other stuff inside
772 your box. If you say Y here, the kernel will include drivers and
773 infrastructure code to support PCI bus devices.
781 depends on !4xx && !CPM2 && 8xx
784 Say Y here if you have a system based on a Motorola 8xx-series
785 embedded processor with a QSPAN PCI interface, otherwise say N.
789 depends on PCI && 8260
790 select PPC_INDIRECT_PCI
794 bool " Enable workaround for MPC826x erratum PCI 9"
795 depends on PCI_8260 && !ADS8272
799 prompt " IDMA channel for PCI 9 workaround"
802 config 8260_PCI9_IDMA1
805 config 8260_PCI9_IDMA2
808 config 8260_PCI9_IDMA3
811 config 8260_PCI9_IDMA4
816 source "drivers/pci/Kconfig"
818 source "drivers/pcmcia/Kconfig"
820 source "drivers/pci/hotplug/Kconfig"
824 menu "Advanced setup"
827 config ADVANCED_OPTIONS
828 bool "Prompt for advanced kernel configuration options"
830 This option will enable prompting for a variety of advanced kernel
831 configuration options. These options can cause the kernel to not
832 work if they are set incorrectly, but can be used to optimize certain
833 aspects of kernel memory management.
835 Unless you know what you are doing, say N here.
837 comment "Default settings for advanced configuration options are used"
838 depends on !ADVANCED_OPTIONS
840 config HIGHMEM_START_BOOL
841 bool "Set high memory pool address"
842 depends on ADVANCED_OPTIONS && HIGHMEM
844 This option allows you to set the base address of the kernel virtual
845 area used to map high memory pages. This can be useful in
846 optimizing the layout of kernel virtual memory.
848 Say N here unless you know what you are doing.
851 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
854 config LOWMEM_SIZE_BOOL
855 bool "Set maximum low memory"
856 depends on ADVANCED_OPTIONS
858 This option allows you to set the maximum amount of memory which
859 will be used as "low memory", that is, memory which the kernel can
860 access directly, without having to set up a kernel virtual mapping.
861 This can be useful in optimizing the layout of kernel virtual
864 Say N here unless you know what you are doing.
867 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
870 config KERNEL_START_BOOL
871 bool "Set custom kernel base address"
872 depends on ADVANCED_OPTIONS
874 This option allows you to set the kernel virtual address at which
875 the kernel will map low memory (the kernel image will be linked at
876 this address). This can be useful in optimizing the virtual memory
877 layout of the system.
879 Say N here unless you know what you are doing.
882 hex "Virtual address of kernel base" if KERNEL_START_BOOL
885 config TASK_SIZE_BOOL
886 bool "Set custom user task size"
887 depends on ADVANCED_OPTIONS
889 This option allows you to set the amount of virtual address space
890 allocated to user tasks. This can be useful in optimizing the
891 virtual memory layout of the system.
893 Say N here unless you know what you are doing.
896 hex "Size of user task space" if TASK_SIZE_BOOL
899 config CONSISTENT_START_BOOL
900 bool "Set custom consistent memory pool address"
901 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
903 This option allows you to set the base virtual address
904 of the the consistent memory pool. This pool of virtual
905 memory is used to make consistent memory allocations.
907 config CONSISTENT_START
908 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
909 default "0xff100000" if NOT_COHERENT_CACHE
911 config CONSISTENT_SIZE_BOOL
912 bool "Set custom consistent memory pool size"
913 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
915 This option allows you to set the size of the the
916 consistent memory pool. This pool of virtual memory
917 is used to make consistent memory allocations.
919 config CONSISTENT_SIZE
920 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
921 default "0x00200000" if NOT_COHERENT_CACHE
923 config BOOT_LOAD_BOOL
924 bool "Set the boot link/load address"
925 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
927 This option allows you to set the initial load address of the zImage
928 or zImage.initrd file. This can be useful if you are on a board
929 which has a small amount of memory.
931 Say N here unless you know what you are doing.
934 hex "Link/load address for booting" if BOOT_LOAD_BOOL
935 default "0x00400000" if 40x || 8xx || 8260
936 default "0x01000000" if 44x
940 bool "Pinned Kernel TLBs (860 ONLY)"
941 depends on ADVANCED_OPTIONS && 8xx
947 default "0xc000000000000000"
952 source "drivers/Kconfig"
956 # XXX source "arch/ppc/8xx_io/Kconfig"
958 # XXX source "arch/ppc/8260_io/Kconfig"
960 source "arch/powerpc/platforms/iseries/Kconfig"
964 menu "Instrumentation Support"
965 depends on EXPERIMENTAL
967 source "arch/powerpc/oprofile/Kconfig"
970 bool "Kprobes (EXPERIMENTAL)"
973 Kprobes allows you to trap at almost any kernel address and
974 execute a callback function. register_kprobe() establishes
975 a probepoint and specifies the callback. Kprobes is useful
976 for kernel debugging, non-intrusive instrumentation and testing.
977 If in doubt, say "N".
980 source "arch/powerpc/Kconfig.debug"
982 source "security/Kconfig"
986 depends on COMPAT && KEYS
989 source "crypto/Kconfig"