Merge branch 'linux-2.6'
[safe/jmp/linux-2.6] / arch / powerpc / Kconfig
index cd55c9b..de1ef2f 100644 (file)
@@ -26,10 +26,11 @@ config MMU
        bool
        default y
 
-config UID16
+config GENERIC_HARDIRQS
        bool
+       default y
 
-config GENERIC_HARDIRQS
+config IRQ_PER_CPU
        bool
        default y
 
@@ -40,17 +41,25 @@ config RWSEM_XCHGADD_ALGORITHM
        bool
        default y
 
+config GENERIC_HWEIGHT
+       bool
+       default y
+
 config GENERIC_CALIBRATE_DELAY
        bool
        default y
 
+config GENERIC_FIND_NEXT_BIT
+       bool
+       default y
+
 config PPC
        bool
        default y
 
 config EARLY_PRINTK
        bool
-       default y if PPC64
+       default y
 
 config COMPAT
        bool
@@ -74,15 +83,38 @@ config ARCH_MAY_HAVE_PC_FDC
        bool
        default y
 
+config PPC_OF
+       def_bool y
+
+config PPC_UDBG_16550
+       bool
+       default n
+
+config GENERIC_TBSYNC
+       bool
+       default y if PPC32 && SMP
+       default n
+
+config AUDIT_ARCH
+       bool
+       default y
+
+config DEFAULT_UIMAGE
+       bool
+       help
+         Used to allow a board to specify it wants a uImage built by default
+       default n
+
 menu "Processor support"
 choice
        prompt "Processor Type"
        depends on PPC32
        default 6xx
 
-config 6xx
+config CLASSIC32
        bool "6xx/7xx/74xx"
        select PPC_FPU
+       select 6xx
        help
          There are four families of PowerPC chips supported.  The more common
          types (601, 603, 604, 740, 750, 7400), the Motorola embedded
@@ -96,12 +128,35 @@ config 6xx
 
 config PPC_52xx
        bool "Freescale 52xx"
+       select 6xx
+       select PPC_FPU
        
 config PPC_82xx
        bool "Freescale 82xx"
+       select 6xx
+       select PPC_FPU
 
 config PPC_83xx
        bool "Freescale 83xx"
+       select 6xx
+       select FSL_SOC
+       select 83xx
+       select PPC_FPU
+
+config PPC_85xx
+       bool "Freescale 85xx"
+       select E500
+       select FSL_SOC
+       select 85xx
+
+config PPC_86xx
+       bool "Freescale 86xx"
+       select 6xx
+       select FSL_SOC
+       select PPC_FPU
+       select ALTIVEC
+       help
+         The Freescale E600 SoCs have 74xx cores.
 
 config 40x
        bool "AMCC 40x"
@@ -115,8 +170,6 @@ config 8xx
 config E200
        bool "Freescale e200"
 
-config E500
-       bool "Freescale e500"
 endchoice
 
 config POWER4_ONLY
@@ -137,6 +190,20 @@ config POWER4
        depends on PPC64
        def_bool y
 
+config 6xx
+       bool
+
+# this is temp to handle compat with arch=ppc
+config 83xx
+       bool
+
+# this is temp to handle compat with arch=ppc
+config 85xx
+       bool
+
+config E500
+       bool
+
 config PPC_FPU
        bool
        default y if PPC64
@@ -169,7 +236,7 @@ config PHYS_64BIT
 
 config ALTIVEC
        bool "AltiVec Support"
-       depends on 6xx || POWER4
+       depends on CLASSIC32 || POWER4
        ---help---
          This option enables kernel support for the Altivec extensions to the
          PowerPC processor. The kernel currently supports saving and restoring
@@ -186,6 +253,7 @@ config ALTIVEC
 config SPE
        bool "SPE Support"
        depends on E200 || E500
+       default y
        ---help---
          This option enables kernel support for the Signal Processing
          Extensions (SPE) to the PowerPC processor. The kernel currently
@@ -207,6 +275,21 @@ config PPC_STD_MMU_32
        def_bool y
        depends on PPC_STD_MMU && PPC32
 
