Move dtc and libfdt sources from arch/powerpc/boot to scripts/dtc
[safe/jmp/linux-2.6] / arch / powerpc / Kconfig
index bd645f0..a0d1146 100644 (file)
@@ -19,8 +19,8 @@ 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
 
 config MMU
        bool
@@ -49,6 +49,22 @@ config IRQ_PER_CPU
        bool
        default y
 
+config STACKTRACE_SUPPORT
+       bool
+       default y
+
+config HAVE_LATENCYTOP_SUPPORT
+       def_bool y
+
+config TRACE_IRQFLAGS_SUPPORT
+       bool
+       depends on PPC64
+       default y
+
+config LOCKDEP_SUPPORT
+       bool
+       default y
+
 config RWSEM_GENERIC_SPINLOCK
        bool
 
@@ -81,16 +97,34 @@ config GENERIC_FIND_NEXT_BIT
        bool
        default y
 
+config GENERIC_GPIO
+       bool
+       help
+         Generic GPIO API support
+
 config ARCH_NO_VIRT_TO_BUS
        def_bool PPC64
 
 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_OPROFILE
+       select HAVE_IOREMAP_PROT
+       select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_KPROBES
+       select HAVE_ARCH_KGDB
+       select HAVE_KRETPROBES
+       select HAVE_ARCH_TRACEHOOK
        select HAVE_LMB
+       select HAVE_DMA_ATTRS if PPC64
+       select USE_GENERIC_SMP_HELPERS if SMP
+       select HAVE_OPROFILE
+       select HAVE_SYSCALL_WRAPPERS if PPC64
 
 config EARLY_PRINTK
        bool
@@ -111,7 +145,7 @@ config GENERIC_NVRAM
        bool
        default y if PPC32
 
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
        bool
        default y
 
@@ -147,6 +181,10 @@ config SYS_SUPPORTS_APM_EMULATION
        default y if PMAC_APM_EMU
        bool
 
+config DTC
+       bool
+       default y
+
 config DEFAULT_UIMAGE
        bool
        help
@@ -173,7 +211,7 @@ config ARCH_HIBERNATION_POSSIBLE
 
 config ARCH_SUSPEND_POSSIBLE
        def_bool y
-       depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200
+       depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx
 
 config PPC_DCR_NATIVE
        bool
@@ -194,8 +232,13 @@ config PPC_OF_PLATFORM_PCI
        depends on PPC64 # not supported on 32 bits yet
        default n
 
+config ARCH_SUPPORTS_DEBUG_PAGEALLOC
+       def_bool y
+
 source "init/Kconfig"
 
+source "kernel/Kconfig.freezer"
+
 source "arch/powerpc/sysdev/Kconfig"
 source "arch/powerpc/platforms/Kconfig"
 
@@ -210,15 +253,6 @@ source kernel/Kconfig.hz
 source kernel/Kconfig.preempt
 source "fs/Kconfig.binfmt"
 
-# We optimistically allocate largepages from the VM, so make the limit
-# large enough (16MB). This badly named config option is actually
-# max order + 1
-config FORCE_MAX_ZONEORDER
-       int
-       depends on PPC64
-       default "9" if PPC_64K_PAGES
-       default "13"
-
 config HUGETLB_PAGE_SIZE_VARIABLE
        bool
        depends on HUGETLB_PAGE
@@ -262,6 +296,10 @@ config IOMMU_VMERGE
 config IOMMU_HELPER
        def_bool PPC64
 
+config PPC_NEED_DMA_SYNC_OPS
+       def_bool y
+       depends on NOT_COHERENT_CACHE
+
 config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
        depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
@@ -282,7 +320,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
@@ -298,14 +336,23 @@ config KEXEC
          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
+       bool "Build a kdump crash kernel"
+       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.
+         The same kernel binary can be used as production kernel and dump
+         capture kernel.
 
-         Don't change this unless you know what you are doing.
+config PHYP_DUMP
+       bool "Hypervisor-assisted dump (EXPERIMENTAL)"
+       depends on PPC_PSERIES && EXPERIMENTAL
+       help
+         Hypervisor-assisted dump is meant to be a kdump replacement
+         offering robustness and speed not possible without system
+         hypervisor assistance.
+
+         If unsure, say "N"
 
 config PPCBUG_NVRAM
        bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
