fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / powerpc / Kconfig
index e4d1963..05b3102 100644 (file)
@@ -30,6 +30,10 @@ config GENERIC_HARDIRQS
        bool
        default y
 
+config IRQ_PER_CPU
+       bool
+       default y
+
 config RWSEM_GENERIC_SPINLOCK
        bool
 
@@ -37,10 +41,26 @@ config RWSEM_XCHGADD_ALGORITHM
        bool
        default y
 
+config ARCH_HAS_ILOG2_U32
+       bool
+       default y
+
+config ARCH_HAS_ILOG2_U64
+       bool
+       default y if 64BIT
+
+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
@@ -83,6 +103,15 @@ config GENERIC_TBSYNC
        default y if PPC32 && SMP
        default n
 
+config AUDIT_ARCH
+       bool
+       default y
+
+config GENERIC_BUG
+       bool
+       default y
+       depends on BUG
+
 config DEFAULT_UIMAGE
        bool
        help
@@ -96,7 +125,7 @@ choice
        default 6xx
 
 config CLASSIC32
-       bool "6xx/7xx/74xx"
+       bool "52xx/6xx/7xx/74xx"
        select PPC_FPU
        select 6xx
        help
@@ -105,16 +134,18 @@ config CLASSIC32
          versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
          embedded versions (403 and 405) and the high end 64 bit Power
          processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
+
+         This option is the catch-all for 6xx types, including some of the
+         embedded versions.  Unless there is see an option for the specific
+         chip family you are using, you want this option.
+         
+         You do not want this if you are building a kernel for a 64 bit
+         IBM RS/6000 or an Apple G5, choose 6xx.
+         
+         If unsure, select this option
          
-         Unless you are building a kernel for one of the embedded processor
-         systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
          Note that the kernel runs in 32-bit mode even on 64-bit chips.
 
-config PPC_52xx
-       bool "Freescale 52xx"
-       select 6xx
-       select PPC_FPU
-       
 config PPC_82xx
        bool "Freescale 82xx"
        select 6xx
@@ -127,11 +158,28 @@ config PPC_83xx
        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"
+       select PPC_DCR_NATIVE
 
 config 44x
        bool "AMCC 44x"
+       select PPC_DCR_NATIVE
 
 config 8xx
        bool "Freescale 8xx"
@@ -139,8 +187,6 @@ config 8xx
 config E200
        bool "Freescale e200"
 
-config E500
-       bool "Freescale e500"
 endchoice
 
 config POWER4_ONLY
@@ -168,10 +214,35 @@ config 6xx
 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
 
+config PPC_DCR_NATIVE
+       bool
+       default n
+
+config PPC_DCR_MMIO
+       bool
+       default n
+
+config PPC_DCR
+       bool
+       depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
+       default y
+
+config PPC_OF_PLATFORM_PCI
+       bool
+       depends on PPC64 # not supported on 32 bits yet
+       default n
+
 config BOOKE
        bool
        depends on E200 || E500
@@ -191,6 +262,7 @@ config PTE_64BIT
 config PHYS_64BIT
        bool 'Large physical address support' if E500
        depends on 44x || E500
+       select RESOURCES_64BIT
        default y if 44x
        ---help---
          This option enables kernel support for larger than 32-bit physical
@@ -217,6 +289,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
@@ -238,6 +311,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"
@@ -286,13 +374,9 @@ config PPC_MULTIPLATFORM
          RS/6000 machine, an Apple machine, or a PReP, CHRP,
          Maple or Cell-based machine.
 
-config PPC_ISERIES
-       bool "IBM Legacy iSeries"
-       depends on PPC64
-
 config EMBEDDED6xx
        bool "Embedded 6xx/7xx/7xxx-based board"
-       depends on PPC32 && BROKEN
+       depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
 
 config APUS
        bool "Amiga-APUS"
@@ -303,66 +387,167 @@ config APUS
          <http://linux-apus.sourceforge.net/>.
 endchoice
 
+config QUICC_ENGINE
+       bool
+       depends on PPC_MPC836x || PPC_MPC832x
+       default y
+       help
+         The QUICC Engine (QE) is a new generation of communications
+         coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
+         Selecting this option means that you wish to build a kernel
+         for a machine with a QE coprocessor.
+
 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
+       select PPC_NATIVE
        default y
 