+config VIRT_CPU_ACCOUNTING
+       bool "Deterministic task and CPU time accounting"
+       depends on PPC64
+       default y
+       help
+         Select this option to enable more accurate task and CPU time
+         accounting.  This is done by reading a CPU counter on each
+         kernel entry and exit and on transitions within the kernel
+         between system, softirq and hardirq state, so there is a
+         small performance impact.  This also enables accounting of
+         stolen time on logically-partitioned systems running on
+         IBM POWER5-based machines.
+
+         If in doubt, say Y here.
+
 config SMP
        depends on PPC_STD_MMU
        bool "Symmetric multi-processing support"
@@ -227,7 +310,7 @@ config SMP
          If you don't know what to do here, say N.
 
 config NR_CPUS
-       int "Maximum number of CPUs (2-32)"
+       int "Maximum number of CPUs (2-128)"
        range 2 128
        depends on SMP
        default "32" if PPC64
@@ -242,7 +325,7 @@ endmenu
 source "init/Kconfig"
 
 menu "Platform support"
-       depends on PPC64 || 6xx
+       depends on PPC64 || CLASSIC32
 
 choice
        prompt "Machine type"
@@ -261,7 +344,7 @@ config PPC_ISERIES
 
 config EMBEDDED6xx
        bool "Embedded 6xx/7xx/7xxx-based board"
-       depends on PPC32
+       depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
 
 config APUS
        bool "Amiga-APUS"
@@ -274,47 +357,99 @@ endchoice
 
 config PPC_PSERIES
        depends on PPC_MULTIPLATFORM && PPC64
-       bool "  IBM pSeries & new (POWER5-based) iSeries"
+       bool "IBM pSeries & new (POWER5-based) iSeries"
+       select MPIC
+       select PPC_I8259
+       select PPC_RTAS
+       select RTAS_ERROR_LOGGING
+       select PPC_UDBG_16550
        default y
 
 config PPC_CHRP
-       bool "  Common Hardware Reference Platform (CHRP) based machines"
+       bool "Common Hardware Reference Platform (CHRP) based machines"
        depends on PPC_MULTIPLATFORM && PPC32
+       select MPIC
+       select PPC_I8259
+       select PPC_INDIRECT_PCI
+       select PPC_RTAS
+       select PPC_MPC106
+       select PPC_UDBG_16550
        default y
 
 config PPC_PMAC
-       bool "  Apple PowerMac based machines"
+       bool "Apple PowerMac based machines"
        depends on PPC_MULTIPLATFORM
+       select MPIC
+       select PPC_INDIRECT_PCI if PPC32
+       select PPC_MPC106 if PPC32
        default y
 
 config PPC_PMAC64
        bool
        depends on PPC_PMAC && POWER4
+       select MPIC
+       select U3_DART
+       select MPIC_BROKEN_U3
+       select GENERIC_TBSYNC
+       select PPC_970_NAP
        default y
 
 config PPC_PREP
-       bool "  PowerPC Reference Platform (PReP) based machines"
-       depends on PPC_MULTIPLATFORM && PPC32
+       bool "PowerPC Reference Platform (PReP) based machines"
+       depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
+       select MPIC
+       select PPC_I8259
+       select PPC_INDIRECT_PCI
+       select PPC_UDBG_16550
        default y
 
 config PPC_MAPLE
        depends on PPC_MULTIPLATFORM && PPC64
-       bool "  Maple 970FX Evaluation Board"
+       bool "Maple 970FX Evaluation Board"
+       select MPIC
        select U3_DART
        select MPIC_BROKEN_U3
+       select GENERIC_TBSYNC
+       select PPC_UDBG_16550
+       select PPC_970_NAP
        default n
        help
           This option enables support for the Maple 970FX Evaluation Board.
          For more informations, refer to <http://www.970eval.com>
 
-config PPC_BPA
-       bool "  Broadband Processor Architecture"
+config PPC_PASEMI
        depends on PPC_MULTIPLATFORM && PPC64
+       bool "PA Semi SoC-based platforms"
+       default n
+       select MPIC
+       select PPC_UDBG_16550
+       select GENERIC_TBSYNC
+       help
+         This option enables support for PA Semi's PWRficient line
+         of SoC processors, including PA6T-1682M
 
