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