powerpc/qe: Convert qe_ic_lock to raw_spinlock
[safe/jmp/linux-2.6] / arch / powerpc / Kconfig
index 97d8670..155d571 100644 (file)
@@ -19,9 +19,6 @@ config WORD_SIZE
        default 64 if PPC64
        default 32 if !PPC64
 
-config PPC_MERGE
-       def_bool y
-
 config ARCH_PHYS_ADDR_T_64BIT
        def_bool PPC64 || PHYS_64BIT
 
@@ -45,13 +42,30 @@ config GENERIC_HARDIRQS
        bool
        default y
 
+config GENERIC_HARDIRQS_NO__DO_IRQ
+       bool
+       default y
+
 config HAVE_SETUP_PER_CPU_AREA
        def_bool PPC64
 
+config NEED_PER_CPU_EMBED_FIRST_CHUNK
+       def_bool PPC64
+
 config IRQ_PER_CPU
        bool
        default y
 
+config NR_IRQS
+       int "Number of virtual interrupt numbers"
+       range 32 32768
+       default "512"
+       help
+         This defines the number of virtual interrupt numbers the kernel
+         can manage. Virtual interrupt numbers are what you see in
+         /proc/interrupts. If you configure your system to have too few,
+         drivers will fail to load or worse - handle with care.
+
 config STACKTRACE_SUPPORT
        bool
        default y
@@ -61,7 +75,6 @@ config HAVE_LATENCYTOP_SUPPORT
 
 config TRACE_IRQFLAGS_SUPPORT
        bool
-       depends on PPC64
        default y
 
 config LOCKDEP_SUPPORT
@@ -92,10 +105,6 @@ config GENERIC_HWEIGHT
        bool
        default y
 
-config GENERIC_CALIBRATE_DELAY
-       bool
-       default y
-
 config GENERIC_FIND_NEXT_BIT
        bool
        default y
@@ -111,8 +120,10 @@ config ARCH_NO_VIRT_TO_BUS
 config PPC
        bool
        default y
+       select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FUNCTION_TRACER
+       select HAVE_FUNCTION_GRAPH_TRACER
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select HAVE_IDE
        select HAVE_IOREMAP_PROT
@@ -122,9 +133,13 @@ config PPC
        select HAVE_KRETPROBES
        select HAVE_ARCH_TRACEHOOK
        select HAVE_LMB
-       select HAVE_DMA_ATTRS if PPC64
+       select HAVE_DMA_ATTRS
+       select HAVE_DMA_API_DEBUG
        select USE_GENERIC_SMP_HELPERS if SMP
        select HAVE_OPROFILE
+       select HAVE_SYSCALL_WRAPPERS if PPC64
+       select GENERIC_ATOMIC64 if PPC32
+       select HAVE_PERF_EVENTS
 
 config EARLY_PRINTK
        bool
@@ -145,7 +160,7 @@ config GENERIC_NVRAM
        bool
        default y if PPC32
 
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
        bool
        default y
 
@@ -158,6 +173,7 @@ config PPC_OF
 
 config OF
        def_bool y
+       select OF_FLATTREE
 
 config PPC_UDBG_16550
        bool
@@ -181,6 +197,10 @@ config SYS_SUPPORTS_APM_EMULATION
        default y if PMAC_APM_EMU
        bool
 
+config DTC
+       bool
+       default y
+
 config DEFAULT_UIMAGE
        bool
        help
@@ -190,24 +210,14 @@ config DEFAULT_UIMAGE
 config REDBOOT
        bool
 
-config HIBERNATE_32
-       bool
-       depends on (PPC_PMAC && !SMP) || BROKEN
-       default y
-
-config HIBERNATE_64
-       bool
-       depends on BROKEN || (PPC_PMAC64 && EXPERIMENTAL)
-       default y
-
 config ARCH_HIBERNATION_POSSIBLE
        bool