-config PPC_OF
+config PPC_CELL
        bool
-       depends on PPC_MULTIPLATFORM    # for now
-       default y
+       default n
+
+config PPC_CELL_NATIVE
+       bool
+       select PPC_CELL
+       default n
+
+config PPC_IBM_CELL_BLADE
+       bool "IBM Cell Blade"
+       depends on PPC_MULTIPLATFORM && PPC64
+       select PPC_CELL_NATIVE
+       select PPC_RTAS
+       select MMIO_NVRAM
+       select PPC_UDBG_16550
+       select UDBG_RTAS_CONSOLE
+
+config UDBG_RTAS_CONSOLE
+       bool "RTAS based debug console"
+       depends on PPC_RTAS
+       default n
 
 config XICS
        depends on PPC_PSERIES
@@ -326,19 +461,31 @@ config U3_DART
        depends on PPC_MULTIPLATFORM && PPC64
        default n
 
-config MPIC
-       depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE
+config PPC_RTAS
        bool
-       default y
+       default n
 
-config MPIC_BROKEN_U3
+config RTAS_ERROR_LOGGING
        bool
-       depends on PPC_MAPLE
+       depends on PPC_RTAS
+       default n
+
+config RTAS_PROC
+       bool "Proc interface to RTAS"
+       depends on PPC_RTAS
        default y
 
-config BPA_IIC
-       depends on PPC_BPA
+config RTAS_FLASH
+       tristate "Firmware flash interface"
+       depends on PPC64 && RTAS_PROC
+
+config MMIO_NVRAM
+       bool
+       default n
+
+config MPIC_BROKEN_U3
        bool
+       depends on PPC_MAPLE
        default y
 
 config IBMVIO
@@ -346,6 +493,20 @@ config IBMVIO
        bool
        default y
 
+config IBMEBUS
+       depends on PPC_PSERIES
+       bool "Support for GX bus based adapters"
+       help
+         Bus device driver for GX bus based adapters.
+
+config PPC_MPC106
+       bool
+       default n
+
+config PPC_970_NAP
+       bool
+       default n
+
 source "drivers/cpufreq/Kconfig"
 
 config CPU_FREQ_PMAC
@@ -357,6 +518,14 @@ config CPU_FREQ_PMAC
          this currently includes some models of iBook & Titanium
          PowerBook.
 
+config CPU_FREQ_PMAC64
+       bool "Support for some Apple G5s"
+       depends on CPU_FREQ && PPC64
+       select CPU_FREQ_TABLE
+       help
+         This adds support for frequency switching on Apple iMac G5,
+         and some of the more recent desktop G5 machines as well.
+
 config PPC601_SYNC_FIX
        bool "Workarounds for PPC601 bugs"
        depends on 6xx && (PPC_PREP || PPC_PMAC)
@@ -372,7 +541,7 @@ config PPC601_SYNC_FIX
          If in doubt, say Y here.
 
 config TAU
-       bool "Thermal Management Support"
+       bool "On-chip CPU temperature sensor support"
        depends on 6xx
        help
          G3 and G4 processors have an on-chip temperature sensor called the
@@ -381,7 +550,7 @@ config TAU
          on-die temperature in /proc/cpuinfo if the cpu supports it.
 
          Unfortunately, on some chip revisions, this sensor is very inaccurate
-         and in some cases, does not work at all, so don't assume the cpu
+         and in many cases, does not work at all, so don't assume the cpu
          temp is actually what /proc/cpuinfo says it is.
 
 config TAU_INT
@@ -414,12 +583,22 @@ config TAU_AVERAGE
          /proc/cpuinfo.
 
          If in doubt, say N here.
+
+config PPC_TODC
+       depends on EMBEDDED6xx
+       bool "Generic Time-of-day Clock (TODC) support"
+       ---help---
+         This adds support for many TODC/RTC chips.
+
 endmenu
 
 source arch/powerpc/platforms/embedded6xx/Kconfig
 source arch/powerpc/platforms/4xx/Kconfig
+source arch/powerpc/platforms/83xx/Kconfig
 source arch/powerpc/platforms/85xx/Kconfig
+source arch/powerpc/platforms/86xx/Kconfig
 source arch/powerpc/platforms/8xx/Kconfig
