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 select SPARSEMEM_VMEMMAP_ENABLE 299 300config ARCH_SPARSEMEM_DEFAULT 301 def_bool y 302 depends on (SMP && PPC_PSERIES) || PPC_PS3 303 304config ARCH_POPULATES_NODE_MAP 305 def_bool y 306 307source "mm/Kconfig" 308 309config ARCH_MEMORY_PROBE 310 def_bool y 311 depends on MEMORY_HOTPLUG 312 313# Some NUMA nodes have memory ranges that span 314# other nodes. Even though a pfn is valid and 315# between a node's start and end pfns, it may not 316# reside on that node. See memmap_init_zone() 317# for details. 318config NODES_SPAN_OTHER_NODES 319 def_bool y 320 depends on NEED_MULTIPLE_NODES 321 322config PPC_HAS_HASH_64K 323 bool 324 depends on PPC64 325 default n 326 327config PPC_64K_PAGES 328 bool "64k page size" 329 depends on PPC64 330 select PPC_HAS_HASH_64K 331 help 332 This option changes the kernel logical page size to 64k. On machines 333 without processor support for 64k pages, the kernel will simulate 334 them by loading each individual 4k page on demand transparently, 335 while on hardware with such support, it will be used to map 336 normal application pages. 337 338config SCHED_SMT 339 bool "SMT (Hyperthreading) scheduler support" 340 depends on PPC64 && SMP 341 help 342 SMT scheduler support improves the CPU scheduler's decision making 343 when dealing with POWER5 cpus at a cost of slightly increased 344 overhead in some places. If unsure say N here. 345 346config PROC_DEVICETREE 347 bool "Support for device tree in /proc" 348 depends on PROC_FS 349 help 350 This option adds a device-tree directory under /proc which contains 351 an image of the device tree that the kernel copies from Open 352 Firmware or other boot firmware. If unsure, say Y here. 353 354config CMDLINE_BOOL 355 bool "Default bootloader kernel arguments" 356 357config CMDLINE 358 string "Initial kernel command string" 359 depends on CMDLINE_BOOL 360 default "console=ttyS0,9600 console=tty0 root=/dev/sda2" 361 help 362 On some platforms, there is currently no way for the boot loader to 363 pass arguments to the kernel. For these platforms, you can supply 364 some command-line options at build time by entering them here. In 365 most cases you will need to specify the root device here. 366 367if !44x || BROKEN 368source kernel/power/Kconfig 369endif 370 371config SECCOMP 372 bool "Enable seccomp to safely compute untrusted bytecode" 373 depends on PROC_FS 374 default y 375 help 376 This kernel feature is useful for number crunching applications 377 that may need to compute untrusted bytecode during their 378 execution. By using pipes or other transports made available to 379 the process as file descriptors supporting the read/write 380 syscalls, it's possible to isolate those applications in 381 their own address space using seccomp. Once seccomp is 382 enabled via /proc/<pid>/seccomp, it cannot be disabled 383 and the task is only allowed to execute a few safe syscalls 384 defined by each seccomp mode. 385 386 If unsure, say Y. Only embedded should say N here. 387 388config WANT_DEVICE_TREE 389 bool 390 default n 391 392config DEVICE_TREE 393 string "Static device tree source file" 394 depends on WANT_DEVICE_TREE 395 help 396 This specifies the device tree source (.dts) file to be 397 compiled and included when building the bootwrapper. If a 398 relative filename is given, then it will be relative to 399 arch/powerpc/boot/dts. If you are not using the bootwrapper, 400 or do not need to build a dts into the bootwrapper, this 401 field is ignored. 402 403 For example, this is required when building a cuImage target 404 for an older U-Boot, which cannot pass a device tree itself. 405 Such a kernel will not work with a newer U-Boot that tries to 406 pass a device tree (unless you tell it not to). If your U-Boot 407 does not mention a device tree in "help bootm", then use the 408 cuImage target and specify a device tree here. Otherwise, use 409 the uImage target and leave this field blank. 410 411endmenu 412 413config ISA_DMA_API 414 bool 415 default y 416 417menu "Bus options" 418 419config ISA 420 bool "Support for ISA-bus hardware" 421 depends on PPC_PREP || PPC_CHRP 422 select PPC_I8259 423 help 424 Find out whether you have ISA slots on your motherboard. ISA is the 425 name of a bus system, i.e. the way the CPU talks to the other stuff 426 inside your box. If you have an Apple machine, say N here; if you 427 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If 428 you have an embedded board, consult your board documentation. 429 430config ZONE_DMA 431 bool 432 default y 433 434config GENERIC_ISA_DMA 435 bool 436 depends on PPC64 || POWER4 || 6xx && !CPM2 437 default y 438 439config PPC_INDIRECT_PCI 440 bool 441 depends on PCI 442 default y if 40x || 44x 443 default n 444 445config EISA 446 bool 447 448config SBUS 449 bool 450 451config FSL_SOC 452 bool 453 454config FSL_PCI 455 bool 456 select PPC_INDIRECT_PCI 457 458# Yes MCA RS/6000s exist but Linux-PPC does not currently support any 459config MCA 460 bool 461 462config PCI 463 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \ 464 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \ 465 || PPC_PS3 466 default y if !40x && !CPM2 && !8xx && !PPC_83xx \ 467 && !PPC_85xx && !PPC_86xx 468 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx 469 default PCI_QSPAN if !4xx && !CPM2 && 8xx 470 select ARCH_SUPPORTS_MSI 471 help 472 Find out whether your system includes a PCI bus. PCI is the name of 473 a bus system, i.e. the way the CPU talks to the other stuff inside 474 your box. If you say Y here, the kernel will include drivers and 475 infrastructure code to support PCI bus devices. 476 477config PCI_DOMAINS 478 def_bool PCI 479 480config PCI_SYSCALL 481 def_bool PCI 482 483config PCI_QSPAN 484 bool "QSpan PCI" 485 depends on !4xx && !CPM2 && 8xx 486 select PPC_I8259 487 help 488 Say Y here if you have a system based on a Motorola 8xx-series 489 embedded processor with a QSPAN PCI interface, otherwise say N. 490 491config PCI_8260 492 bool 493 depends on PCI && 8260 494 select PPC_INDIRECT_PCI 495 default y 496 497config 8260_PCI9 498 bool "Enable workaround for MPC826x erratum PCI 9" 499 depends on PCI_8260 && !8272 500 default y 501 502choice 503 prompt "IDMA channel for PCI 9 workaround" 504 depends on 8260_PCI9 505 506config 8260_PCI9_IDMA1 507 bool "IDMA1" 508 509config 8260_PCI9_IDMA2 510 bool "IDMA2" 511 512config 8260_PCI9_IDMA3 513 bool "IDMA3" 514 515config 8260_PCI9_IDMA4 516 bool "IDMA4" 517 518endchoice 519 520source "drivers/pci/pcie/Kconfig" 521 522source "drivers/pci/Kconfig" 523 524source "drivers/pcmcia/Kconfig" 525 526source "drivers/pci/hotplug/Kconfig" 527 528endmenu 529 530menu "Advanced setup" 531 depends on PPC32 532 533config ADVANCED_OPTIONS 534 bool "Prompt for advanced kernel configuration options" 535 help 536 This option will enable prompting for a variety of advanced kernel 537 configuration options. These options can cause the kernel to not 538 work if they are set incorrectly, but can be used to optimize certain 539 aspects of kernel memory management. 540 541 Unless you know what you are doing, say N here. 542 543comment "Default settings for advanced configuration options are used" 544 depends on !ADVANCED_OPTIONS 545 546config HIGHMEM_START_BOOL 547 bool "Set high memory pool address" 548 depends on ADVANCED_OPTIONS && HIGHMEM 549 help 550 This option allows you to set the base address of the kernel virtual 551 area used to map high memory pages. This can be useful in 552 optimizing the layout of kernel virtual memory. 553 554 Say N here unless you know what you are doing. 555 556config HIGHMEM_START 557 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL 558 default "0xfe000000" 559 560config LOWMEM_SIZE_BOOL 561 bool "Set maximum low memory" 562 depends on ADVANCED_OPTIONS 563 help 564 This option allows you to set the maximum amount of memory which 565 will be used as "low memory", that is, memory which the kernel can 566 access directly, without having to set up a kernel virtual mapping. 567 This can be useful in optimizing the layout of kernel virtual 568 memory. 569 570 Say N here unless you know what you are doing. 571 572config LOWMEM_SIZE 573 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 574 default "0x30000000" 575 576config KERNEL_START_BOOL 577 bool "Set custom kernel base address" 578 depends on ADVANCED_OPTIONS 579 help 580 This option allows you to set the kernel virtual address at which 581 the kernel will map low memory (the kernel image will be linked at 582 this address). This can be useful in optimizing the virtual memory 583 layout of the system. 584 585 Say N here unless you know what you are doing. 586 587config KERNEL_START 588 hex "Virtual address of kernel base" if KERNEL_START_BOOL 589 default "0xc0000000" 590 591config TASK_SIZE_BOOL 592 bool "Set custom user task size" 593 depends on ADVANCED_OPTIONS 594 help 595 This option allows you to set the amount of virtual address space 596 allocated to user tasks. This can be useful in optimizing the 597 virtual memory layout of the system. 598 599 Say N here unless you know what you are doing. 600 601config TASK_SIZE 602 hex "Size of user task space" if TASK_SIZE_BOOL 603 default "0x80000000" if PPC_PREP || PPC_8xx 604 default "0xc0000000" 605 606config CONSISTENT_START_BOOL 607 bool "Set custom consistent memory pool address" 608 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE 609 help 610 This option allows you to set the base virtual address 611 of the consistent memory pool. This pool of virtual 612 memory is used to make consistent memory allocations. 613 614config CONSISTENT_START 615 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL 616 default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx) 617 default "0xff100000" if NOT_COHERENT_CACHE 618 619config CONSISTENT_SIZE_BOOL 620 bool "Set custom consistent memory pool size" 621 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE 622 help 623 This option allows you to set the size of the 624 consistent memory pool. This pool of virtual memory 625 is used to make consistent memory allocations. 626 627config CONSISTENT_SIZE 628 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL 629 default "0x00200000" if NOT_COHERENT_CACHE 630 631config BOOT_LOAD_BOOL 632 bool "Set the boot link/load address" 633 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM 634 help 635 This option allows you to set the initial load address of the zImage 636 or zImage.initrd file. This can be useful if you are on a board 637 which has a small amount of memory. 638 639 Say N here unless you know what you are doing. 640 641config BOOT_LOAD 642 hex "Link/load address for booting" if BOOT_LOAD_BOOL 643 default "0x00400000" if 40x || 8xx || 8260 644 default "0x01000000" if 44x 645 default "0x00800000" 646 647config PIN_TLB 648 bool "Pinned Kernel TLBs (860 ONLY)" 649 depends on ADVANCED_OPTIONS && 8xx 650endmenu 651 652if PPC64 653config KERNEL_START 654 hex 655 default "0xc000000000000000" 656endif 657 658source "net/Kconfig" 659 660source "drivers/Kconfig" 661 662source "fs/Kconfig" 663 664# XXX source "arch/ppc/8xx_io/Kconfig" 665 666# XXX source "arch/ppc/8260_io/Kconfig" 667 668source "arch/powerpc/sysdev/qe_lib/Kconfig" 669 670source "lib/Kconfig" 671 672source "kernel/Kconfig.instrumentation" 673 674source "arch/powerpc/Kconfig.debug" 675 676source "security/Kconfig" 677 678config KEYS_COMPAT 679 bool 680 depends on COMPAT && KEYS 681 default y 682 683source "crypto/Kconfig" 684 685config PPC_CLOCK 686 bool 687 default n 688 689config PPC_LIB_RHEAP 690 bool 691 692