-       depends on (PPC64 && HIBERNATE_64) || (PPC32 && HIBERNATE_32)
        default y
 
 config ARCH_SUSPEND_POSSIBLE
        def_bool y
-       depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx
+       depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
+                  PPC_85xx || PPC_86xx
 
 config PPC_DCR_NATIVE
        bool
@@ -228,8 +238,40 @@ config PPC_OF_PLATFORM_PCI
        depends on PPC64 # not supported on 32 bits yet
        default n
 
+config ARCH_SUPPORTS_DEBUG_PAGEALLOC
+       def_bool y
+
+config PPC_ADV_DEBUG_REGS
+       bool
+       depends on 40x || BOOKE
+       default y
+
+config PPC_ADV_DEBUG_IACS
+       int
+       depends on PPC_ADV_DEBUG_REGS
+       default 4 if 44x
+       default 2
+
+config PPC_ADV_DEBUG_DACS
+       int
+       depends on PPC_ADV_DEBUG_REGS
+       default 2
+
+config PPC_ADV_DEBUG_DVCS
+       int
+       depends on PPC_ADV_DEBUG_REGS
+       default 2 if 44x
+       default 0
+
+config PPC_ADV_DEBUG_DAC_RANGE
+       bool
+       depends on PPC_ADV_DEBUG_REGS && 44x
+       default y
+
 source "init/Kconfig"
 
+source "kernel/Kconfig.freezer"
+
 source "arch/powerpc/sysdev/Kconfig"
 source "arch/powerpc/platforms/Kconfig"
 
@@ -287,6 +329,16 @@ config IOMMU_VMERGE
 config IOMMU_HELPER
        def_bool PPC64
 
+config SWIOTLB
+       bool "SWIOTLB support"
+       default n
+       select IOMMU_HELPER
+       ---help---
+         Support for IO bounce buffering for systems without an IOMMU.
+         This allows us to DMA to the full physical address space on
+         platforms where the size of a physical address is larger
+         than the bus address.  Not all platforms support this.
+
 config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
        depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
@@ -296,6 +348,10 @@ config HOTPLUG_CPU
 
          Say N if you are unsure.
 
+config ARCH_CPU_PROBE_RELEASE
+       def_bool y
+       depends on HOTPLUG_CPU
+
 config ARCH_ENABLE_MEMORY_HOTPLUG
        def_bool y
 
@@ -307,7 +363,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
-       depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
+       depends on PPC_BOOK3S && 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
@@ -324,13 +380,12 @@ config KEXEC
 
 config CRASH_DUMP
        bool "Build a kdump crash kernel"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 || 6xx
+       select RELOCATABLE if PPC64
        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.
+         The same kernel binary can be used as production kernel and dump
+         capture kernel.
 
 config PHYP_DUMP
        bool "Hypervisor-assisted dump (EXPERIMENTAL)"
@@ -338,7 +393,7 @@ config PHYP_DUMP
        help
          Hypervisor-assisted dump is meant to be a kdump replacement
          offering robustness and speed not possible without system
-         hypervisor assistence.
+         hypervisor assistance.
 
          If unsure, say "N"
 
@@ -355,6 +410,19 @@ config IRQ_ALL_CPUS
          CPU.  Generally saying Y is safe, although some problems have been
          reported with SMP Power Macintoshes with this option enabled.
 
+config SPARSE_IRQ
+       bool "Support sparse irq numbering"
+       default y
+       help
+         This enables support for sparse irqs. This is useful for distro
+         kernels that want to define a high CONFIG_NR_CPUS value but still
+         want to have low kernel memory footprint on smaller machines.
+
+         ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
+           out the irq_desc[] array in a more NUMA-friendly way. )
+
+         If you don't know what to do here, say Y.
+
 config NUMA
        bool "NUMA support"
        depends on PPC64
@@ -362,9 +430,15 @@ config NUMA
 
 config NODES_SHIFT
        int
