Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[linux-3.10.git] / arch / powerpc / Kconfig
index 6ffe3df..1919634 100644 (file)
@@ -87,6 +87,10 @@ config ARCH_HAS_ILOG2_U64
        bool
        default y if 64BIT
 
+config ARCH_HAS_CPU_IDLE_WAIT
+       bool
+       default y
+
 config GENERIC_HWEIGHT
        bool
        default y
@@ -117,6 +121,7 @@ config PPC
        select HAVE_KRETPROBES
        select HAVE_ARCH_TRACEHOOK
        select HAVE_MEMBLOCK
+       select HAVE_MEMBLOCK_NODE_MAP
        select HAVE_DMA_ATTRS
        select HAVE_DMA_API_DEBUG
        select USE_GENERIC_SMP_HELPERS if SMP
@@ -132,6 +137,7 @@ config PPC
        select IRQ_PER_CPU
        select GENERIC_IRQ_SHOW
        select GENERIC_IRQ_SHOW_LEVEL
+       select IRQ_FORCED_THREADING
        select HAVE_RCU_TABLE_FREE if SMP
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_BPF_JIT if (PPC64 && NET)
@@ -362,8 +368,9 @@ config KEXEC
 
 config CRASH_DUMP
        bool "Build a kdump crash kernel"
-       depends on PPC64 || 6xx || FSL_BOOKE
-       select RELOCATABLE if PPC64 || FSL_BOOKE
+       depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP && !PPC_47x)
+       select RELOCATABLE if PPC64 || 44x
+       select DYNAMIC_MEMSTART if FSL_BOOKE
        help
          Build a kernel suitable for use as a kdump capture kernel.
          The same kernel binary can be used as production kernel and dump
@@ -421,9 +428,6 @@ config ARCH_SPARSEMEM_DEFAULT
        def_bool y
        depends on (SMP && PPC_PSERIES) || PPC_PS3
 
-config ARCH_POPULATES_NODE_MAP
-       def_bool y
-
 config SYS_SUPPORTS_HUGETLBFS
        bool
 
@@ -687,6 +691,10 @@ config FSL_LBC
          controller.  Also contains some common code used by
          drivers for specific local bus peripherals.
 
+config FSL_IFC
+       bool
+        depends on FSL_SOC
+
 config FSL_GTM
        bool
        depends on PPC_83xx || QUICC_ENGINE || CPM2
@@ -773,6 +781,10 @@ source "drivers/rapidio/Kconfig"
 
 endmenu
 
+config NONSTATIC_KERNEL
+       bool
+       default n
+
 menu "Advanced setup"
        depends on PPC32
 
@@ -822,13 +834,32 @@ config LOWMEM_CAM_NUM
        int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
        default 3
 
+config DYNAMIC_MEMSTART
+       bool "Enable page aligned dynamic load address for kernel (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
+       select NONSTATIC_KERNEL
+       help
+         This option enables the kernel to be loaded at any page aligned
+         physical address. The kernel creates a mapping from KERNELBASE to 
+         the address where the kernel is loaded. The page size here implies
+         the TLB page size of the mapping for kernel on the particular platform.
+         Please refer to the init code for finding the TLB page size.
+
+         DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
+         kernel image, where the only restriction is the page aligned kernel
+         load address. When this option is enabled, the compile time physical 
+         address CONFIG_PHYSICAL_START is ignored.
+
+         This option is overridden by CONFIG_RELOCATABLE
+
 config RELOCATABLE
        bool "Build a relocatable kernel (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || PPC_47x)
+       depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && 44x
+       select NONSTATIC_KERNEL
        help
          This builds a kernel image that is capable of running at the
-         location the kernel is loaded at (some alignment restrictions may
-         exist).
+         location the kernel is loaded at, without any alignment restrictions.
+         This feature is a superset of DYNAMIC_MEMSTART and hence overrides it.
 
          One use is for the kexec on panic case where the recovery kernel
          must live at a different physical address than the primary
@@ -838,7 +869,11 @@ config RELOCATABLE
          it has been loaded at and the compile time physical addresses
          CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
          setting can still be useful to bootwrappers that need to know the
-         load location of the kernel (eg. u-boot/mkimage).
+         load address of the kernel (eg. u-boot/mkimage).
+
+config RELOCATABLE_PPC32
+       def_bool y
+       depends on PPC32 && RELOCATABLE
 
 config PAGE_OFFSET_BOOL
        bool "Set custom page offset address"
@@ -868,7 +903,7 @@ config KERNEL_START_BOOL
 config KERNEL_START
        hex "Virtual address of kernel base" if KERNEL_START_BOOL
        default PAGE_OFFSET if PAGE_OFFSET_BOOL
-       default "0xc2000000" if CRASH_DUMP && !RELOCATABLE
+       default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
        default "0xc0000000"
 
 config PHYSICAL_START_BOOL
@@ -881,7 +916,7 @@ config PHYSICAL_START_BOOL
 
 config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
-       default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !RELOCATABLE
+       default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL
        default "0x00000000"
 
 config PHYSICAL_ALIGN
@@ -927,6 +962,7 @@ endmenu
 if PPC64
 config RELOCATABLE
        bool "Build a relocatable kernel"
+       select NONSTATIC_KERNEL
        help
          This builds a kernel image that is capable of running anywhere
          in the RMA (real memory area) at any 16k-aligned base address.