linux/arch/powerpc/Kconfig
<<
>>
Prefs
   1# For a description of the syntax of this configuration file,
   2# see Documentation/kbuild/kconfig-language.txt.
   3#
   4
   5mainmenu "Linux/PowerPC Kernel Configuration"
   6
   7source "arch/powerpc/platforms/Kconfig.cputype"
   8
   9config PPC32
  10        bool
  11        default y if !PPC64
  12
  13config 64BIT
  14        bool
  15        default y if PPC64
  16
  17config WORD_SIZE
  18        int
  19        default 64 if PPC64
  20        default 32 if !PPC64
  21
  22config PPC_MERGE
  23        def_bool y
  24
  25config MMU
  26        bool
  27        default y
  28
  29config GENERIC_CMOS_UPDATE
  30        def_bool y
  31
  32config GENERIC_TIME
  33        def_bool y
  34
  35config GENERIC_TIME_VSYSCALL
  36        def_bool y
  37
  38config GENERIC_CLOCKEVENTS
  39        def_bool y
  40
  41config GENERIC_HARDIRQS
  42        bool
  43        default y
  44
  45config IRQ_PER_CPU
  46        bool
  47        default y
  48
  49config RWSEM_GENERIC_SPINLOCK
  50        bool
  51
  52config RWSEM_XCHGADD_ALGORITHM
  53        bool
  54        default y
  55
  56config ARCH_HAS_ILOG2_U32
  57        bool
  58        default y
  59
  60config ARCH_HAS_ILOG2_U64
  61        bool
  62        default y if 64BIT
  63
  64config GENERIC_HWEIGHT
  65        bool
  66        default y
  67
  68config GENERIC_CALIBRATE_DELAY
  69        bool
  70        default y
  71
  72config GENERIC_FIND_NEXT_BIT
  73        bool
  74        default y
  75
  76config ARCH_NO_VIRT_TO_BUS
  77        def_bool PPC64
  78
  79config PPC
  80        bool
  81        default y
  82
  83config EARLY_PRINTK
  84        bool
  85        default y
  86
  87config COMPAT
  88        bool
  89        default y if PPC64
  90
  91config SYSVIPC_COMPAT
  92        bool
  93        depends on COMPAT && SYSVIPC
  94        default y
  95
  96# All PPC32s use generic nvram driver through ppc_md
  97config GENERIC_NVRAM
  98        bool
  99        default y if PPC32
 100
 101config SCHED_NO_NO_OMIT_FRAME_POINTER
 102        bool
 103        default y
 104
 105config ARCH_MAY_HAVE_PC_FDC
 106        bool
 107        default !PPC_PSERIES || PCI
 108
 109config PPC_OF
 110        def_bool y
 111
 112config OF
 113        def_bool y
 114
 115config PPC_UDBG_16550
 116        bool
 117        default n
 118
 119config GENERIC_TBSYNC
 120        bool
 121        default y if PPC32 && SMP
 122        default n
 123
 124config AUDIT_ARCH
 125        bool
 126        default y
 127
 128config GENERIC_BUG
 129        bool
 130        default y
 131        depends on BUG
 132
 133config SYS_SUPPORTS_APM_EMULATION
 134        default y if PMAC_APM_EMU
 135        bool
 136
 137config DEFAULT_UIMAGE
 138        bool
 139        help
 140          Used to allow a board to specify it wants a uImage built by default
 141        default n
 142
 143config PPC64_SWSUSP
 144        bool
 145        depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
 146        default y
 147
 148config PPC_DCR_NATIVE
 149        bool
 150        default n
 151
 152config PPC_DCR_MMIO
 153        bool
 154        default n
 155
 156config PPC_DCR
 157        bool
 158        depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
 159        default y
 160
 161config PPC_OF_PLATFORM_PCI
 162        bool
 163        depends on PPC64 # not supported on 32 bits yet
 164        default n
 165
 166source "init/Kconfig"
 167
 168source "arch/powerpc/platforms/Kconfig"
 169
 170menu "Kernel options"
 171
 172config HIGHMEM
 173        bool "High memory support"
 174        depends on PPC32
 175
 176source kernel/time/Kconfig
 177source kernel/Kconfig.hz
 178source kernel/Kconfig.preempt
 179source "fs/Kconfig.binfmt"
 180
 181# We optimistically allocate largepages from the VM, so make the limit
 182# large enough (16MB). This badly named config option is actually
 183# max order + 1
 184config FORCE_MAX_ZONEORDER
 185        int
 186        depends on PPC64
 187        default "9" if PPC_64K_PAGES
 188        default "13"
 189
 190config HUGETLB_PAGE_SIZE_VARIABLE
 191        bool
 192        depends on HUGETLB_PAGE
 193        default y
 194
 195config MATH_EMULATION
 196        bool "Math emulation"
 197        depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
 198        ---help---
 199          Some PowerPC chips designed for embedded applications do not have
 200          a floating-point unit and therefore do not implement the
 201          floating-point instructions in the PowerPC instruction set.  If you
 202          say Y here, the kernel will include code to emulate a floating-point
 203          unit, which will allow programs that use floating-point
 204          instructions to run.
 205
 206config 8XX_MINIMAL_FPEMU
 207        bool "Minimal math emulation for 8xx"
 208        depends on 8xx && !MATH_EMULATION
 209        help
 210          Older arch/ppc kernels still emulated a few floating point
 211          instructions such as load and store, even when full math
 212          emulation is disabled.  Say "Y" here if you want to preserve
 213          this behavior.
 214
 215          It is recommended that you build a soft-float userspace instead.
 216
 217config IOMMU_VMERGE
 218        bool "Enable IOMMU virtual merging"
 219        depends on PPC64
 220        default y
 221        help
 222          Cause IO segments sent to a device for DMA to be merged virtually
 223          by the IOMMU when they happen to have been allocated contiguously.
 224          This doesn't add pressure to the IOMMU allocator. However, some
 225          drivers don't support getting large merged segments coming back
 226          from *_map_sg().
 227
 228          Most drivers don't have this problem; it is safe to say Y here.
 229
 230config HOTPLUG_CPU
 231        bool "Support for enabling/disabling CPUs"
 232        depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
 233        ---help---
 234          Say Y here to be able to disable and re-enable individual
 235          CPUs at runtime on SMP machines.
 236
 237          Say N if you are unsure.
 238
 239config ARCH_ENABLE_MEMORY_HOTPLUG
 240        def_bool y
 241
 242config KEXEC
 243        bool "kexec system call (EXPERIMENTAL)"
 244        depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
 245        help
 246          kexec is a system call that implements the ability to shutdown your
 247          current kernel, and to start another kernel.  It is like a reboot
 248          but it is independent of the system firmware.   And like a reboot
 249          you can start any kernel with it, not just Linux.
 250
 251          The name comes from the similarity to the exec system call.
 252
 253          It is an ongoing process to be certain the hardware in a machine
 254          is properly shutdown, so do not be surprised if this code does not
 255          initially work for you.  It may help to enable device hotplugging
 256          support.  As of this writing the exact hardware interface is
 257          strongly in flux, so no good recommendation can be made.
 258
 259config CRASH_DUMP
 260        bool "Build a kdump crash kernel (EXPERIMENTAL)"
 261        depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
 262        help
 263          Build a kernel suitable for use as a kdump capture kernel.
 264          The kernel will be linked at a different address than normal, and
 265          so can only be used for Kdump.
 266
 267          Don't change this unless you know what you are doing.
 268
 269config PPCBUG_NVRAM
 270        bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
 271        default y if PPC_PREP
 272
 273config IRQ_ALL_CPUS
 274        bool "Distribute interrupts on all CPUs by default"
 275        depends on SMP && !MV64360
 276        help
 277          This option gives the kernel permission to distribute IRQs across
 278          multiple CPUs.  Saying N here will route all IRQs to the first
 279          CPU.  Generally saying Y is safe, although some problems have been
 280          reported with SMP Power Macintoshes with this option enabled.
 281
 282config NUMA
 283        bool "NUMA support"
 284        depends on PPC64
 285        default y if SMP && PPC_PSERIES
 286
 287config NODES_SHIFT
 288        int
 289        default "4"
 290        depends on NEED_MULTIPLE_NODES
 291
 292config ARCH_SELECT_MEMORY_MODEL
 293        def_bool y
 294        depends on PPC64
 295
 296config ARCH_FLATMEM_ENABLE
 297        def_bool y
 298        depends on (PPC64 && !NUMA) || PPC32
 299
 300config ARCH_SPARSEMEM_ENABLE
 301        def_bool y
 302        depends on PPC64
 303        select SPARSEMEM_VMEMMAP_ENABLE
 304
 305config ARCH_SPARSEMEM_DEFAULT
 306        def_bool y
 307        depends on (SMP && PPC_PSERIES) || PPC_PS3
 308
 309config ARCH_POPULATES_NODE_MAP
 310        def_bool y
 311
 312source "mm/Kconfig"
 313
 314config ARCH_MEMORY_PROBE
 315        def_bool y
 316        depends on MEMORY_HOTPLUG
 317
 318# Some NUMA nodes have memory ranges that span
 319# other nodes.  Even though a pfn is valid and
 320# between a node's start and end pfns, it may not
 321# reside on that node.  See memmap_init_zone()
 322# for details.
 323config NODES_SPAN_OTHER_NODES
 324        def_bool y
 325        depends on NEED_MULTIPLE_NODES
 326
 327config PPC_HAS_HASH_64K
 328        bool
 329        depends on PPC64
 330        default n
 331
 332config PPC_64K_PAGES
 333        bool "64k page size"
 334        depends on PPC64
 335        select PPC_HAS_HASH_64K
 336        help
 337          This option changes the kernel logical page size to 64k. On machines
 338          without processor support for 64k pages, the kernel will simulate
 339          them by loading each individual 4k page on demand transparently,
 340          while on hardware with such support, it will be used to map
 341          normal application pages.
 342
 343config SCHED_SMT
 344        bool "SMT (Hyperthreading) scheduler support"
 345        depends on PPC64 && SMP
 346        help
 347          SMT scheduler support improves the CPU scheduler's decision making
 348          when dealing with POWER5 cpus at a cost of slightly increased
 349          overhead in some places. If unsure say N here.
 350
 351config PROC_DEVICETREE
 352        bool "Support for device tree in /proc"
 353        depends on PROC_FS
 354        help
 355          This option adds a device-tree directory under /proc which contains
 356          an image of the device tree that the kernel copies from Open
 357          Firmware or other boot firmware. If unsure, say Y here.
 358
 359config CMDLINE_BOOL
 360        bool "Default bootloader kernel arguments"
 361
 362config CMDLINE
 363        string "Initial kernel command string"
 364        depends on CMDLINE_BOOL
 365        default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
 366        help
 367          On some platforms, there is currently no way for the boot loader to
 368          pass arguments to the kernel. For these platforms, you can supply
 369          some command-line options at build time by entering them here.  In
 370          most cases you will need to specify the root device here.
 371
 372if !44x || BROKEN
 373source kernel/power/Kconfig
 374endif
 375
 376config SECCOMP
 377        bool "Enable seccomp to safely compute untrusted bytecode"
 378        depends on PROC_FS
 379        default y
 380        help
 381          This kernel feature is useful for number crunching applications
 382          that may need to compute untrusted bytecode during their
 383          execution. By using pipes or other transports made available to
 384          the process as file descriptors supporting the read/write
 385          syscalls, it's possible to isolate those applications in
 386          their own address space using seccomp. Once seccomp is
 387          enabled via /proc/<pid>/seccomp, it cannot be disabled
 388          and the task is only allowed to execute a few safe syscalls
 389          defined by each seccomp mode.
 390
 391          If unsure, say Y. Only embedded should say N here.
 392
 393config WANT_DEVICE_TREE
 394        bool
 395        default n
 396
 397config DEVICE_TREE
 398        string "Static device tree source file"
 399        depends on WANT_DEVICE_TREE
 400        help
 401          This specifies the device tree source (.dts) file to be
 402          compiled and included when building the bootwrapper.  If a
 403          relative filename is given, then it will be relative to
 404          arch/powerpc/boot/dts.  If you are not using the bootwrapper,
 405          or do not need to build a dts into the bootwrapper, this
 406          field is ignored.
 407
 408          For example, this is required when building a cuImage target
 409          for an older U-Boot, which cannot pass a device tree itself.
 410          Such a kernel will not work with a newer U-Boot that tries to
 411          pass a device tree (unless you tell it not to).  If your U-Boot
 412          does not mention a device tree in "help bootm", then use the
 413          cuImage target and specify a device tree here.  Otherwise, use
 414          the uImage target and leave this field blank.
 415
 416endmenu
 417
 418config ISA_DMA_API
 419        bool
 420        default y
 421
 422menu "Bus options"
 423
 424config ISA
 425        bool "Support for ISA-bus hardware"
 426        depends on PPC_PREP || PPC_CHRP
 427        select PPC_I8259
 428        help
 429          Find out whether you have ISA slots on your motherboard.  ISA is the
 430          name of a bus system, i.e. the way the CPU talks to the other stuff
 431          inside your box.  If you have an Apple machine, say N here; if you
 432          have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
 433          you have an embedded board, consult your board documentation.
 434
 435config ZONE_DMA
 436        bool
 437        default y
 438
 439config GENERIC_ISA_DMA
 440        bool
 441        depends on PPC64 || POWER4 || 6xx && !CPM2
 442        default y
 443
 444config PPC_INDIRECT_PCI
 445        bool
 446        depends on PCI
 447        default y if 40x || 44x
 448        default n
 449
 450config EISA
 451        bool
 452
 453config SBUS
 454        bool
 455
 456config FSL_SOC
 457        bool
 458
 459config FSL_PCI
 460        bool
 461        select PPC_INDIRECT_PCI
 462
 463# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
 464config MCA
 465        bool
 466
 467config PCI
 468        bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
 469                || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
 470                || PPC_PS3
 471        default y if !40x && !CPM2 && !8xx && !PPC_83xx \
 472                && !PPC_85xx && !PPC_86xx
 473        default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
 474        default PCI_QSPAN if !4xx && !CPM2 && 8xx
 475        select ARCH_SUPPORTS_MSI
 476        help
 477          Find out whether your system includes a PCI bus. PCI is the name of
 478          a bus system, i.e. the way the CPU talks to the other stuff inside
 479          your box.  If you say Y here, the kernel will include drivers and
 480          infrastructure code to support PCI bus devices.
 481
 482config PCI_DOMAINS
 483        def_bool PCI
 484
 485config PCI_SYSCALL
 486        def_bool PCI
 487
 488config PCI_QSPAN
 489        bool "QSpan PCI"
 490        depends on !4xx && !CPM2 && 8xx
 491        select PPC_I8259
 492        help
 493          Say Y here if you have a system based on a Motorola 8xx-series
 494          embedded processor with a QSPAN PCI interface, otherwise say N.
 495
 496config PCI_8260
 497        bool
 498        depends on PCI && 8260
 499        select PPC_INDIRECT_PCI
 500        default y
 501
 502config 8260_PCI9
 503        bool "Enable workaround for MPC826x erratum PCI 9"
 504        depends on PCI_8260 && !8272
 505        default y
 506
 507choice
 508        prompt "IDMA channel for PCI 9 workaround"
 509        depends on 8260_PCI9
 510
 511config 8260_PCI9_IDMA1
 512        bool "IDMA1"
 513
 514config 8260_PCI9_IDMA2
 515        bool "IDMA2"
 516
 517config 8260_PCI9_IDMA3
 518        bool "IDMA3"
 519
 520config 8260_PCI9_IDMA4
 521        bool "IDMA4"
 522
 523endchoice
 524
 525source "drivers/pci/pcie/Kconfig"
 526
 527source "drivers/pci/Kconfig"
 528
 529source "drivers/pcmcia/Kconfig"
 530
 531source "drivers/pci/hotplug/Kconfig"
 532
 533endmenu
 534
 535menu "Advanced setup"
 536        depends on PPC32
 537
 538config ADVANCED_OPTIONS
 539        bool "Prompt for advanced kernel configuration options"
 540        help
 541          This option will enable prompting for a variety of advanced kernel
 542          configuration options.  These options can cause the kernel to not
 543          work if they are set incorrectly, but can be used to optimize certain
 544          aspects of kernel memory management.
 545
 546          Unless you know what you are doing, say N here.
 547
 548comment "Default settings for advanced configuration options are used"
 549        depends on !ADVANCED_OPTIONS
 550
 551config HIGHMEM_START_BOOL
 552        bool "Set high memory pool address"
 553        depends on ADVANCED_OPTIONS && HIGHMEM
 554        help
 555          This option allows you to set the base address of the kernel virtual
 556          area used to map high memory pages.  This can be useful in
 557          optimizing the layout of kernel virtual memory.
 558
 559          Say N here unless you know what you are doing.
 560
 561config HIGHMEM_START
 562        hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
 563        default "0xfe000000"
 564
 565config LOWMEM_SIZE_BOOL
 566        bool "Set maximum low memory"
 567        depends on ADVANCED_OPTIONS
 568        help
 569          This option allows you to set the maximum amount of memory which
 570          will be used as "low memory", that is, memory which the kernel can
 571          access directly, without having to set up a kernel virtual mapping.
 572          This can be useful in optimizing the layout of kernel virtual
 573          memory.
 574
 575          Say N here unless you know what you are doing.
 576
 577config LOWMEM_SIZE
 578        hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
 579        default "0x30000000"
 580
 581config KERNEL_START_BOOL
 582        bool "Set custom kernel base address"
 583        depends on ADVANCED_OPTIONS
 584        help
 585          This option allows you to set the kernel virtual address at which
 586          the kernel will map low memory (the kernel image will be linked at
 587          this address).  This can be useful in optimizing the virtual memory
 588          layout of the system.
 589
 590          Say N here unless you know what you are doing.
 591
 592config KERNEL_START
 593        hex "Virtual address of kernel base" if KERNEL_START_BOOL
 594        default "0xc0000000"
 595
 596config TASK_SIZE_BOOL
 597        bool "Set custom user task size"
 598        depends on ADVANCED_OPTIONS
 599        help
 600          This option allows you to set the amount of virtual address space
 601          allocated to user tasks.  This can be useful in optimizing the
 602          virtual memory layout of the system.
 603
 604          Say N here unless you know what you are doing.
 605
 606config TASK_SIZE
 607        hex "Size of user task space" if TASK_SIZE_BOOL
 608        default "0x80000000" if PPC_PREP || PPC_8xx
 609        default "0xc0000000"
 610
 611config CONSISTENT_START_BOOL
 612        bool "Set custom consistent memory pool address"
 613        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
 614        help
 615          This option allows you to set the base virtual address
 616          of the consistent memory pool.  This pool of virtual
 617          memory is used to make consistent memory allocations.
 618
 619config CONSISTENT_START
 620        hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
 621        default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
 622        default "0xff100000" if NOT_COHERENT_CACHE
 623
 624config CONSISTENT_SIZE_BOOL
 625        bool "Set custom consistent memory pool size"
 626        depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
 627        help
 628          This option allows you to set the size of the
 629          consistent memory pool.  This pool of virtual memory
 630          is used to make consistent memory allocations.
 631
 632config CONSISTENT_SIZE
 633        hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
 634        default "0x00200000" if NOT_COHERENT_CACHE
 635
 636config BOOT_LOAD_BOOL
 637        bool "Set the boot link/load address"
 638        depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
 639        help
 640          This option allows you to set the initial load address of the zImage
 641          or zImage.initrd file.  This can be useful if you are on a board
 642          which has a small amount of memory.
 643
 644          Say N here unless you know what you are doing.
 645
 646config BOOT_LOAD
 647        hex "Link/load address for booting" if BOOT_LOAD_BOOL
 648        default "0x00400000" if 40x || 8xx || 8260
 649        default "0x01000000" if 44x
 650        default "0x00800000"
 651
 652config PIN_TLB
 653        bool "Pinned Kernel TLBs (860 ONLY)"
 654        depends on ADVANCED_OPTIONS && 8xx
 655endmenu
 656
 657if PPC64
 658config KERNEL_START
 659        hex
 660        default "0xc000000000000000"
 661endif
 662
 663source "net/Kconfig"
 664
 665source "drivers/Kconfig"
 666
 667source "fs/Kconfig"
 668
 669# XXX source "arch/ppc/8xx_io/Kconfig"
 670
 671# XXX source "arch/ppc/8260_io/Kconfig"
 672
 673source "arch/powerpc/sysdev/qe_lib/Kconfig"
 674
 675source "lib/Kconfig"
 676
 677source "kernel/Kconfig.instrumentation"
 678
 679source "arch/powerpc/Kconfig.debug"
 680
 681source "security/Kconfig"
 682
 683config KEYS_COMPAT
 684        bool
 685        depends on COMPAT && KEYS
 686        default y
 687
 688source "crypto/Kconfig"
 689
 690config PPC_CLOCK
 691        bool
 692        default n
 693
 694config PPC_LIB_RHEAP
 695        bool
 696
 697