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