linux/arch/powerpc/Kconfig
<<
>>
Prefs
   1source "arch/powerpc/platforms/Kconfig.cputype"
   2
   3config PPC32
   4        bool
   5        default y if !PPC64
   6
   7config 32BIT
   8        bool
   9        default y if PPC32
  10
  11config 64BIT
  12        bool
  13        default y if PPC64
  14
  15config ARCH_PHYS_ADDR_T_64BIT
  16       def_bool PPC64 || PHYS_64BIT
  17
  18config ARCH_DMA_ADDR_T_64BIT
  19        def_bool ARCH_PHYS_ADDR_T_64BIT
  20
  21config MMU
  22        bool
  23        default y
  24
  25config HAVE_SETUP_PER_CPU_AREA
  26        def_bool PPC64
  27
  28config NEED_PER_CPU_EMBED_FIRST_CHUNK
  29        def_bool PPC64
  30
  31config NR_IRQS
  32        int "Number of virtual interrupt numbers"
  33        range 32 32768
  34        default "512"
  35        help
  36          This defines the number of virtual interrupt numbers the kernel
  37          can manage. Virtual interrupt numbers are what you see in
  38          /proc/interrupts. If you configure your system to have too few,
  39          drivers will fail to load or worse - handle with care.
  40
  41config STACKTRACE_SUPPORT
  42        bool
  43        default y
  44
  45config TRACE_IRQFLAGS_SUPPORT
  46        bool
  47        default y
  48
  49config LOCKDEP_SUPPORT
  50        bool
  51        default y
  52
  53config RWSEM_GENERIC_SPINLOCK
  54        bool
  55
  56config RWSEM_XCHGADD_ALGORITHM
  57        bool
  58        default y
  59
  60config GENERIC_LOCKBREAK
  61        bool
  62        default y
  63        depends on SMP && PREEMPT
  64
  65config ARCH_HAS_ILOG2_U32
  66        bool
  67        default y
  68
  69config ARCH_HAS_ILOG2_U64
  70        bool
  71        default y if 64BIT
  72
  73config GENERIC_HWEIGHT
  74        bool
  75        default y
  76
  77config ARCH_HAS_DMA_SET_COHERENT_MASK
  78        bool
  79
  80config PPC
  81        bool
  82        default y
  83        select ARCH_MIGHT_HAVE_PC_PARPORT
  84        select ARCH_MIGHT_HAVE_PC_SERIO
  85        select BINFMT_ELF
  86        select ARCH_HAS_ELF_RANDOMIZE
  87        select OF
  88        select OF_EARLY_FLATTREE
  89        select OF_RESERVED_MEM
  90        select HAVE_FTRACE_MCOUNT_RECORD
  91        select HAVE_DYNAMIC_FTRACE
  92        select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL
  93        select HAVE_FUNCTION_TRACER
  94        select HAVE_FUNCTION_GRAPH_TRACER
  95        select SYSCTL_EXCEPTION_TRACE
  96        select VIRT_TO_BUS if !PPC64
  97        select HAVE_IDE
  98        select HAVE_IOREMAP_PROT
  99        select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
 100        select HAVE_KPROBES
 101        select HAVE_ARCH_KGDB
 102        select HAVE_KRETPROBES
 103        select HAVE_ARCH_TRACEHOOK
 104        select HAVE_MEMBLOCK
 105        select HAVE_MEMBLOCK_NODE_MAP
 106        select HAVE_DMA_API_DEBUG
 107        select HAVE_OPROFILE
 108        select HAVE_DEBUG_KMEMLEAK
 109        select ARCH_HAS_SG_CHAIN
 110        select GENERIC_ATOMIC64 if PPC32
 111        select HAVE_PERF_EVENTS
 112        select HAVE_PERF_REGS
 113        select HAVE_PERF_USER_STACK_DUMP
 114        select HAVE_REGS_AND_STACK_ACCESS_API
 115        select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
 116        select ARCH_WANT_IPC_PARSE_VERSION
 117        select SPARSE_IRQ
 118        select IRQ_DOMAIN
 119        select GENERIC_IRQ_SHOW
 120        select GENERIC_IRQ_SHOW_LEVEL
 121        select IRQ_FORCED_THREADING
 122        select HAVE_RCU_TABLE_FREE if SMP
 123        select HAVE_SYSCALL_TRACEPOINTS
 124        select HAVE_CBPF_JIT if !PPC64
 125        select HAVE_EBPF_JIT if PPC64
 126        select HAVE_ARCH_JUMP_LABEL
 127        select ARCH_HAVE_NMI_SAFE_CMPXCHG
 128        select ARCH_HAS_GCOV_PROFILE_ALL
 129        select GENERIC_SMP_IDLE_THREAD
 130        select GENERIC_CMOS_UPDATE
 131        select GENERIC_TIME_VSYSCALL_OLD
 132        select GENERIC_CLOCKEVENTS
 133        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
 134        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
 135        select GENERIC_STRNCPY_FROM_USER
 136        select GENERIC_STRNLEN_USER
 137        select HAVE_MOD_ARCH_SPECIFIC
 138        select MODULES_USE_ELF_RELA
 139        select CLONE_BACKWARDS
 140        select ARCH_USE_BUILTIN_BSWAP
 141        select OLD_SIGSUSPEND
 142        select OLD_SIGACTION if PPC32
 143        select HAVE_DEBUG_STACKOVERFLOW
 144        select HAVE_IRQ_EXIT_ON_IRQ_STACK
 145        select ARCH_USE_CMPXCHG_LOCKREF if PPC64
 146        select HAVE_ARCH_AUDITSYSCALL
 147        select ARCH_SUPPORTS_ATOMIC_RMW
 148        select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN
 149        select NO_BOOTMEM
 150        select HAVE_GENERIC_RCU_GUP
 151        select HAVE_PERF_EVENTS_NMI if PPC64
 152        select HAVE_NMI if PERF_EVENTS
 153        select EDAC_SUPPORT
 154        select EDAC_ATOMIC_SCRUB
 155        select ARCH_HAS_DMA_SET_COHERENT_MASK
 156        select ARCH_HAS_DEVMEM_IS_ALLOWED
 157        select HAVE_ARCH_SECCOMP_FILTER
 158        select ARCH_HAS_UBSAN_SANITIZE_ALL
 159        select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
 160        select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
 161        select GENERIC_CPU_AUTOPROBE
 162        select HAVE_VIRT_CPU_ACCOUNTING
 163        select HAVE_ARCH_HARDENED_USERCOPY
 164        select HAVE_KERNEL_GZIP
 165
 166config GENERIC_CSUM
 167        def_bool CPU_LITTLE_ENDIAN
 168
 169config EARLY_PRINTK
 170        bool
 171        default y
 172
 173config PANIC_TIMEOUT
 174        int
 175        default 180
 176
 177config COMPAT
 178        bool
 179        default y if PPC64
 180        select COMPAT_BINFMT_ELF
 181        select ARCH_WANT_OLD_COMPAT_IPC
 182        select COMPAT_OLD_SIGACTION
 183
 184config SYSVIPC_COMPAT
 185        bool
 186        depends on COMPAT && SYSVIPC
 187        default y
 188
 189# All PPC32s use generic nvram driver through ppc_md
 190config GENERIC_NVRAM
 191        bool
 192        default y if PPC32
 193
 194config SCHED_OMIT_FRAME_POINTER
 195        bool
 196        default y
 197
 198config ARCH_MAY_HAVE_PC_FDC
 199        bool
 200        default PCI
 201
 202config PPC_UDBG_16550
 203        bool
 204        default n
 205
 206config GENERIC_TBSYNC
 207        bool
 208        default y if PPC32 && SMP
 209        default n
 210
 211config AUDIT_ARCH
 212        bool
 213        default y
 214
 215config GENERIC_BUG
 216        bool
 217        default y
 218        depends on BUG
 219
 220config SYS_SUPPORTS_APM_EMULATION
 221        default y if PMAC_APM_EMU
 222        bool
 223
 224config EPAPR_BOOT
 225        bool
 226        help
 227          Used to allow a board to specify it wants an ePAPR compliant wrapper.
 228        default n
 229
 230config DEFAULT_UIMAGE
 231        bool
 232        help
 233          Used to allow a board to specify it wants a uImage built by default
 234        default n
 235
 236config ARCH_HIBERNATION_POSSIBLE
 237        bool
 238        default y
 239
 240config ARCH_SUSPEND_POSSIBLE
 241        def_bool y
 242        depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
 243                   (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \
 244                   || 44x || 40x
 245
 246config PPC_DCR_NATIVE
 247        bool
 248        default n
 249
 250config PPC_DCR_MMIO
 251        bool
 252        default n
 253
 254config PPC_DCR
 255        bool
 256        depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
 257        default y
 258
 259config PPC_OF_PLATFORM_PCI
 260        bool
 261        depends on PCI
 262        depends on PPC64 # not supported on 32 bits yet
 263        default n
 264
 265config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 266        depends on PPC32 || PPC_STD_MMU_64
 267        def_bool y
 268
 269config ARCH_SUPPORTS_UPROBES
 270        def_bool y
 271
 272config PPC_ADV_DEBUG_REGS
 273        bool
 274        depends on 40x || BOOKE
 275        default y
 276
 277config PPC_ADV_DEBUG_IACS
 278        int
 279        depends on PPC_ADV_DEBUG_REGS
 280        default 4 if 44x
 281        default 2
 282
 283config PPC_ADV_DEBUG_DACS
 284        int
 285        depends on PPC_ADV_DEBUG_REGS
 286        default 2
 287
 288config PPC_ADV_DEBUG_DVCS
 289        int
 290        depends on PPC_ADV_DEBUG_REGS
 291        default 2 if 44x
 292        default 0
 293
 294config PPC_ADV_DEBUG_DAC_RANGE
 295        bool
 296        depends on PPC_ADV_DEBUG_REGS && 44x
 297        default y
 298
 299config PPC_EMULATE_SSTEP
 300        bool
 301        default y if KPROBES || UPROBES || XMON || HAVE_HW_BREAKPOINT
 302
 303config ZONE_DMA32
 304        bool
 305        default y if PPC64
 306
 307config PGTABLE_LEVELS
 308        int
 309        default 2 if !PPC64
 310        default 3 if PPC_64K_PAGES && !PPC_BOOK3S_64
 311        default 4
 312
 313source "init/Kconfig"
 314
 315source "kernel/Kconfig.freezer"
 316
 317source "arch/powerpc/sysdev/Kconfig"
 318source "arch/powerpc/platforms/Kconfig"
 319
 320menu "Kernel options"
 321
 322config HIGHMEM
 323        bool "High memory support"
 324        depends on PPC32
 325
 326source kernel/Kconfig.hz
 327source kernel/Kconfig.preempt
 328source "fs/Kconfig.binfmt"
 329
 330config HUGETLB_PAGE_SIZE_VARIABLE
 331        bool
 332        depends on HUGETLB_PAGE
 333        default y
 334
 335config MATH_EMULATION
 336        bool "Math emulation"
 337        depends on 4xx || 8xx || PPC_MPC832x || BOOKE
 338        ---help---
 339          Some PowerPC chips designed for embedded applications do not have
 340          a floating-point unit and therefore do not implement the
 341          floating-point instructions in the PowerPC instruction set.  If you
 342          say Y here, the kernel will include code to emulate a floating-point
 343          unit, which will allow programs that use floating-point
 344          instructions to run.
 345
 346          This is also useful to emulate missing (optional) instructions
 347          such as fsqrt on cores that do have an FPU but do not implement
 348          them (such as Freescale BookE).
 349
 350choice
 351        prompt "Math emulation options"
 352        default MATH_EMULATION_FULL
 353        depends on MATH_EMULATION
 354
 355config  MATH_EMULATION_FULL
 356        bool "Emulate all the floating point instructions"
 357        ---help---
 358          Select this option will enable the kernel to support to emulate
 359          all the floating point instructions. If your SoC doesn't have
 360          a FPU, you should select this.
 361
 362config MATH_EMULATION_HW_UNIMPLEMENTED
 363        bool "Just emulate the FPU unimplemented instructions"
 364        ---help---
 365          Select this if you know there does have a hardware FPU on your
 366          SoC, but some floating point instructions are not implemented by that.
 367
 368endchoice
 369
 370config PPC_TRANSACTIONAL_MEM
 371       bool "Transactional Memory support for POWERPC"
 372       depends on PPC_BOOK3S_64
 373       depends on SMP
 374       select ALTIVEC
 375       select VSX
 376       default n
 377       ---help---
 378         Support user-mode Transactional Memory on POWERPC.
 379
 380config DISABLE_MPROFILE_KERNEL
 381        bool "Disable use of mprofile-kernel for kernel tracing"
 382        depends on PPC64 && CPU_LITTLE_ENDIAN
 383        default y
 384        help
 385          Selecting this options disables use of the mprofile-kernel ABI for
 386          kernel tracing. That will cause options such as live patching
 387          (CONFIG_LIVEPATCH) which depend on CONFIG_DYNAMIC_FTRACE_WITH_REGS to
 388          be disabled also.
 389
 390          If you have a toolchain which supports mprofile-kernel, then you can
 391          enable this. Otherwise leave it disabled. If you're not sure, say
 392          "N".
 393
 394config MPROFILE_KERNEL
 395        depends on PPC64 && CPU_LITTLE_ENDIAN
 396        def_bool !DISABLE_MPROFILE_KERNEL
 397
 398config IOMMU_HELPER
 399        def_bool PPC64
 400
 401config SWIOTLB
 402        bool "SWIOTLB support"
 403        default n
 404        select IOMMU_HELPER
 405        ---help---
 406          Support for IO bounce buffering for systems without an IOMMU.
 407          This allows us to DMA to the full physical address space on
 408          platforms where the size of a physical address is larger
 409          than the bus address.  Not all platforms support this.
 410
 411config HOTPLUG_CPU
 412        bool "Support for enabling/disabling CPUs"
 413        depends on SMP && (PPC_PSERIES || \
 414        PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE)
 415        ---help---
 416          Say Y here to be able to disable and re-enable individual
 417          CPUs at runtime on SMP machines.
 418
 419          Say N if you are unsure.
 420
 421config ARCH_CPU_PROBE_RELEASE
 422        def_bool y
 423        depends on HOTPLUG_CPU
 424
 425config ARCH_ENABLE_MEMORY_HOTPLUG
 426        def_bool y
 427
 428config ARCH_HAS_WALK_MEMORY
 429        def_bool y
 430
 431config ARCH_ENABLE_MEMORY_HOTREMOVE
 432        def_bool y
 433
 434config PPC64_SUPPORTS_MEMORY_FAILURE
 435        bool "Add support for memory hwpoison"
 436        depends on PPC_BOOK3S_64
 437        default "y" if PPC_POWERNV
 438        select ARCH_SUPPORTS_MEMORY_FAILURE
 439
 440config KEXEC
 441        bool "kexec system call"
 442        depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E
 443        select KEXEC_CORE
 444        help
 445          kexec is a system call that implements the ability to shutdown your
 446          current kernel, and to start another kernel.  It is like a reboot
 447          but it is independent of the system firmware.   And like a reboot
 448          you can start any kernel with it, not just Linux.
 449
 450          The name comes from the similarity to the exec system call.
 451
 452          It is an ongoing process to be certain the hardware in a machine
 453          is properly shutdown, so do not be surprised if this code does not
 454          initially work for you.  As of this writing the exact hardware
 455          interface is strongly in flux, so no good recommendation can be
 456          made.
 457
 458config RELOCATABLE
 459        bool "Build a relocatable kernel"
 460        depends on (PPC64 && !COMPILE_TEST) || (FLATMEM && (44x || FSL_BOOKE))
 461        select NONSTATIC_KERNEL
 462        help
 463          This builds a kernel image that is capable of running at the
 464          location the kernel is loaded at. For ppc32, there is no any
 465          alignment restrictions, and this feature is a superset of
 466          DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use
 467          16k-aligned base address. The kernel is linked as a
 468          position-independent executable (PIE) and contains dynamic relocations
 469          which are processed early in the bootup process.
 470
 471          One use is for the kexec on panic case where the recovery kernel
 472          must live at a different physical address than the primary
 473          kernel.
 474
 475          Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
 476          it has been loaded at and the compile time physical addresses
 477          CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
 478          setting can still be useful to bootwrappers that need to know the
 479          load address of the kernel (eg. u-boot/mkimage).
 480
 481config CRASH_DUMP
 482        bool "Build a kdump crash kernel"
 483        depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP)
 484        select RELOCATABLE if (PPC64 && !COMPILE_TEST) || 44x || FSL_BOOKE
 485        help
 486          Build a kernel suitable for use as a kdump capture kernel.
 487          The same kernel binary can be used as production kernel and dump
 488          capture kernel.
 489
 490config FA_DUMP
 491        bool "Firmware-assisted dump"
 492        depends on PPC64 && PPC_RTAS && CRASH_DUMP && KEXEC
 493        help
 494          A robust mechanism to get reliable kernel crash dump with
 495          assistance from firmware. This approach does not use kexec,
 496          instead firmware assists in booting the kdump kernel
 497          while preserving memory contents. Firmware-assisted dump
 498          is meant to be a kdump replacement offering robustness and
 499          speed not possible without system firmware assistance.
 500
 501          If unsure, say "N"
 502
 503config IRQ_ALL_CPUS
 504        bool "Distribute interrupts on all CPUs by default"
 505        depends on SMP
 506        help
 507          This option gives the kernel permission to distribute IRQs across
 508          multiple CPUs.  Saying N here will route all IRQs to the first
 509          CPU.  Generally saying Y is safe, although some problems have been
 510          reported with SMP Power Macintoshes with this option enabled.
 511
 512config NUMA
 513        bool "NUMA support"
 514        depends on PPC64
 515        default y if SMP && PPC_PSERIES
 516
 517config NODES_SHIFT
 518        int
 519        default "8" if PPC64
 520        default "4"
 521        depends on NEED_MULTIPLE_NODES
 522
 523config USE_PERCPU_NUMA_NODE_ID
 524        def_bool y
 525        depends on NUMA
 526
 527config HAVE_MEMORYLESS_NODES
 528        def_bool y
 529        depends on NUMA
 530
 531config ARCH_SELECT_MEMORY_MODEL
 532        def_bool y
 533        depends on PPC64
 534
 535config ARCH_FLATMEM_ENABLE
 536        def_bool y
 537        depends on (PPC64 && !NUMA) || PPC32
 538
 539config ARCH_SPARSEMEM_ENABLE
 540        def_bool y
 541        depends on PPC64
 542        select SPARSEMEM_VMEMMAP_ENABLE
 543
 544config ARCH_SPARSEMEM_DEFAULT
 545        def_bool y
 546        depends on (SMP && PPC_PSERIES) || PPC_PS3
 547
 548config SYS_SUPPORTS_HUGETLBFS
 549        bool
 550
 551source "mm/Kconfig"
 552
 553config ARCH_MEMORY_PROBE
 554        def_bool y
 555        depends on MEMORY_HOTPLUG
 556
 557# Some NUMA nodes have memory ranges that span
 558# other nodes.  Even though a pfn is valid and
 559# between a node's start and end pfns, it may not
 560# reside on that node.  See memmap_init_zone()
 561# for details.
 562config NODES_SPAN_OTHER_NODES
 563        def_bool y
 564        depends on NEED_MULTIPLE_NODES
 565
 566config STDBINUTILS
 567        bool "Using standard binutils settings"
 568        depends on 44x
 569        default y
 570        help
 571          Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
 572          Note, that kernel will be able to run only those applications,
 573          which had been compiled using binutils later than 2.17.50.0.3 with
 574          '-zmax-page-size' set to 256K (the default is 64K). Or, if using
 575          the older binutils, you can patch them with a trivial patch, which
 576          changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
 577
 578choice
 579        prompt "Page size"
 580        default PPC_4K_PAGES
 581        help
 582          Select the kernel logical page size. Increasing the page size
 583          will reduce software overhead at each page boundary, allow
 584          hardware prefetch mechanisms to be more effective, and allow
 585          larger dma transfers increasing IO efficiency and reducing
 586          overhead. However the utilization of memory will increase.
 587          For example, each cached file will using a multiple of the
 588          page size to hold its contents and the difference between the
 589          end of file and the end of page is wasted.
 590
 591          Some dedicated systems, such as software raid serving with
 592          accelerated calculations, have shown significant increases.
 593
 594          If you configure a 64 bit kernel for 64k pages but the
 595          processor does not support them, then the kernel will simulate
 596          them with 4k pages, loading them on demand, but with the
 597          reduced software overhead and larger internal fragmentation.
 598          For the 32 bit kernel, a large page option will not be offered
 599          unless it is supported by the configured processor.
 600
 601          If unsure, choose 4K_PAGES.
 602
 603config PPC_4K_PAGES
 604        bool "4k page size"
 605        select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
 606
 607config PPC_16K_PAGES
 608        bool "16k page size"
 609        depends on 44x || PPC_8xx
 610
 611config PPC_64K_PAGES
 612        bool "64k page size"
 613        depends on !PPC_FSL_BOOK3E && (44x || PPC_STD_MMU_64 || PPC_BOOK3E_64)
 614        select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
 615
 616config PPC_256K_PAGES
 617        bool "256k page size"
 618        depends on 44x && !STDBINUTILS
 619        help
 620          Make the page size 256k.
 621
 622          As the ELF standard only requires alignment to support page
 623          sizes up to 64k, you will need to compile all of your user
 624          space applications with a non-standard binutils settings
 625          (see the STDBINUTILS description for details).
 626
 627          Say N unless you know what you are doing.
 628
 629endchoice
 630
 631config FORCE_MAX_ZONEORDER
 632        int "Maximum zone order"
 633        range 8 9 if PPC64 && PPC_64K_PAGES
 634        default "9" if PPC64 && PPC_64K_PAGES
 635        range 13 13 if PPC64 && !PPC_64K_PAGES
 636        default "13" if PPC64 && !PPC_64K_PAGES
 637        range 9 64 if PPC32 && PPC_16K_PAGES
 638        default "9" if PPC32 && PPC_16K_PAGES
 639        range 7 64 if PPC32 && PPC_64K_PAGES
 640        default "7" if PPC32 && PPC_64K_PAGES
 641        range 5 64 if PPC32 && PPC_256K_PAGES
 642        default "5" if PPC32 && PPC_256K_PAGES
 643        range 11 64
 644        default "11"
 645        help
 646          The kernel memory allocator divides physically contiguous memory
 647          blocks into "zones", where each zone is a power of two number of
 648          pages.  This option selects the largest power of two that the kernel
 649          keeps in the memory allocator.  If you need to allocate very large
 650          blocks of physically contiguous memory, then you may need to
 651          increase this value.
 652
 653          This config option is actually maximum order plus one. For example,
 654          a value of 11 means that the largest free memory block is 2^10 pages.
 655
 656          The page size is not necessarily 4KB.  For example, on 64-bit
 657          systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES.  Keep
 658          this in mind when choosing a value for this option.
 659
 660config PPC_SUBPAGE_PROT
 661        bool "Support setting protections for 4k subpages"
 662        depends on PPC_STD_MMU_64 && PPC_64K_PAGES
 663        help
 664          This option adds support for a system call to allow user programs
 665          to set access permissions (read/write, readonly, or no access)
 666          on the 4k subpages of each 64k page.
 667
 668config PPC_COPRO_BASE
 669        bool
 670        default n
 671
 672config SCHED_SMT
 673        bool "SMT (Hyperthreading) scheduler support"
 674        depends on PPC64 && SMP
 675        help
 676          SMT scheduler support improves the CPU scheduler's decision making
 677          when dealing with POWER5 cpus at a cost of slightly increased
 678          overhead in some places. If unsure say N here.
 679
 680config PPC_DENORMALISATION
 681        bool "PowerPC denormalisation exception handling"
 682        depends on PPC_BOOK3S_64
 683        default "y" if PPC_POWERNV
 684        ---help---
 685          Add support for handling denormalisation of single precision
 686          values.  Useful for bare metal only.  If unsure say Y here.
 687
 688config CMDLINE_BOOL
 689        bool "Default bootloader kernel arguments"
 690
 691config CMDLINE
 692        string "Initial kernel command string"
 693        depends on CMDLINE_BOOL
 694        default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
 695        help
 696          On some platforms, there is currently no way for the boot loader to
 697          pass arguments to the kernel. For these platforms, you can supply
 698          some command-line options at build time by entering them here.  In
 699          most cases you will need to specify the root device here.
 700
 701config CMDLINE_FORCE
 702        bool "Always use the default kernel command string"
 703        depends on CMDLINE_BOOL
 704        help
 705          Always use the default kernel command string, even if the boot
 706          loader passes other arguments to the kernel.
 707          This is useful if you cannot or don't want to change the
 708          command-line options your boot loader passes to the kernel.
 709
 710config EXTRA_TARGETS
 711        string "Additional default image types"
 712        help
 713          List additional targets to be built by the bootwrapper here (separated
 714          by spaces).  This is useful for targets that depend of device tree
 715          files in the .dts directory.
 716
 717          Targets in this list will be build as part of the default build
 718          target, or when the user does a 'make zImage' or a
 719          'make zImage.initrd'.
 720
 721          If unsure, leave blank
 722
 723config ARCH_WANTS_FREEZER_CONTROL
 724        def_bool y
 725        depends on ADB_PMU
 726
 727source kernel/power/Kconfig
 728
 729config SECCOMP
 730        bool "Enable seccomp to safely compute untrusted bytecode"
 731        depends on PROC_FS
 732        default y
 733        help
 734          This kernel feature is useful for number crunching applications
 735          that may need to compute untrusted bytecode during their
 736          execution. By using pipes or other transports made available to
 737          the process as file descriptors supporting the read/write
 738          syscalls, it's possible to isolate those applications in
 739          their own address space using seccomp. Once seccomp is
 740          enabled via /proc/<pid>/seccomp, it cannot be disabled
 741          and the task is only allowed to execute a few safe syscalls
 742          defined by each seccomp mode.
 743
 744          If unsure, say Y. Only embedded should say N here.
 745
 746endmenu
 747
 748config ISA_DMA_API
 749        bool
 750        default PCI
 751
 752menu "Bus options"
 753
 754config ISA
 755        bool "Support for ISA-bus hardware"
 756        depends on PPC_CHRP
 757        select PPC_I8259
 758        help
 759          Find out whether you have ISA slots on your motherboard.  ISA is the
 760          name of a bus system, i.e. the way the CPU talks to the other stuff
 761          inside your box.  If you have an Apple machine, say N here; if you
 762          have an IBM RS/6000 or pSeries machine, say Y.  If you have an
 763          embedded board, consult your board documentation.
 764
 765config ZONE_DMA
 766        bool
 767        default y
 768
 769config NEED_DMA_MAP_STATE
 770        def_bool (PPC64 || NOT_COHERENT_CACHE)
 771
 772config NEED_SG_DMA_LENGTH
 773        def_bool y
 774
 775config GENERIC_ISA_DMA
 776        bool
 777        depends on ISA_DMA_API
 778        default y
 779
 780config PPC_INDIRECT_PCI
 781        bool
 782        depends on PCI
 783        default y if 40x || 44x
 784        default n
 785
 786config EISA
 787        bool
 788
 789config SBUS
 790        bool
 791
 792config FSL_SOC
 793        bool
 794
 795config FSL_PCI
 796        bool
 797        select PPC_INDIRECT_PCI
 798        select PCI_QUIRKS
 799
 800config FSL_PMC
 801        bool
 802        default y
 803        depends on SUSPEND && (PPC_85xx || PPC_86xx)
 804        help
 805          Freescale MPC85xx/MPC86xx power management controller support
 806          (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
 807
 808config PPC4xx_CPM
 809        bool
 810        default y
 811        depends on SUSPEND && (44x || 40x)
 812        help
 813          PPC4xx Clock Power Management (CPM) support (suspend/resume).
 814          It also enables support for two different idle states (idle-wait
 815          and idle-doze).
 816
 817config 4xx_SOC
 818        bool
 819
 820config FSL_LBC
 821        bool "Freescale Local Bus support"
 822        help
 823          Enables reporting of errors from the Freescale local bus
 824          controller.  Also contains some common code used by
 825          drivers for specific local bus peripherals.
 826
 827config FSL_GTM
 828        bool
 829        depends on PPC_83xx || QUICC_ENGINE || CPM2
 830        help
 831          Freescale General-purpose Timers support
 832
 833# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
 834config MCA
 835        bool
 836
 837# Platforms that what PCI turned unconditionally just do select PCI
 838# in their config node.  Platforms that want to choose at config
 839# time should select PPC_PCI_CHOICE
 840config PPC_PCI_CHOICE
 841        bool
 842
 843config PCI
 844        bool "PCI support" if PPC_PCI_CHOICE
 845        default y if !40x && !CPM2 && !8xx && !PPC_83xx \
 846                && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
 847        default PCI_QSPAN if !4xx && !CPM2 && 8xx
 848        select GENERIC_PCI_IOMAP
 849        help
 850          Find out whether your system includes a PCI bus. PCI is the name of
 851          a bus system, i.e. the way the CPU talks to the other stuff inside
 852          your box.  If you say Y here, the kernel will include drivers and
 853          infrastructure code to support PCI bus devices.
 854
 855config PCI_DOMAINS
 856        def_bool PCI
 857
 858config PCI_SYSCALL
 859        def_bool PCI
 860
 861config PCI_QSPAN
 862        bool "QSpan PCI"
 863        depends on !4xx && !CPM2 && 8xx
 864        select PPC_I8259
 865        help
 866          Say Y here if you have a system based on a Motorola 8xx-series
 867          embedded processor with a QSPAN PCI interface, otherwise say N.
 868
 869config PCI_8260
 870        bool
 871        depends on PCI && 8260
 872        select PPC_INDIRECT_PCI
 873        default y
 874
 875source "drivers/pci/Kconfig"
 876
 877source "drivers/pcmcia/Kconfig"
 878
 879config HAS_RAPIDIO
 880        bool
 881        default n
 882
 883config RAPIDIO
 884        tristate "RapidIO support"
 885        depends on HAS_RAPIDIO || PCI
 886        help
 887          If you say Y here, the kernel will include drivers and
 888          infrastructure code to support RapidIO interconnect devices.
 889
 890config FSL_RIO
 891        bool "Freescale Embedded SRIO Controller support"
 892        depends on RAPIDIO = y && HAS_RAPIDIO
 893        default "n"
 894        ---help---
 895          Include support for RapidIO controller on Freescale embedded
 896          processors (MPC8548, MPC8641, etc).
 897
 898source "drivers/rapidio/Kconfig"
 899
 900endmenu
 901
 902config NONSTATIC_KERNEL
 903        bool
 904        default n
 905
 906menu "Advanced setup"
 907        depends on PPC32
 908
 909config ADVANCED_OPTIONS
 910        bool "Prompt for advanced kernel configuration options"
 911        help
 912          This option will enable prompting for a variety of advanced kernel
 913          configuration options.  These options can cause the kernel to not
 914          work if they are set incorrectly, but can be used to optimize certain
 915          aspects of kernel memory management.
 916
 917          Unless you know what you are doing, say N here.
 918
 919comment "Default settings for advanced configuration options are used"
 920        depends on !ADVANCED_OPTIONS
 921
 922config LOWMEM_SIZE_BOOL
 923        bool "Set maximum low memory"
 924        depends on ADVANCED_OPTIONS
 925        help
 926          This option allows you to set the maximum amount of memory which
 927          will be used as "low memory", that is, memory which the kernel can
 928          access directly, without having to set up a kernel virtual mapping.
 929          This can be useful in optimizing the layout of kernel virtual
 930          memory.
 931
 932          Say N here unless you know what you are doing.
 933
 934config LOWMEM_SIZE
 935        hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
 936        default "0x30000000"
 937
 938config LOWMEM_CAM_NUM_BOOL
 939        bool "Set number of CAMs to use to map low memory"
 940        depends on ADVANCED_OPTIONS && FSL_BOOKE
 941        help
 942          This option allows you to set the maximum number of CAM slots that
 943          will be used to map low memory.  There are a limited number of slots
 944          available and even more limited number that will fit in the L1 MMU.
 945          However, using more entries will allow mapping more low memory.  This
 946          can be useful in optimizing the layout of kernel virtual memory.
 947
 948          Say N here unless you know what you are doing.
 949
 950config LOWMEM_CAM_NUM
 951        depends on FSL_BOOKE
 952        int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
 953        default 3
 954
 955config DYNAMIC_MEMSTART
 956        bool "Enable page aligned dynamic load address for kernel"
 957        depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
 958        select NONSTATIC_KERNEL
 959        help
 960          This option enables the kernel to be loaded at any page aligned
 961          physical address. The kernel creates a mapping from KERNELBASE to 
 962          the address where the kernel is loaded. The page size here implies
 963          the TLB page size of the mapping for kernel on the particular platform.
 964          Please refer to the init code for finding the TLB page size.
 965
 966          DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
 967          kernel image, where the only restriction is the page aligned kernel
 968          load address. When this option is enabled, the compile time physical 
 969          address CONFIG_PHYSICAL_START is ignored.
 970
 971          This option is overridden by CONFIG_RELOCATABLE
 972
 973config PAGE_OFFSET_BOOL
 974        bool "Set custom page offset address"
 975        depends on ADVANCED_OPTIONS
 976        help
 977          This option allows you to set the kernel virtual address at which
 978          the kernel will map low memory.  This can be useful in optimizing
 979          the virtual memory layout of the system.
 980
 981          Say N here unless you know what you are doing.
 982
 983config PAGE_OFFSET
 984        hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
 985        default "0xc0000000"
 986
 987config KERNEL_START_BOOL
 988        bool "Set custom kernel base address"
 989        depends on ADVANCED_OPTIONS
 990        help
 991          This option allows you to set the kernel virtual address at which
 992          the kernel will be loaded.  Normally this should match PAGE_OFFSET
 993          however there are times (like kdump) that one might not want them
 994          to be the same.
 995
 996          Say N here unless you know what you are doing.
 997
 998config KERNEL_START
 999        hex "Virtual address of kernel base" if KERNEL_START_BOOL
1000        default PAGE_OFFSET if PAGE_OFFSET_BOOL
1001        default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
1002        default "0xc0000000"
1003
1004config PHYSICAL_START_BOOL
1005        bool "Set physical address where the kernel is loaded"
1006        depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
1007        help
1008          This gives the physical address where the kernel is loaded.
1009
1010          Say N here unless you know what you are doing.
1011
1012config PHYSICAL_START
1013        hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
1014        default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL
1015        default "0x00000000"
1016
1017config PHYSICAL_ALIGN
1018        hex
1019        default "0x04000000" if FSL_BOOKE
1020        help
1021          This value puts the alignment restrictions on physical address
1022          where kernel is loaded and run from. Kernel is compiled for an
1023          address which meets above alignment restriction.
1024
1025config TASK_SIZE_BOOL
1026        bool "Set custom user task size"
1027        depends on ADVANCED_OPTIONS
1028        help
1029          This option allows you to set the amount of virtual address space
1030          allocated to user tasks.  This can be useful in optimizing the
1031          virtual memory layout of the system.
1032
1033          Say N here unless you know what you are doing.
1034
1035config TASK_SIZE
1036        hex "Size of user task space" if TASK_SIZE_BOOL
1037        default "0x80000000" if PPC_8xx
1038        default "0xc0000000"
1039
1040config CONSISTENT_SIZE_BOOL
1041        bool "Set custom consistent memory pool size"
1042        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1043        help
1044          This option allows you to set the size of the
1045          consistent memory pool.  This pool of virtual memory
1046          is used to make consistent memory allocations.
1047
1048config CONSISTENT_SIZE
1049        hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1050        default "0x00200000" if NOT_COHERENT_CACHE
1051
1052config PIN_TLB
1053        bool "Pinned Kernel TLBs (860 ONLY)"
1054        depends on ADVANCED_OPTIONS && 8xx
1055
1056config PIN_TLB_IMMR
1057        bool "Pinned TLB for IMMR"
1058        depends on PIN_TLB
1059        default y
1060endmenu
1061
1062if PPC64
1063# This value must have zeroes in the bottom 60 bits otherwise lots will break
1064config PAGE_OFFSET
1065        hex
1066        default "0xc000000000000000"
1067config KERNEL_START
1068        hex
1069        default "0xc000000000000000"
1070config PHYSICAL_START
1071        hex
1072        default "0x00000000"
1073endif
1074
1075config  ARCH_RANDOM
1076        def_bool n
1077
1078source "net/Kconfig"
1079
1080source "drivers/Kconfig"
1081
1082source "fs/Kconfig"
1083
1084source "lib/Kconfig"
1085
1086source "arch/powerpc/Kconfig.debug"
1087
1088source "security/Kconfig"
1089
1090config KEYS_COMPAT
1091        bool
1092        depends on COMPAT && KEYS
1093        default y
1094
1095source "crypto/Kconfig"
1096
1097config PPC_LIB_RHEAP
1098        bool
1099
1100source "arch/powerpc/kvm/Kconfig"
1101
1102source "kernel/livepatch/Kconfig"
1103