+       default "8" if PPC64
        default "4"
        depends on NEED_MULTIPLE_NODES
 
+config MAX_ACTIVE_REGIONS
+       int
+       default "256" if PPC64
+       default "32"
+
 config ARCH_SELECT_MEMORY_MODEL
        def_bool y
        depends on PPC64
@@ -385,6 +459,10 @@ config ARCH_SPARSEMEM_DEFAULT
 config ARCH_POPULATES_NODE_MAP
        def_bool y
 
+config SYS_SUPPORTS_HUGETLBFS
+       def_bool y
+       depends on PPC_BOOK3S_64
+
 source "mm/Kconfig"
 
 config ARCH_MEMORY_PROBE
@@ -405,23 +483,80 @@ config PPC_HAS_HASH_64K
        depends on PPC64
        default n
 
+config STDBINUTILS
+       bool "Using standard binutils settings"
+       depends on 44x
+       default y
+       help
+         Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
+         Note, that kernel will be able to run only those applications,
+         which had been compiled using binutils later than 2.17.50.0.3 with
+         '-zmax-page-size' set to 256K (the default is 64K). Or, if using
+         the older binutils, you can patch them with a trivial patch, which
+         changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
+
+choice
+       prompt "Page size"
+       default PPC_4K_PAGES
+       help
+         Select the kernel logical page size. Increasing the page size
+         will reduce software overhead at each page boundary, allow
+         hardware prefetch mechanisms to be more effective, and allow
+         larger dma transfers increasing IO efficiency and reducing
+         overhead. However the utilization of memory will increase.
+         For example, each cached file will using a multiple of the
+         page size to hold its contents and the difference between the
+         end of file and the end of page is wasted.
+
+         Some dedicated systems, such as software raid serving with
+         accelerated calculations, have shown significant increases.
+
+         If you configure a 64 bit kernel for 64k pages but the
+         processor does not support them, then the kernel will simulate
+         them with 4k pages, loading them on demand, but with the
+         reduced software overhead and larger internal fragmentation.
+         For the 32 bit kernel, a large page option will not be offered
+         unless it is supported by the configured processor.
+
+         If unsure, choose 4K_PAGES.
+
+config PPC_4K_PAGES
+       bool "4k page size"
+
+config PPC_16K_PAGES
+       bool "16k page size" if 44x
+
 config PPC_64K_PAGES
-       bool "64k page size"
-       depends on PPC64
-       select PPC_HAS_HASH_64K
+       bool "64k page size" if 44x || PPC_STD_MMU_64 || PPC_BOOK3E_64
+       select PPC_HAS_HASH_64K if PPC_STD_MMU_64
+
+config PPC_256K_PAGES
+       bool "256k page size" if 44x
+       depends on !STDBINUTILS
        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.
+         Make the page size 256k.
+
+         As the ELF standard only requires alignment to support page
+         sizes up to 64k, you will need to compile all of your user
+         space applications with a non-standard binutils settings
+         (see the STDBINUTILS description for details).
+
+         Say N unless you know what you are doing.
+
+endchoice
 
 config FORCE_MAX_ZONEORDER
        int "Maximum zone order"
-       range 9 64 if PPC_64K_PAGES
-       default "9" if PPC_64K_PAGES
+       range 9 64 if PPC64 && PPC_64K_PAGES
+       default "9" if PPC64 && PPC_64K_PAGES
        range 13 64 if PPC64 && !PPC_64K_PAGES
        default "13" if PPC64 && !PPC_64K_PAGES
+       range 9 64 if PPC32 && PPC_16K_PAGES
+       default "9" if PPC32 && PPC_16K_PAGES
+       range 7 64 if PPC32 && PPC_64K_PAGES
+       default "7" if PPC32 && PPC_64K_PAGES
+       range 5 64 if PPC32 && PPC_256K_PAGES
+       default "5" if PPC32 && PPC_256K_PAGES
        range 11 64
        default "11"
        help
