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