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