@@ -441,7 +576,7 @@ config FORCE_MAX_ZONEORDER
 
 config PPC_SUBPAGE_PROT
        bool "Support setting protections for 4k subpages"
-       depends on PPC_64K_PAGES
+       depends on PPC_STD_MMU_64 && PPC_64K_PAGES
        help
          This option adds support for a system call to allow user programs
          to set access permissions (read/write, readonly, or no access)
@@ -560,6 +695,15 @@ config FSL_SOC
 config FSL_PCI
        bool
        select PPC_INDIRECT_PCI
+       select PCI_QUIRKS
+
+config FSL_PMC
+       bool
+       default y
+       depends on SUSPEND && (PPC_85xx || PPC_86xx)
+       help
+         Freescale MPC85xx/MPC86xx power management controller support
+         (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
 
 config 4xx_SOC
        bool
@@ -588,7 +732,7 @@ config PPC_PCI_CHOICE
 config PCI
        bool "PCI support" if PPC_PCI_CHOICE
        default y if !40x && !CPM2 && !8xx && !PPC_83xx \
-               && !PPC_85xx && !PPC_86xx
+               && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
        default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
        default PCI_QSPAN if !4xx && !CPM2 && 8xx
        select ARCH_SUPPORTS_MSI
@@ -696,6 +840,23 @@ config LOWMEM_SIZE
        hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
        default "0x30000000"
 
+config LOWMEM_CAM_NUM_BOOL
+       bool "Set number of CAMs to use to map low memory"
+       depends on ADVANCED_OPTIONS && FSL_BOOKE
+       help
+         This option allows you to set the maximum number of CAM slots that
+         will be used to map low memory.  There are a limited number of slots
+         available and even more limited number that will fit in the L1 MMU.
+         However, using more entries will allow mapping more low memory.  This
+         can be useful in optimizing the layout of kernel virtual memory.
+
+         Say N here unless you know what you are doing.
+
+config LOWMEM_CAM_NUM
+       depends on FSL_BOOKE
+       int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
+       default 3
+
 config RELOCATABLE
        bool "Build a relocatable kernel (EXPERIMENTAL)"
        depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
@@ -760,7 +921,7 @@ config PHYSICAL_START
 
 config PHYSICAL_ALIGN
        hex
-       default "0x10000000" if FSL_BOOKE
+       default "0x04000000" if FSL_BOOKE
        help
          This value puts the alignment restrictions on physical address
          where kernel is loaded and run from. Kernel is compiled for an
@@ -781,19 +942,6 @@ config TASK_SIZE
        default "0x80000000" if PPC_PREP || PPC_8xx
        default "0xc0000000"
 
-config CONSISTENT_START_BOOL
-       bool "Set custom consistent memory pool address"
-       depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
-       help
-         This option allows you to set the base virtual address
-         of the consistent memory pool.  This pool of virtual
-         memory is used to make consistent memory allocations.
-
-config CONSISTENT_START
-       hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
-       default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
-       default "0xff100000" if NOT_COHERENT_CACHE
-
 config CONSISTENT_SIZE_BOOL
        bool "Set custom consistent memory pool size"
        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
@@ -830,11 +978,9 @@ config PAGE_OFFSET
        default "0xc000000000000000"
 config KERNEL_START
        hex
-       default "0xc000000002000000" if CRASH_DUMP
        default "0xc000000000000000"
 config PHYSICAL_START
        hex
-       default "0x02000000" if CRASH_DUMP
        default "0x00000000"
 endif
 
@@ -844,10 +990,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-# XXX source "arch/ppc/8xx_io/Kconfig"
-
-# XXX source "arch/ppc/8260_io/Kconfig"
-
 source "arch/powerpc/sysdev/qe_lib/Kconfig"
 
 source "lib/Kconfig"