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