+config PPC_ISERIES
+       bool "IBM Legacy iSeries"
+       depends on PPC_MULTIPLATFORM && PPC64
+       select PPC_INDIRECT_IO
+
 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
+       select PPC_NATIVE
        default y
 
+config PPC_MPC52xx
+       bool
+       default n
+
+config PPC_EFIKA
+       bool "bPlan Efika 5k2. MPC5200B based computer"
+       depends on PPC_MULTIPLATFORM && PPC32
+       select PPC_RTAS
+       select RTAS_PROC
+       select PPC_MPC52xx
+       select PPC_NATIVE
+       default n
+
+config PPC_LITE5200
+       bool "Freescale Lite5200 Eval Board"
+       depends on PPC_MULTIPLATFORM && PPC32
+       select PPC_MPC52xx
+       default n
+
 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
+       select PPC_NATIVE
        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"
+       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
+       select PPC_NATIVE
+       default n
 
 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
+       select PPC_NATIVE
+       select PPC_RTAS
+       select ATA_NONSTANDARD if ATA
        default n
        help
           This option enables support for the Maple 970FX Evaluation Board.
-         For more informations, refer to <http://www.970eval.com>
+         For more information, refer to <http://www.970eval.com>
+
+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
+       select PPC_NATIVE
+       help
+         This option enables support for PA Semi's PWRficient line
+         of SoC processors, including PA6T-1682M
 
 config PPC_CELL
-       bool "  Cell Broadband Processor Architecture"
+       bool
+       default n
+
+config PPC_CELL_NATIVE
+       bool
+       select PPC_CELL
+       select PPC_DCR_MMIO
+       select PPC_OF_PLATFORM_PCI
+       select PPC_INDIRECT_IO
+       select PPC_NATIVE
+       select MPIC
+       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 PPC_PS3
+       bool "Sony PS3 (incomplete)"
+       depends on PPC_MULTIPLATFORM && PPC64
+       select PPC_CELL
+       help
+         This option enables support for the Sony PS3 game console
+         and other platforms using the PS3 hypervisor.
+         Support for this platform is not yet complete, so
+         enabling this will not result in a bootable kernel on a
+         PS3 system.
+
+config PPC_NATIVE
+       bool
+       depends on PPC_MULTIPLATFORM
+       help
+         Support for running natively on the hardware, i.e. without
+         a hypervisor. This option is not user-selectable but should
+         be selected by all platforms that need it.
+
+config UDBG_RTAS_CONSOLE
+       bool "RTAS based debug console"
+       depends on PPC_RTAS
+       default n
 
 config XICS
        depends on PPC_PSERIES
@@ -374,11 +559,6 @@ config U3_DART
        depends on PPC_MULTIPLATFORM && PPC64
        default n
 
-config MPIC
-       depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
-       bool
-       default y
-
 config PPC_RTAS
        bool
        default n
@@ -406,11 +586,6 @@ config MPIC_BROKEN_U3
        depends on PPC_MAPLE
        default y
 
-config CELL_IIC
-       depends on PPC_CELL
-       bool
-       default y
-
 config IBMVIO
        depends on PPC_PSERIES || PPC_ISERIES
        bool
@@ -426,6 +601,19 @@ config PPC_MPC106
        bool
        default n
 
+config PPC_970_NAP
+       bool
+       default n
+
+config PPC_INDIRECT_IO
+       bool
+       select GENERIC_IOMAP
+       default n
+
+config GENERIC_IOMAP
+       bool
+       default n
+
 source "drivers/cpufreq/Kconfig"
 
 config CPU_FREQ_PMAC
@@ -439,7 +627,7 @@ config CPU_FREQ_PMAC
 
 config CPU_FREQ_PMAC64
        bool "Support for some Apple G5s"
-       depends on CPU_FREQ && PMAC_SMU && PPC64
+       depends on CPU_FREQ && PPC64
        select CPU_FREQ_TABLE
        help
          This adds support for frequency switching on Apple iMac G5,
@@ -460,7 +648,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
@@ -469,7 +657,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
@@ -502,14 +690,18 @@ config TAU_AVERAGE
          /proc/cpuinfo.
 
          If in doubt, say N here.
+
 endmenu
 
 source arch/powerpc/platforms/embedded6xx/Kconfig
 source arch/powerpc/platforms/4xx/Kconfig