+source arch/powerpc/platforms/cell/Kconfig
 
 menu "Kernel options"
 
@@ -437,6 +616,7 @@ source "fs/Kconfig.binfmt"
 config FORCE_MAX_ZONEORDER
        int
        depends on PPC64
+       default "9" if PPC_64K_PAGES
        default "13"
 
 config MATH_EMULATION
@@ -471,16 +651,19 @@ config HOTPLUG_CPU
 
          Say N if you are unsure.
 
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
+
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
        depends on PPC_MULTIPLATFORM && EXPERIMENTAL
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
-         but it is indepedent of the system firmware.   And like a reboot
+         but it is independent of the system firmware.   And like a reboot
          you can start any kernel with it, not just Linux.
 
-         The name comes from the similiarity to the exec system call.
+         The name comes from the similarity to the exec system call.
 
          It is an ongoing process to be certain the hardware in a machine
          is properly shutdown, so do not be surprised if this code does not
@@ -488,6 +671,16 @@ config KEXEC
          support.  As of this writing the exact hardware interface is
          strongly in flux, so no good recommendation can be made.
 
+config CRASH_DUMP
+       bool "Build a kdump crash kernel (EXPERIMENTAL)"
+       depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
+       help
+         Build a kernel suitable for use as a kdump capture kernel.
+         The kernel will be linked at a different address than normal, and
+         so can only be used for Kdump.
+
+         Don't change this unless you know what you are doing.
+
 config EMBEDDEDBOOT
        bool
        depends on 8xx || 8260
@@ -512,29 +705,31 @@ config IRQ_ALL_CPUS
 
 source "arch/powerpc/platforms/pseries/Kconfig"
 
-config ARCH_SELECT_MEMORY_MODEL
-       def_bool y
+config NUMA
+       bool "NUMA support"
        depends on PPC64
+       default y if SMP && PPC_PSERIES
 
-config ARCH_FLATMEM_ENABLE
-       def_bool y
-       depends on PPC64 && !NUMA
+config NODES_SHIFT
+       int
+       default "4"
+       depends on NEED_MULTIPLE_NODES
 
-config ARCH_DISCONTIGMEM_ENABLE
+config ARCH_SELECT_MEMORY_MODEL
        def_bool y
-       depends on SMP && PPC_PSERIES
+       depends on PPC64
 
-config ARCH_DISCONTIGMEM_DEFAULT
+config ARCH_FLATMEM_ENABLE
        def_bool y
-       depends on ARCH_DISCONTIGMEM_ENABLE
+       depends on (PPC64 && !NUMA) || PPC32
 
-config ARCH_FLATMEM_ENABLE
+config ARCH_SPARSEMEM_ENABLE
        def_bool y
        depends on PPC64
 
-config ARCH_SPARSEMEM_ENABLE
+config ARCH_SPARSEMEM_DEFAULT
        def_bool y
-       depends on ARCH_DISCONTIGMEM_ENABLE
+       depends on SMP && PPC_PSERIES
 
 source "mm/Kconfig"
 
@@ -542,39 +737,35 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
        def_bool y
        depends on NEED_MULTIPLE_NODES
 
-# Some NUMA nodes have memory ranges that span
-# other nodes.  Even though a pfn is valid and
-# between a node's start and end pfns, it may not
-# reside on that node.
-#
-# This is a relatively temporary hack that should
-# be able to go away when sparsemem is fully in
-# place
-
-config NODES_SPAN_OTHER_NODES
+config ARCH_MEMORY_PROBE
        def_bool y
-       depends on NEED_MULTIPLE_NODES
+       depends on MEMORY_HOTPLUG
 
-config NUMA
-       bool "NUMA support"
-       default y if DISCONTIGMEM || SPARSEMEM
+config PPC_64K_PAGES
+       bool "64k page size"
+       depends on PPC64
+       help
+         This option changes the kernel logical page size to 64k. On machines
+          without processor support for 64k pages, the kernel will simulate
+          them by loading each individual 4k page on demand transparently,
+          while on hardware with such support, it will be used to map
+          normal application pages.
 
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
        depends on PPC64 && SMP