@@ -370,20 +417,100 @@ 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
+       select PPC_HAS_HASH_64K if PPC_STD_MMU_64
+
+config PPC_256K_PAGES
+       bool "256k page size" if 44x
+       depends on !STDBINUTILS
+       help
+         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_STD_MMU_64 && PPC_64K_PAGES
+       default "9" if PPC_STD_MMU_64 && PPC_64K_PAGES
+       range 13 64 if PPC_STD_MMU_64 && !PPC_64K_PAGES
+       default "13" if PPC_STD_MMU_64 && !PPC_64K_PAGES
+       range 9 64 if PPC_STD_MMU_32 && PPC_16K_PAGES
+       default "9" if PPC_STD_MMU_32 && PPC_16K_PAGES
+       range 7 64 if PPC_STD_MMU_32 && PPC_64K_PAGES
+       default "7" if PPC_STD_MMU_32 && PPC_64K_PAGES
+       range 5 64 if PPC_STD_MMU_32 && PPC_256K_PAGES
+       default "5" if PPC_STD_MMU_32 && PPC_256K_PAGES
+       range 11 64
+       default "11"
        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.
+         The kernel memory allocator divides physically contiguous memory
+         blocks into "zones", where each zone is a power of two number of
+         pages.  This option selects the largest power of two that the kernel
+         keeps in the memory allocator.  If you need to allocate very large
+         blocks of physically contiguous memory, then you may need to
+         increase this value.
+
+         This config option is actually maximum order plus one. For example,
+         a value of 11 means that the largest free memory block is 2^10 pages.
+
+         The page size is not necessarily 4KB.  For example, on 64-bit
+         systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES.  Keep
+         this in mind when choosing a value for this option.
 
 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)
@@ -418,6 +545,19 @@ config CMDLINE
          some command-line options at build time by entering them here.  In
          most cases you will need to specify the root device here.
 
+config EXTRA_TARGETS
+       string "Additional default image types"
+       help
+         List additional targets to be built by the bootwrapper here (separated
+         by spaces).  This is useful for targets that depend of device tree
+         files in the .dts directory.
+
+         Targets in this list will be build as part of the default build
+         target, or when the user does a 'make zImage' or a
+         'make zImage.initrd'.
+
+         If unsure, leave blank
+
 if !44x || BROKEN
 config ARCH_WANTS_FREEZER_CONTROL
        def_bool y
@@ -443,10 +583,6 @@ config SECCOMP
 
          If unsure, say Y. Only embedded should say N here.
 
-config WANT_DEVICE_TREE
-       bool
-       default n
-
 endmenu
 
 config ISA_DMA_API
@@ -493,16 +629,35 @@ config FSL_SOC
 config FSL_PCI
        bool
        select PPC_INDIRECT_PCI
+       select PCI_QUIRKS
+
+config 4xx_SOC
+       bool
+
+config FSL_LBC
+       bool
+       help
+         Freescale Localbus support
+
+config FSL_GTM
+       bool
+       depends on PPC_83xx || QUICC_ENGINE || CPM2
+       help
+         Freescale General-purpose Timers support
 
 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
 config MCA
        bool
 
+# Platforms that what PCI turned unconditionally just do select PCI
+# in their config node.  Platforms that want to choose at config
+# time should select PPC_PCI_CHOICE
+config PPC_PCI_CHOICE
+       bool
+
 config PCI
-       bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
-               || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
-               || PPC_PS3 || 44x
-       default y if !40x && !CPM2 && !8xx && !PPC_MPC512x && !PPC_83xx \
+       bool "PCI support" if PPC_PCI_CHOICE
+       default y if !40x && !CPM2 && !8xx && !PPC_83xx \
                && !PPC_85xx && !PPC_86xx
        default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
        default PCI_QSPAN if !4xx && !CPM2 && 8xx
@@ -564,6 +719,19 @@ source "drivers/pcmcia/Kconfig"
 
 source "drivers/pci/hotplug/Kconfig"
 
+config HAS_RAPIDIO
+       bool
+       default n
+
+config RAPIDIO
+       bool "RapidIO support"
+       depends on HAS_RAPIDIO
+       help
+         If you say Y here, the kernel will include drivers and
+         infrastructure code to support RapidIO interconnect devices.
+
+source "drivers/rapidio/Kconfig"
+
 endmenu
 
 menu "Advanced setup"
