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_HWEIGHT
44 config GENERIC_CALIBRATE_DELAY
48 config GENERIC_FIND_NEXT_BIT
66 depends on COMPAT && SYSVIPC
69 # All PPC32s use generic nvram driver through ppc_md
74 config SCHED_NO_NO_OMIT_FRAME_POINTER
78 config ARCH_MAY_HAVE_PC_FDC
91 default y if PPC32 && SMP
97 Used to allow a board to specify it wants a uImage built by default
100 menu "Processor support"
102 prompt "Processor Type"
111 There are four families of PowerPC chips supported. The more common
112 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
113 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
114 embedded versions (403 and 405) and the high end 64 bit Power
115 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
117 Unless you are building a kernel for one of the embedded processor
118 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
119 Note that the kernel runs in 32-bit mode even on 64-bit chips.
122 bool "Freescale 52xx"
127 bool "Freescale 82xx"
132 bool "Freescale 83xx"
139 bool "Freescale 85xx"
154 bool "Freescale e200"
159 bool "Optimize for POWER4"
163 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
164 The resulting binary will not work on POWER3 or RS64 processors
165 when compiled with binutils 2.15 or later.
170 default y if !POWER4_ONLY
179 # this is temp to handle compat with arch=ppc
183 # this is temp to handle compat with arch=ppc
196 depends on E200 || E500
201 depends on E200 || E500
206 depends on 44x || E500
208 default y if E500 && PHYS_64BIT
211 bool 'Large physical address support' if E500
212 depends on 44x || E500
215 This option enables kernel support for larger than 32-bit physical
216 addresses. This features is not be available on all e500 cores.
218 If in doubt, say N here.
221 bool "AltiVec Support"
222 depends on CLASSIC32 || POWER4
224 This option enables kernel support for the Altivec extensions to the
225 PowerPC processor. The kernel currently supports saving and restoring
226 altivec registers, and turning on the 'altivec enable' bit so user
227 processes can execute altivec instructions.
229 This option is only usefully if you have a processor that supports
230 altivec (G4, otherwise known as 74xx series), but does not have
231 any affect on a non-altivec cpu (it does, however add code to the
234 If in doubt, say Y here.
238 depends on E200 || E500
241 This option enables kernel support for the Signal Processing
242 Extensions (SPE) to the PowerPC processor. The kernel currently
243 supports saving and restoring SPE registers, and turning on the
244 'spe enable' bit so user processes can execute SPE instructions.
246 This option is only useful if you have a processor that supports
247 SPE (e500, otherwise known as 85xx series), but does not have any
248 effect on a non-spe cpu (it does, however add code to the kernel).
250 If in doubt, say Y here.
254 depends on 6xx || POWER3 || POWER4 || PPC64
257 config PPC_STD_MMU_32
259 depends on PPC_STD_MMU && PPC32
261 config VIRT_CPU_ACCOUNTING
262 bool "Deterministic task and CPU time accounting"
266 Select this option to enable more accurate task and CPU time
267 accounting. This is done by reading a CPU counter on each
268 kernel entry and exit and on transitions within the kernel
269 between system, softirq and hardirq state, so there is a
270 small performance impact. This also enables accounting of
271 stolen time on logically-partitioned systems running on
272 IBM POWER5-based machines.
274 If in doubt, say Y here.
277 depends on PPC_STD_MMU
278 bool "Symmetric multi-processing support"
280 This enables support for systems with more than one CPU. If you have
281 a system with only one CPU, say N. If you have a system with more
282 than one CPU, say Y. Note that the kernel does not currently
283 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
284 since they have inadequate hardware support for multiprocessor
287 If you say N here, the kernel will run on single and multiprocessor
288 machines, but will use only one CPU of a multiprocessor machine. If
289 you say Y here, the kernel will run on single-processor machines.
290 On a single-processor machine, the kernel will run faster if you say
293 If you don't know what to do here, say N.
296 int "Maximum number of CPUs (2-128)"
299 default "32" if PPC64
302 config NOT_COHERENT_CACHE
304 depends on 4xx || 8xx || E200
308 source "init/Kconfig"
310 menu "Platform support"
311 depends on PPC64 || CLASSIC32
314 prompt "Machine type"
315 default PPC_MULTIPLATFORM
317 config PPC_MULTIPLATFORM
318 bool "Generic desktop/server/laptop"
320 Select this option if configuring for an IBM pSeries or
321 RS/6000 machine, an Apple machine, or a PReP, CHRP,
322 Maple or Cell-based machine.
325 bool "IBM Legacy iSeries"
329 bool "Embedded 6xx/7xx/7xxx-based board"
330 depends on PPC32 && BROKEN
334 depends on PPC32 && BROKEN
336 Select APUS if configuring for a PowerUP Amiga.
337 More information is available at:
338 <http://linux-apus.sourceforge.net/>.
342 depends on PPC_MULTIPLATFORM && PPC64
343 bool " IBM pSeries & new (POWER5-based) iSeries"
346 select RTAS_ERROR_LOGGING
347 select PPC_UDBG_16550
351 bool " Common Hardware Reference Platform (CHRP) based machines"
352 depends on PPC_MULTIPLATFORM && PPC32
354 select PPC_INDIRECT_PCI
357 select PPC_UDBG_16550
361 bool " Apple PowerMac based machines"
362 depends on PPC_MULTIPLATFORM
363 select PPC_INDIRECT_PCI if PPC32
364 select PPC_MPC106 if PPC32
369 depends on PPC_PMAC && POWER4
371 select MPIC_BROKEN_U3
372 select GENERIC_TBSYNC
377 bool " PowerPC Reference Platform (PReP) based machines"
378 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
380 select PPC_INDIRECT_PCI
381 select PPC_UDBG_16550
385 depends on PPC_MULTIPLATFORM && PPC64
386 bool " Maple 970FX Evaluation Board"
388 select MPIC_BROKEN_U3
389 select GENERIC_TBSYNC
390 select PPC_UDBG_16550
394 This option enables support for the Maple 970FX Evaluation Board.
395 For more informations, refer to <http://www.970eval.com>
398 bool " Cell Broadband Processor Architecture"
399 depends on PPC_MULTIPLATFORM && PPC64
402 select PPC_UDBG_16550
405 depends on PPC_PSERIES
411 depends on PPC_MULTIPLATFORM && PPC64
415 depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
423 config RTAS_ERROR_LOGGING
429 bool "Proc interface to RTAS"
434 tristate "Firmware flash interface"
435 depends on PPC64 && RTAS_PROC
441 config MPIC_BROKEN_U3
452 depends on PPC_PSERIES || PPC_ISERIES
457 depends on PPC_PSERIES
458 bool "Support for GX bus based adapters"
460 Bus device driver for GX bus based adapters.
470 source "drivers/cpufreq/Kconfig"
473 bool "Support for Apple PowerBooks"
474 depends on CPU_FREQ && ADB_PMU && PPC32
475 select CPU_FREQ_TABLE
477 This adds support for frequency switching on Apple PowerBooks,
478 this currently includes some models of iBook & Titanium
481 config CPU_FREQ_PMAC64
482 bool "Support for some Apple G5s"
483 depends on CPU_FREQ && PMAC_SMU && PPC64
484 select CPU_FREQ_TABLE
486 This adds support for frequency switching on Apple iMac G5,
487 and some of the more recent desktop G5 machines as well.
489 config PPC601_SYNC_FIX
490 bool "Workarounds for PPC601 bugs"
491 depends on 6xx && (PPC_PREP || PPC_PMAC)
493 Some versions of the PPC601 (the first PowerPC chip) have bugs which
494 mean that extra synchronization instructions are required near
495 certain instructions, typically those that make major changes to the
496 CPU state. These extra instructions reduce performance slightly.
497 If you say N here, these extra instructions will not be included,
498 resulting in a kernel which will run faster but may not run at all
499 on some systems with the PPC601 chip.
501 If in doubt, say Y here.
504 bool "On-chip CPU temperature sensor support"
507 G3 and G4 processors have an on-chip temperature sensor called the
508 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
509 temperature within 2-4 degrees Celsius. This option shows the current
510 on-die temperature in /proc/cpuinfo if the cpu supports it.
512 Unfortunately, on some chip revisions, this sensor is very inaccurate
513 and in many cases, does not work at all, so don't assume the cpu
514 temp is actually what /proc/cpuinfo says it is.
517 bool "Interrupt driven TAU driver (DANGEROUS)"
520 The TAU supports an interrupt driven mode which causes an interrupt
521 whenever the temperature goes out of range. This is the fastest way
522 to get notified the temp has exceeded a range. With this option off,
523 a timer is used to re-check the temperature periodically.
525 However, on some cpus it appears that the TAU interrupt hardware
526 is buggy and can cause a situation which would lead unexplained hard
529 Unless you are extending the TAU driver, or enjoy kernel/hardware
530 debugging, leave this option off.
533 bool "Average high and low temp"
536 The TAU hardware can compare the temperature to an upper and lower
537 bound. The default behavior is to show both the upper and lower
538 bound in /proc/cpuinfo. If the range is large, the temperature is
539 either changing a lot, or the TAU hardware is broken (likely on some
540 G4's). If the range is small (around 4 degrees), the temperature is
541 relatively stable. If you say Y here, a single temperature value,
542 halfway between the upper and lower bounds, will be reported in
545 If in doubt, say N here.
548 source arch/powerpc/platforms/embedded6xx/Kconfig
549 source arch/powerpc/platforms/4xx/Kconfig
550 source arch/powerpc/platforms/83xx/Kconfig
551 source arch/powerpc/platforms/85xx/Kconfig
552 source arch/powerpc/platforms/8xx/Kconfig
553 source arch/powerpc/platforms/cell/Kconfig
555 menu "Kernel options"
558 bool "High memory support"
561 source kernel/Kconfig.hz
562 source kernel/Kconfig.preempt
563 source "fs/Kconfig.binfmt"
565 # We optimistically allocate largepages from the VM, so make the limit
566 # large enough (16MB). This badly named config option is actually
568 config FORCE_MAX_ZONEORDER
571 default "9" if PPC_64K_PAGES
574 config MATH_EMULATION
575 bool "Math emulation"
576 depends on 4xx || 8xx || E200 || E500
578 Some PowerPC chips designed for embedded applications do not have
579 a floating-point unit and therefore do not implement the
580 floating-point instructions in the PowerPC instruction set. If you
581 say Y here, the kernel will include code to emulate a floating-point
582 unit, which will allow programs that use floating-point
586 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
587 depends on EXPERIMENTAL && PPC64
590 Cause IO segments sent to a device for DMA to be merged virtually
591 by the IOMMU when they happen to have been allocated contiguously.
592 This doesn't add pressure to the IOMMU allocator. However, some
593 drivers don't support getting large merged segments coming back
594 from *_map_sg(). Say Y if you know the drivers you are using are
595 properly handling this case.
598 bool "Support for enabling/disabling CPUs"
599 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
601 Say Y here to be able to disable and re-enable individual
602 CPUs at runtime on SMP machines.
604 Say N if you are unsure.
607 bool "kexec system call (EXPERIMENTAL)"
608 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
610 kexec is a system call that implements the ability to shutdown your
611 current kernel, and to start another kernel. It is like a reboot
612 but it is indepedent of the system firmware. And like a reboot
613 you can start any kernel with it, not just Linux.
615 The name comes from the similiarity to the exec system call.
617 It is an ongoing process to be certain the hardware in a machine
618 is properly shutdown, so do not be surprised if this code does not
619 initially work for you. It may help to enable device hotplugging
620 support. As of this writing the exact hardware interface is
621 strongly in flux, so no good recommendation can be made.
624 bool "Build a kdump crash kernel (EXPERIMENTAL)"
625 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
627 Build a kernel suitable for use as a kdump capture kernel.
628 The kernel will be linked at a different address than normal, and
629 so can only be used for Kdump.
631 Don't change this unless you know what you are doing.
635 depends on 8xx || 8260
639 bool "PC PS/2 style Keyboard"
640 depends on 4xx || CPM2
643 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
644 default y if PPC_PREP
647 bool "Distribute interrupts on all CPUs by default"
648 depends on SMP && !MV64360
650 This option gives the kernel permission to distribute IRQs across
651 multiple CPUs. Saying N here will route all IRQs to the first
652 CPU. Generally saying Y is safe, although some problems have been
653 reported with SMP Power Macintoshes with this option enabled.
655 source "arch/powerpc/platforms/pseries/Kconfig"
660 default y if SMP && PPC_PSERIES
665 depends on NEED_MULTIPLE_NODES
667 config ARCH_SELECT_MEMORY_MODEL
671 config ARCH_FLATMEM_ENABLE
673 depends on (PPC64 && !NUMA) || PPC32
675 config ARCH_SPARSEMEM_ENABLE
679 config ARCH_SPARSEMEM_DEFAULT
681 depends on SMP && PPC_PSERIES
685 config HAVE_ARCH_EARLY_PFN_TO_NID
687 depends on NEED_MULTIPLE_NODES
689 config ARCH_MEMORY_PROBE
691 depends on MEMORY_HOTPLUG
697 This option changes the kernel logical page size to 64k. On machines
698 without processor support for 64k pages, the kernel will simulate
699 them by loading each individual 4k page on demand transparently,
700 while on hardware with such support, it will be used to map
701 normal application pages.
704 bool "SMT (Hyperthreading) scheduler support"
705 depends on PPC64 && SMP
708 SMT scheduler support improves the CPU scheduler's decision making
709 when dealing with POWER5 cpus at a cost of slightly increased
710 overhead in some places. If unsure say N here.
712 config PROC_DEVICETREE
713 bool "Support for device tree in /proc"
716 This option adds a device-tree directory under /proc which contains
717 an image of the device tree that the kernel copies from Open
718 Firmware or other boot firmware. If unsure, say Y here.
720 source "arch/powerpc/platforms/prep/Kconfig"
723 bool "Default bootloader kernel arguments"
724 depends on !PPC_ISERIES
727 string "Initial kernel command string"
728 depends on CMDLINE_BOOL
729 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
731 On some platforms, there is currently no way for the boot loader to
732 pass arguments to the kernel. For these platforms, you can supply
733 some command-line options at build time by entering them here. In
734 most cases you will need to specify the root device here.
737 source kernel/power/Kconfig
741 bool "Enable seccomp to safely compute untrusted bytecode"
745 This kernel feature is useful for number crunching applications
746 that may need to compute untrusted bytecode during their
747 execution. By using pipes or other transports made available to
748 the process as file descriptors supporting the read/write
749 syscalls, it's possible to isolate those applications in
750 their own address space using seccomp. Once seccomp is
751 enabled via /proc/<pid>/seccomp, it cannot be disabled
752 and the task is only allowed to execute a few safe syscalls
753 defined by each seccomp mode.
755 If unsure, say Y. Only embedded should say N here.
766 bool "Support for ISA-bus hardware"
767 depends on PPC_PREP || PPC_CHRP
770 Find out whether you have ISA slots on your motherboard. ISA is the
771 name of a bus system, i.e. the way the CPU talks to the other stuff
772 inside your box. If you have an Apple machine, say N here; if you
773 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
774 you have an embedded board, consult your board documentation.
776 config GENERIC_ISA_DMA
778 depends on PPC64 || POWER4 || 6xx && !CPM2
785 config PPC_INDIRECT_PCI
788 default y if 40x || 44x
800 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
805 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
806 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx
807 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
808 default PCI_QSPAN if !4xx && !CPM2 && 8xx
810 Find out whether your system includes a PCI bus. PCI is the name of
811 a bus system, i.e. the way the CPU talks to the other stuff inside
812 your box. If you say Y here, the kernel will include drivers and
813 infrastructure code to support PCI bus devices.
821 depends on !4xx && !CPM2 && 8xx
824 Say Y here if you have a system based on a Motorola 8xx-series
825 embedded processor with a QSPAN PCI interface, otherwise say N.
829 depends on PCI && 8260
830 select PPC_INDIRECT_PCI
834 bool " Enable workaround for MPC826x erratum PCI 9"
835 depends on PCI_8260 && !ADS8272
839 prompt " IDMA channel for PCI 9 workaround"
842 config 8260_PCI9_IDMA1
845 config 8260_PCI9_IDMA2
848 config 8260_PCI9_IDMA3
851 config 8260_PCI9_IDMA4
856 source "drivers/pci/Kconfig"
858 source "drivers/pcmcia/Kconfig"
860 source "drivers/pci/hotplug/Kconfig"
864 menu "Advanced setup"
867 config ADVANCED_OPTIONS
868 bool "Prompt for advanced kernel configuration options"
870 This option will enable prompting for a variety of advanced kernel
871 configuration options. These options can cause the kernel to not
872 work if they are set incorrectly, but can be used to optimize certain
873 aspects of kernel memory management.
875 Unless you know what you are doing, say N here.
877 comment "Default settings for advanced configuration options are used"
878 depends on !ADVANCED_OPTIONS
880 config HIGHMEM_START_BOOL
881 bool "Set high memory pool address"
882 depends on ADVANCED_OPTIONS && HIGHMEM
884 This option allows you to set the base address of the kernel virtual
885 area used to map high memory pages. This can be useful in
886 optimizing the layout of kernel virtual memory.
888 Say N here unless you know what you are doing.
891 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
894 config LOWMEM_SIZE_BOOL
895 bool "Set maximum low memory"
896 depends on ADVANCED_OPTIONS
898 This option allows you to set the maximum amount of memory which
899 will be used as "low memory", that is, memory which the kernel can
900 access directly, without having to set up a kernel virtual mapping.
901 This can be useful in optimizing the layout of kernel virtual
904 Say N here unless you know what you are doing.
907 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
910 config KERNEL_START_BOOL
911 bool "Set custom kernel base address"
912 depends on ADVANCED_OPTIONS
914 This option allows you to set the kernel virtual address at which
915 the kernel will map low memory (the kernel image will be linked at
916 this address). This can be useful in optimizing the virtual memory
917 layout of the system.
919 Say N here unless you know what you are doing.
922 hex "Virtual address of kernel base" if KERNEL_START_BOOL
925 config TASK_SIZE_BOOL
926 bool "Set custom user task size"
927 depends on ADVANCED_OPTIONS
929 This option allows you to set the amount of virtual address space
930 allocated to user tasks. This can be useful in optimizing the
931 virtual memory layout of the system.
933 Say N here unless you know what you are doing.
936 hex "Size of user task space" if TASK_SIZE_BOOL
939 config CONSISTENT_START_BOOL
940 bool "Set custom consistent memory pool address"
941 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
943 This option allows you to set the base virtual address
944 of the the consistent memory pool. This pool of virtual
945 memory is used to make consistent memory allocations.
947 config CONSISTENT_START
948 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
949 default "0xff100000" if NOT_COHERENT_CACHE
951 config CONSISTENT_SIZE_BOOL
952 bool "Set custom consistent memory pool size"
953 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
955 This option allows you to set the size of the the
956 consistent memory pool. This pool of virtual memory
957 is used to make consistent memory allocations.
959 config CONSISTENT_SIZE
960 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
961 default "0x00200000" if NOT_COHERENT_CACHE
963 config BOOT_LOAD_BOOL
964 bool "Set the boot link/load address"
965 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
967 This option allows you to set the initial load address of the zImage
968 or zImage.initrd file. This can be useful if you are on a board
969 which has a small amount of memory.
971 Say N here unless you know what you are doing.
974 hex "Link/load address for booting" if BOOT_LOAD_BOOL
975 default "0x00400000" if 40x || 8xx || 8260
976 default "0x01000000" if 44x
980 bool "Pinned Kernel TLBs (860 ONLY)"
981 depends on ADVANCED_OPTIONS && 8xx
987 default "0xc000000000000000"
992 source "drivers/Kconfig"
996 # XXX source "arch/ppc/8xx_io/Kconfig"
998 # XXX source "arch/ppc/8260_io/Kconfig"
1000 source "arch/powerpc/platforms/iseries/Kconfig"
1002 source "lib/Kconfig"
1004 menu "Instrumentation Support"
1005 depends on EXPERIMENTAL
1007 source "arch/powerpc/oprofile/Kconfig"
1010 bool "Kprobes (EXPERIMENTAL)"
1011 depends on PPC64 && EXPERIMENTAL && MODULES
1013 Kprobes allows you to trap at almost any kernel address and
1014 execute a callback function. register_kprobe() establishes
1015 a probepoint and specifies the callback. Kprobes is useful
1016 for kernel debugging, non-intrusive instrumentation and testing.
1017 If in doubt, say "N".
1020 source "arch/powerpc/Kconfig.debug"
1022 source "security/Kconfig"
1026 depends on COMPAT && KEYS
1029 source "crypto/Kconfig"