-       default off
        help
          SMT scheduler support improves the CPU scheduler's decision making
          when dealing with POWER5 cpus at a cost of slightly increased
          overhead in some places. If unsure say N here.
 
 config PROC_DEVICETREE
-       bool "Support for Open Firmware device tree in /proc"
-       depends on (PPC_OF || PPC_ISERIES) && PROC_FS
+       bool "Support for device tree in /proc"
+       depends on PROC_FS
        help
          This option adds a device-tree directory under /proc which contains
          an image of the device tree that the kernel copies from Open
-         Firmware. If unsure, say Y here.
+         Firmware or other boot firmware. If unsure, say Y here.
 
 source "arch/powerpc/platforms/prep/Kconfig"
 
@@ -624,6 +815,7 @@ menu "Bus options"
 config ISA
        bool "Support for ISA-bus hardware"
        depends on PPC_PREP || PPC_CHRP
+       select PPC_I8259
        help
          Find out whether you have ISA slots on your motherboard.  ISA is the
          name of a bus system, i.e. the way the CPU talks to the other stuff
@@ -636,19 +828,42 @@ config GENERIC_ISA_DMA
        depends on PPC64 || POWER4 || 6xx && !CPM2
        default y
 
+config MPIC
+       bool
+       default n
+
+config MPIC_WEIRD
+       bool
+       default n
+
+config PPC_I8259
+       bool
+       default n
+
+config PPC_INDIRECT_PCI
+       bool
+       depends on PCI
+       default y if 40x || 44x
+       default n
+
 config EISA
        bool
 
 config SBUS
        bool
 
+config FSL_SOC
+       bool
+
 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
 config MCA
        bool
 
 config PCI
-       bool "PCI support" if 40x || CPM2 || 83xx || 85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
-       default y if !40x && !CPM2 && !8xx && !APUS && !83xx && !85xx
+       bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
+               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2
+       default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
+               && !PPC_85xx && !PPC_86xx
        default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
        default PCI_QSPAN if !4xx && !CPM2 && 8xx
        help
@@ -661,14 +876,10 @@ config PCI_DOMAINS
        bool
        default PCI
 
-config MPC83xx_PCI2
-       bool "  Supprt for 2nd PCI host controller"
-       depends on PCI && MPC834x
-       default y if MPC834x_SYS
-
 config PCI_QSPAN
        bool "QSpan PCI"
        depends on !4xx && !CPM2 && 8xx
+       select PPC_I8259
        help
          Say Y here if you have a system based on a Motorola 8xx-series
          embedded processor with a QSPAN PCI interface, otherwise say N.
@@ -676,15 +887,16 @@ config PCI_QSPAN
 config PCI_8260
        bool
        depends on PCI && 8260
+       select PPC_INDIRECT_PCI
        default y
 
 config 8260_PCI9
-       bool "  Enable workaround for MPC826x erratum PCI 9"
+       bool "Enable workaround for MPC826x erratum PCI 9"
        depends on PCI_8260 && !ADS8272
        default y
 
 choice
-       prompt "  IDMA channel for PCI 9 workaround"
+       prompt "IDMA channel for PCI 9 workaround"
        depends on 8260_PCI9
 
 config 8260_PCI9_IDMA1
@@ -701,6 +913,8 @@ config 8260_PCI9_IDMA4
 
 endchoice
 
+source "drivers/pci/pcie/Kconfig"
+
 source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
@@ -849,8 +1063,22 @@ source "arch/powerpc/platforms/iseries/Kconfig"
 
 source "lib/Kconfig"
 
+menu "Instrumentation Support"
+        depends on EXPERIMENTAL
+
 source "arch/powerpc/oprofile/Kconfig"
 
+config KPROBES
+       bool "Kprobes (EXPERIMENTAL)"
+       depends on PPC64 && EXPERIMENTAL && MODULES
+       help
+         Kprobes allows you to trap at almost any kernel address and
+         execute a callback function.  register_kprobe() establishes
+         a probepoint and specifies the callback.  Kprobes is useful
+         for kernel debugging, non-intrusive instrumentation and testing.
+         If in doubt, say "N".
+endmenu
+
 source "arch/powerpc/Kconfig.debug"
 
 source "security/Kconfig"