+source arch/powerpc/platforms/82xx/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
+source arch/powerpc/platforms/ps3/Kconfig
 
 menu "Kernel options"
 
@@ -532,7 +724,7 @@ config FORCE_MAX_ZONEORDER
 
 config MATH_EMULATION
        bool "Math emulation"
-       depends on 4xx || 8xx || E200 || E500
+       depends on 4xx || 8xx || E200 || PPC_83xx || E500
        ---help---
          Some PowerPC chips designed for embedded applications do not have
          a floating-point unit and therefore do not implement the
@@ -571,10 +763,10 @@ config KEXEC
        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
@@ -621,6 +813,11 @@ config NUMA
        depends on PPC64
        default y if SMP && PPC_PSERIES
 
+config NODES_SHIFT
+       int
+       default "4"
+       depends on NEED_MULTIPLE_NODES
+
 config ARCH_SELECT_MEMORY_MODEL
        def_bool y
        depends on PPC64
@@ -635,18 +832,26 @@ config ARCH_SPARSEMEM_ENABLE
 
 config ARCH_SPARSEMEM_DEFAULT
        def_bool y
-       depends on SMP && PPC_PSERIES
-
-source "mm/Kconfig"
+       depends on (SMP && PPC_PSERIES) || PPC_CELL
 
-config HAVE_ARCH_EARLY_PFN_TO_NID
+config ARCH_POPULATES_NODE_MAP
        def_bool y
-       depends on NEED_MULTIPLE_NODES
+
+source "mm/Kconfig"
 
 config ARCH_MEMORY_PROBE
        def_bool y
        depends on MEMORY_HOTPLUG
 
+# 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.  See memmap_init_zone()
+# for details.
+config NODES_SPAN_OTHER_NODES
+       def_bool y
+       depends on NEED_MULTIPLE_NODES
+
 config PPC_64K_PAGES
        bool "64k page size"
        depends on PPC64
@@ -660,7 +865,6 @@ config PPC_64K_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
@@ -678,7 +882,6 @@ source "arch/powerpc/platforms/prep/Kconfig"
 
 config CMDLINE_BOOL
        bool "Default bootloader kernel arguments"
-       depends on !PPC_ISERIES
 
 config CMDLINE
        string "Initial kernel command string"
@@ -735,15 +938,22 @@ 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 y if 85xx
        default n
 
 config PPC_INDIRECT_PCI
        bool
        depends on PCI
-       default y if 40x || 44x || 85xx
+       default y if 40x || 44x
        default n
 
 config EISA
@@ -760,8 +970,10 @@ config MCA
        bool
 
 config PCI
-       bool "PCI support" if 40x || CPM2 || PPC_83xx || 85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
-       default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !85xx
+       bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
+               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3
+       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
@@ -789,12 +1001,12 @@ config PCI_8260
        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
@@ -811,6 +1023,8 @@ config 8260_PCI9_IDMA4
 
 endchoice
 
+source "drivers/pci/pcie/Kconfig"
+
 source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
@@ -899,7 +1113,7 @@ config CONSISTENT_START_BOOL
        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
        help
          This option allows you to set the base virtual address
-         of the the consistent memory pool.  This pool of virtual
+         of the consistent memory pool.  This pool of virtual
          memory is used to make consistent memory allocations.
 
 config CONSISTENT_START
@@ -910,7 +1124,7 @@ config CONSISTENT_SIZE_BOOL
        bool "Set custom consistent memory pool size"
        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
        help
-         This option allows you to set the size of the the
+         This option allows you to set the size of the
          consistent memory pool.  This pool of virtual memory
          is used to make consistent memory allocations.
 
@@ -955,6 +1169,8 @@ source "fs/Kconfig"
 
 # XXX source "arch/ppc/8260_io/Kconfig"
 
+source "arch/powerpc/sysdev/qe_lib/Kconfig"
+
 source "arch/powerpc/platforms/iseries/Kconfig"
 
 source "lib/Kconfig"
@@ -966,7 +1182,7 @@ source "arch/powerpc/oprofile/Kconfig"
 
 config KPROBES
        bool "Kprobes (EXPERIMENTAL)"
-       depends on PPC64 && EXPERIMENTAL && MODULES
+       depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES
        help
          Kprobes allows you to trap at almost any kernel address and
          execute a callback function.  register_kprobe() establishes