@@ -582,20 +750,6 @@ config ADVANCED_OPTIONS
 comment "Default settings for advanced configuration options are used"
        depends on !ADVANCED_OPTIONS
 
-config HIGHMEM_START_BOOL
-       bool "Set high memory pool address"
-       depends on ADVANCED_OPTIONS && HIGHMEM
-       help
-         This option allows you to set the base address of the kernel virtual
-         area used to map high memory pages.  This can be useful in
-         optimizing the layout of kernel virtual memory.
-
-         Say N here unless you know what you are doing.
-
-config HIGHMEM_START
-       hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
-       default "0xfe000000"
-
 config LOWMEM_SIZE_BOOL
        bool "Set maximum low memory"
        depends on ADVANCED_OPTIONS
@@ -612,21 +766,93 @@ 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
+       help
+         This builds a kernel image that is capable of running at the
+         location the kernel is loaded at (some alignment restrictions may
+         exist).
+
+         One use is for the kexec on panic case where the recovery kernel
+         must live at a different physical address than the primary
+         kernel.
+
+         Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
+         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).
+
+config PAGE_OFFSET_BOOL
+       bool "Set custom page offset address"
+       depends on ADVANCED_OPTIONS
+       help
+         This option allows you to set the kernel virtual address at which
+         the kernel will map low memory.  This can be useful in optimizing
+         the virtual memory layout of the system.
+
+         Say N here unless you know what you are doing.
+
+config PAGE_OFFSET
+       hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
+       default "0xc0000000"
+
 config KERNEL_START_BOOL
        bool "Set custom kernel base address"
        depends on ADVANCED_OPTIONS
        help
          This option allows you to set the kernel virtual address at which
-         the kernel will map low memory (the kernel image will be linked at
-         this address).  This can be useful in optimizing the virtual memory
-         layout of the system.
+         the kernel will be loaded.  Normally this should match PAGE_OFFSET
+         however there are times (like kdump) that one might not want them
+         to be the same.
 
          Say N here unless you know what you are doing.
 
 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
        default "0xc0000000"
 
+config PHYSICAL_START_BOOL
+       bool "Set physical address where the kernel is loaded"
+       depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
+       help
+         This gives the physical address where the kernel is loaded.
+
+         Say N here unless you know what you are doing.
+
+config PHYSICAL_START
+       hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
+       default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
+       default "0x00000000"
+
+config PHYSICAL_ALIGN
+       hex
+       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
+         address which meets above alignment restriction.
+
 config TASK_SIZE_BOOL
        bool "Set custom user task size"
        depends on ADVANCED_OPTIONS
@@ -642,56 +868,34 @@ 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
-       help
-         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.
-
-config CONSISTENT_SIZE
-       hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
-       default "0x00200000" if NOT_COHERENT_CACHE
-
-config BOOT_LOAD_BOOL
-       bool "Set the boot link/load address"
-       depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
-       help
-         This option allows you to set the initial load address of the zImage
-         or zImage.initrd file.  This can be useful if you are on a board
-         which has a small amount of memory.
-
-         Say N here unless you know what you are doing.
-
-config BOOT_LOAD
-       hex "Link/load address for booting" if BOOT_LOAD_BOOL
-       default "0x00400000" if 40x || 8xx || 8260
-       default "0x01000000" if 44x
-       default "0x00800000"
-
 config PIN_TLB
        bool "Pinned Kernel TLBs (860 ONLY)"
        depends on ADVANCED_OPTIONS && 8xx
 endmenu
 
 if PPC64
+config RELOCATABLE
+       bool "Build a relocatable 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.
+         The kernel is linked as a position-independent executable (PIE)
+         and contains dynamic relocations which are processed early
+         in the bootup process.
+
+         One use is for the kexec on panic case where the recovery kernel
+         must live at a different physical address than the primary
+         kernel.
+
+config PAGE_OFFSET
+       hex
+       default "0xc000000000000000"
 config KERNEL_START
        hex
        default "0xc000000000000000"
+config PHYSICAL_START
+       hex
+       default "0x00000000"
 endif
 
 source "net/Kconfig"
@@ -700,10 +904,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"
@@ -722,7 +922,9 @@ source "crypto/Kconfig"
 config PPC_CLOCK
        bool
        default n
+       select HAVE_CLK
 
 config PPC_LIB_RHEAP
        bool
 
+source "arch/powerpc/kvm/Kconfig"