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
37 config RWSEM_GENERIC_SPINLOCK
40 config RWSEM_XCHGADD_ALGORITHM
44 config GENERIC_HWEIGHT
48 config GENERIC_CALIBRATE_DELAY
52 config GENERIC_FIND_NEXT_BIT
70 depends on COMPAT && SYSVIPC
73 # All PPC32s use generic nvram driver through ppc_md
78 config SCHED_NO_NO_OMIT_FRAME_POINTER
82 config ARCH_MAY_HAVE_PC_FDC
95 default y if PPC32 && SMP
102 config DEFAULT_UIMAGE
105 Used to allow a board to specify it wants a uImage built by default
108 menu "Processor support"
110 prompt "Processor Type"
119 There are four families of PowerPC chips supported. The more common
120 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
121 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
122 embedded versions (403 and 405) and the high end 64 bit Power
123 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
125 Unless you are building a kernel for one of the embedded processor
126 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
127 Note that the kernel runs in 32-bit mode even on 64-bit chips.
130 bool "Freescale 52xx"
135 bool "Freescale 82xx"
140 bool "Freescale 83xx"
147 bool "Freescale 85xx"
153 bool "Freescale 86xx"
159 The Freescale E600 SoCs have 74xx cores.
171 bool "Freescale e200"
176 bool "Optimize for POWER4"
180 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
181 The resulting binary will not work on POWER3 or RS64 processors
182 when compiled with binutils 2.15 or later.
187 default y if !POWER4_ONLY
196 # this is temp to handle compat with arch=ppc
200 # this is temp to handle compat with arch=ppc
213 depends on E200 || E500
218 depends on E200 || E500
223 depends on 44x || E500
225 default y if E500 && PHYS_64BIT
228 bool 'Large physical address support' if E500
229 depends on 44x || E500
232 This option enables kernel support for larger than 32-bit physical
233 addresses. This features is not be available on all e500 cores.
235 If in doubt, say N here.
238 bool "AltiVec Support"
239 depends on CLASSIC32 || POWER4
241 This option enables kernel support for the Altivec extensions to the
242 PowerPC processor. The kernel currently supports saving and restoring
243 altivec registers, and turning on the 'altivec enable' bit so user
244 processes can execute altivec instructions.
246 This option is only usefully if you have a processor that supports
247 altivec (G4, otherwise known as 74xx series), but does not have
248 any affect on a non-altivec cpu (it does, however add code to the
251 If in doubt, say Y here.
255 depends on E200 || E500
258 This option enables kernel support for the Signal Processing
259 Extensions (SPE) to the PowerPC processor. The kernel currently
260 supports saving and restoring SPE registers, and turning on the
261 'spe enable' bit so user processes can execute SPE instructions.
263 This option is only useful if you have a processor that supports
264 SPE (e500, otherwise known as 85xx series), but does not have any
265 effect on a non-spe cpu (it does, however add code to the kernel).
267 If in doubt, say Y here.
271 depends on 6xx || POWER3 || POWER4 || PPC64
274 config PPC_STD_MMU_32
276 depends on PPC_STD_MMU && PPC32
278 config VIRT_CPU_ACCOUNTING
279 bool "Deterministic task and CPU time accounting"
283 Select this option to enable more accurate task and CPU time
284 accounting. This is done by reading a CPU counter on each
285 kernel entry and exit and on transitions within the kernel
286 between system, softirq and hardirq state, so there is a
287 small performance impact. This also enables accounting of
288 stolen time on logically-partitioned systems running on
289 IBM POWER5-based machines.
291 If in doubt, say Y here.
294 depends on PPC_STD_MMU
295 bool "Symmetric multi-processing support"
297 This enables support for systems with more than one CPU. If you have
298 a system with only one CPU, say N. If you have a system with more
299 than one CPU, say Y. Note that the kernel does not currently
300 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
301 since they have inadequate hardware support for multiprocessor
304 If you say N here, the kernel will run on single and multiprocessor
305 machines, but will use only one CPU of a multiprocessor machine. If
306 you say Y here, the kernel will run on single-processor machines.
307 On a single-processor machine, the kernel will run faster if you say
310 If you don't know what to do here, say N.
313 int "Maximum number of CPUs (2-128)"
316 default "32" if PPC64
319 config NOT_COHERENT_CACHE
321 depends on 4xx || 8xx || E200
325 source "init/Kconfig"
327 menu "Platform support"
328 depends on PPC64 || CLASSIC32
331 prompt "Machine type"
332 default PPC_MULTIPLATFORM
334 config PPC_MULTIPLATFORM
335 bool "Generic desktop/server/laptop"
337 Select this option if configuring for an IBM pSeries or
338 RS/6000 machine, an Apple machine, or a PReP, CHRP,
339 Maple or Cell-based machine.
342 bool "IBM Legacy iSeries"
346 bool "Embedded 6xx/7xx/7xxx-based board"
347 depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
351 depends on PPC32 && BROKEN
353 Select APUS if configuring for a PowerUP Amiga.
354 More information is available at:
355 <http://linux-apus.sourceforge.net/>.
359 depends on PPC_MULTIPLATFORM && PPC64
360 bool "IBM pSeries & new (POWER5-based) iSeries"
364 select RTAS_ERROR_LOGGING
365 select PPC_UDBG_16550
369 bool "Common Hardware Reference Platform (CHRP) based machines"
370 depends on PPC_MULTIPLATFORM && PPC32
373 select PPC_INDIRECT_PCI
376 select PPC_UDBG_16550
380 bool "Apple PowerMac based machines"
381 depends on PPC_MULTIPLATFORM
383 select PPC_INDIRECT_PCI if PPC32
384 select PPC_MPC106 if PPC32
389 depends on PPC_PMAC && POWER4
392 select MPIC_BROKEN_U3
393 select GENERIC_TBSYNC
398 bool "PowerPC Reference Platform (PReP) based machines"
399 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
402 select PPC_INDIRECT_PCI
403 select PPC_UDBG_16550
407 depends on PPC_MULTIPLATFORM && PPC64
408 bool "Maple 970FX Evaluation Board"
411 select MPIC_BROKEN_U3
412 select GENERIC_TBSYNC
413 select PPC_UDBG_16550
417 This option enables support for the Maple 970FX Evaluation Board.
418 For more informations, refer to <http://www.970eval.com>
424 config PPC_CELL_NATIVE
429 config PPC_IBM_CELL_BLADE
430 bool "IBM Cell Blade"
431 depends on PPC_MULTIPLATFORM && PPC64
432 select PPC_CELL_NATIVE
435 select PPC_UDBG_16550
436 select UDBG_RTAS_CONSOLE
438 config UDBG_RTAS_CONSOLE
443 depends on PPC_PSERIES
449 depends on PPC_MULTIPLATFORM && PPC64
456 config RTAS_ERROR_LOGGING
462 bool "Proc interface to RTAS"
467 tristate "Firmware flash interface"
468 depends on PPC64 && RTAS_PROC
474 config MPIC_BROKEN_U3
480 depends on PPC_PSERIES || PPC_ISERIES
485 depends on PPC_PSERIES
486 bool "Support for GX bus based adapters"
488 Bus device driver for GX bus based adapters.
498 source "drivers/cpufreq/Kconfig"
501 bool "Support for Apple PowerBooks"
502 depends on CPU_FREQ && ADB_PMU && PPC32
503 select CPU_FREQ_TABLE
505 This adds support for frequency switching on Apple PowerBooks,
506 this currently includes some models of iBook & Titanium
509 config CPU_FREQ_PMAC64
510 bool "Support for some Apple G5s"
511 depends on CPU_FREQ && PPC64
512 select CPU_FREQ_TABLE
514 This adds support for frequency switching on Apple iMac G5,
515 and some of the more recent desktop G5 machines as well.
517 config PPC601_SYNC_FIX
518 bool "Workarounds for PPC601 bugs"
519 depends on 6xx && (PPC_PREP || PPC_PMAC)
521 Some versions of the PPC601 (the first PowerPC chip) have bugs which
522 mean that extra synchronization instructions are required near
523 certain instructions, typically those that make major changes to the
524 CPU state. These extra instructions reduce performance slightly.
525 If you say N here, these extra instructions will not be included,
526 resulting in a kernel which will run faster but may not run at all
527 on some systems with the PPC601 chip.
529 If in doubt, say Y here.
532 bool "On-chip CPU temperature sensor support"
535 G3 and G4 processors have an on-chip temperature sensor called the
536 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
537 temperature within 2-4 degrees Celsius. This option shows the current
538 on-die temperature in /proc/cpuinfo if the cpu supports it.
540 Unfortunately, on some chip revisions, this sensor is very inaccurate
541 and in many cases, does not work at all, so don't assume the cpu
542 temp is actually what /proc/cpuinfo says it is.
545 bool "Interrupt driven TAU driver (DANGEROUS)"
548 The TAU supports an interrupt driven mode which causes an interrupt
549 whenever the temperature goes out of range. This is the fastest way
550 to get notified the temp has exceeded a range. With this option off,
551 a timer is used to re-check the temperature periodically.
553 However, on some cpus it appears that the TAU interrupt hardware
554 is buggy and can cause a situation which would lead unexplained hard
557 Unless you are extending the TAU driver, or enjoy kernel/hardware
558 debugging, leave this option off.
561 bool "Average high and low temp"
564 The TAU hardware can compare the temperature to an upper and lower
565 bound. The default behavior is to show both the upper and lower
566 bound in /proc/cpuinfo. If the range is large, the temperature is
567 either changing a lot, or the TAU hardware is broken (likely on some
568 G4's). If the range is small (around 4 degrees), the temperature is
569 relatively stable. If you say Y here, a single temperature value,
570 halfway between the upper and lower bounds, will be reported in
573 If in doubt, say N here.
576 depends on EMBEDDED6xx
577 bool "Generic Time-of-day Clock (TODC) support"
579 This adds support for many TODC/RTC chips.
583 source arch/powerpc/platforms/embedded6xx/Kconfig
584 source arch/powerpc/platforms/4xx/Kconfig
585 source arch/powerpc/platforms/83xx/Kconfig
586 source arch/powerpc/platforms/85xx/Kconfig
587 source arch/powerpc/platforms/86xx/Kconfig
588 source arch/powerpc/platforms/8xx/Kconfig
589 source arch/powerpc/platforms/cell/Kconfig
591 menu "Kernel options"
594 bool "High memory support"
597 source kernel/Kconfig.hz
598 source kernel/Kconfig.preempt
599 source "fs/Kconfig.binfmt"
601 # We optimistically allocate largepages from the VM, so make the limit
602 # large enough (16MB). This badly named config option is actually
604 config FORCE_MAX_ZONEORDER
607 default "9" if PPC_64K_PAGES
610 config MATH_EMULATION
611 bool "Math emulation"
612 depends on 4xx || 8xx || E200 || E500
614 Some PowerPC chips designed for embedded applications do not have
615 a floating-point unit and therefore do not implement the
616 floating-point instructions in the PowerPC instruction set. If you
617 say Y here, the kernel will include code to emulate a floating-point
618 unit, which will allow programs that use floating-point
622 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
623 depends on EXPERIMENTAL && PPC64
626 Cause IO segments sent to a device for DMA to be merged virtually
627 by the IOMMU when they happen to have been allocated contiguously.
628 This doesn't add pressure to the IOMMU allocator. However, some
629 drivers don't support getting large merged segments coming back
630 from *_map_sg(). Say Y if you know the drivers you are using are
631 properly handling this case.
634 bool "Support for enabling/disabling CPUs"
635 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
637 Say Y here to be able to disable and re-enable individual
638 CPUs at runtime on SMP machines.
640 Say N if you are unsure.
642 config ARCH_ENABLE_MEMORY_HOTPLUG
646 bool "kexec system call (EXPERIMENTAL)"
647 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
649 kexec is a system call that implements the ability to shutdown your
650 current kernel, and to start another kernel. It is like a reboot
651 but it is independent of the system firmware. And like a reboot
652 you can start any kernel with it, not just Linux.
654 The name comes from the similarity to the exec system call.
656 It is an ongoing process to be certain the hardware in a machine
657 is properly shutdown, so do not be surprised if this code does not
658 initially work for you. It may help to enable device hotplugging
659 support. As of this writing the exact hardware interface is
660 strongly in flux, so no good recommendation can be made.
663 bool "Build a kdump crash kernel (EXPERIMENTAL)"
664 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
666 Build a kernel suitable for use as a kdump capture kernel.
667 The kernel will be linked at a different address than normal, and
668 so can only be used for Kdump.
670 Don't change this unless you know what you are doing.
674 depends on 8xx || 8260
678 bool "PC PS/2 style Keyboard"
679 depends on 4xx || CPM2
682 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
683 default y if PPC_PREP
686 bool "Distribute interrupts on all CPUs by default"
687 depends on SMP && !MV64360
689 This option gives the kernel permission to distribute IRQs across
690 multiple CPUs. Saying N here will route all IRQs to the first
691 CPU. Generally saying Y is safe, although some problems have been
692 reported with SMP Power Macintoshes with this option enabled.
694 source "arch/powerpc/platforms/pseries/Kconfig"
699 default y if SMP && PPC_PSERIES
704 depends on NEED_MULTIPLE_NODES
706 config ARCH_SELECT_MEMORY_MODEL
710 config ARCH_FLATMEM_ENABLE
712 depends on (PPC64 && !NUMA) || PPC32
714 config ARCH_SPARSEMEM_ENABLE
718 config ARCH_SPARSEMEM_DEFAULT
720 depends on SMP && PPC_PSERIES
724 config HAVE_ARCH_EARLY_PFN_TO_NID
726 depends on NEED_MULTIPLE_NODES
728 config ARCH_MEMORY_PROBE
730 depends on MEMORY_HOTPLUG
736 This option changes the kernel logical page size to 64k. On machines
737 without processor support for 64k pages, the kernel will simulate
738 them by loading each individual 4k page on demand transparently,
739 while on hardware with such support, it will be used to map
740 normal application pages.
743 bool "SMT (Hyperthreading) scheduler support"
744 depends on PPC64 && SMP
746 SMT scheduler support improves the CPU scheduler's decision making
747 when dealing with POWER5 cpus at a cost of slightly increased
748 overhead in some places. If unsure say N here.
750 config PROC_DEVICETREE
751 bool "Support for device tree in /proc"
754 This option adds a device-tree directory under /proc which contains
755 an image of the device tree that the kernel copies from Open
756 Firmware or other boot firmware. If unsure, say Y here.
758 source "arch/powerpc/platforms/prep/Kconfig"
761 bool "Default bootloader kernel arguments"
762 depends on !PPC_ISERIES
765 string "Initial kernel command string"
766 depends on CMDLINE_BOOL
767 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
769 On some platforms, there is currently no way for the boot loader to
770 pass arguments to the kernel. For these platforms, you can supply
771 some command-line options at build time by entering them here. In
772 most cases you will need to specify the root device here.
775 source kernel/power/Kconfig
779 bool "Enable seccomp to safely compute untrusted bytecode"
783 This kernel feature is useful for number crunching applications
784 that may need to compute untrusted bytecode during their
785 execution. By using pipes or other transports made available to
786 the process as file descriptors supporting the read/write
787 syscalls, it's possible to isolate those applications in
788 their own address space using seccomp. Once seccomp is
789 enabled via /proc/<pid>/seccomp, it cannot be disabled
790 and the task is only allowed to execute a few safe syscalls
791 defined by each seccomp mode.
793 If unsure, say Y. Only embedded should say N here.
804 bool "Support for ISA-bus hardware"
805 depends on PPC_PREP || PPC_CHRP
808 Find out whether you have ISA slots on your motherboard. ISA is the
809 name of a bus system, i.e. the way the CPU talks to the other stuff
810 inside your box. If you have an Apple machine, say N here; if you
811 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
812 you have an embedded board, consult your board documentation.
814 config GENERIC_ISA_DMA
816 depends on PPC64 || POWER4 || 6xx && !CPM2
831 config PPC_INDIRECT_PCI
834 default y if 40x || 44x
846 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
851 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
852 || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2
853 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
854 && !PPC_85xx && !PPC_86xx
855 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
856 default PCI_QSPAN if !4xx && !CPM2 && 8xx
858 Find out whether your system includes a PCI bus. PCI is the name of
859 a bus system, i.e. the way the CPU talks to the other stuff inside
860 your box. If you say Y here, the kernel will include drivers and
861 infrastructure code to support PCI bus devices.
869 depends on !4xx && !CPM2 && 8xx
872 Say Y here if you have a system based on a Motorola 8xx-series
873 embedded processor with a QSPAN PCI interface, otherwise say N.
877 depends on PCI && 8260
878 select PPC_INDIRECT_PCI
882 bool "Enable workaround for MPC826x erratum PCI 9"
883 depends on PCI_8260 && !ADS8272
887 prompt "IDMA channel for PCI 9 workaround"
890 config 8260_PCI9_IDMA1
893 config 8260_PCI9_IDMA2
896 config 8260_PCI9_IDMA3
899 config 8260_PCI9_IDMA4
904 source "drivers/pci/pcie/Kconfig"
906 source "drivers/pci/Kconfig"
908 source "drivers/pcmcia/Kconfig"
910 source "drivers/pci/hotplug/Kconfig"
914 menu "Advanced setup"
917 config ADVANCED_OPTIONS
918 bool "Prompt for advanced kernel configuration options"
920 This option will enable prompting for a variety of advanced kernel
921 configuration options. These options can cause the kernel to not
922 work if they are set incorrectly, but can be used to optimize certain
923 aspects of kernel memory management.
925 Unless you know what you are doing, say N here.
927 comment "Default settings for advanced configuration options are used"
928 depends on !ADVANCED_OPTIONS
930 config HIGHMEM_START_BOOL
931 bool "Set high memory pool address"
932 depends on ADVANCED_OPTIONS && HIGHMEM
934 This option allows you to set the base address of the kernel virtual
935 area used to map high memory pages. This can be useful in
936 optimizing the layout of kernel virtual memory.
938 Say N here unless you know what you are doing.
941 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
944 config LOWMEM_SIZE_BOOL
945 bool "Set maximum low memory"
946 depends on ADVANCED_OPTIONS
948 This option allows you to set the maximum amount of memory which
949 will be used as "low memory", that is, memory which the kernel can
950 access directly, without having to set up a kernel virtual mapping.
951 This can be useful in optimizing the layout of kernel virtual
954 Say N here unless you know what you are doing.
957 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
960 config KERNEL_START_BOOL
961 bool "Set custom kernel base address"
962 depends on ADVANCED_OPTIONS
964 This option allows you to set the kernel virtual address at which
965 the kernel will map low memory (the kernel image will be linked at
966 this address). This can be useful in optimizing the virtual memory
967 layout of the system.
969 Say N here unless you know what you are doing.
972 hex "Virtual address of kernel base" if KERNEL_START_BOOL
975 config TASK_SIZE_BOOL
976 bool "Set custom user task size"
977 depends on ADVANCED_OPTIONS
979 This option allows you to set the amount of virtual address space
980 allocated to user tasks. This can be useful in optimizing the
981 virtual memory layout of the system.
983 Say N here unless you know what you are doing.
986 hex "Size of user task space" if TASK_SIZE_BOOL
989 config CONSISTENT_START_BOOL
990 bool "Set custom consistent memory pool address"
991 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
993 This option allows you to set the base virtual address
994 of the the consistent memory pool. This pool of virtual
995 memory is used to make consistent memory allocations.
997 config CONSISTENT_START
998 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
999 default "0xff100000" if NOT_COHERENT_CACHE
1001 config CONSISTENT_SIZE_BOOL
1002 bool "Set custom consistent memory pool size"
1003 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1005 This option allows you to set the size of the the
1006 consistent memory pool. This pool of virtual memory
1007 is used to make consistent memory allocations.
1009 config CONSISTENT_SIZE
1010 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1011 default "0x00200000" if NOT_COHERENT_CACHE
1013 config BOOT_LOAD_BOOL
1014 bool "Set the boot link/load address"
1015 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1017 This option allows you to set the initial load address of the zImage
1018 or zImage.initrd file. This can be useful if you are on a board
1019 which has a small amount of memory.
1021 Say N here unless you know what you are doing.
1024 hex "Link/load address for booting" if BOOT_LOAD_BOOL
1025 default "0x00400000" if 40x || 8xx || 8260
1026 default "0x01000000" if 44x
1027 default "0x00800000"
1030 bool "Pinned Kernel TLBs (860 ONLY)"
1031 depends on ADVANCED_OPTIONS && 8xx
1037 default "0xc000000000000000"
1040 source "net/Kconfig"
1042 source "drivers/Kconfig"
1046 # XXX source "arch/ppc/8xx_io/Kconfig"
1048 # XXX source "arch/ppc/8260_io/Kconfig"
1050 source "arch/powerpc/platforms/iseries/Kconfig"
1052 source "lib/Kconfig"
1054 menu "Instrumentation Support"
1055 depends on EXPERIMENTAL
1057 source "arch/powerpc/oprofile/Kconfig"
1060 bool "Kprobes (EXPERIMENTAL)"
1061 depends on PPC64 && EXPERIMENTAL && MODULES
1063 Kprobes allows you to trap at almost any kernel address and
1064 execute a callback function. register_kprobe() establishes
1065 a probepoint and specifies the callback. Kprobes is useful
1066 for kernel debugging, non-intrusive instrumentation and testing.
1067 If in doubt, say "N".
1070 source "arch/powerpc/Kconfig.debug"
1072 source "security/Kconfig"
1076 depends on COMPAT && KEYS
1079 source "crypto/Kconfig"