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