1source "arch/powerpc/platforms/Kconfig.cputype" 2 3config PPC32 4 bool 5 default y if !PPC64 6 7config 32BIT 8 bool 9 default y if PPC32 10 11config 64BIT 12 bool 13 default y if PPC64 14 15config ARCH_PHYS_ADDR_T_64BIT 16 def_bool PPC64 || PHYS_64BIT 17 18config ARCH_DMA_ADDR_T_64BIT 19 def_bool ARCH_PHYS_ADDR_T_64BIT 20 21config MMU 22 bool 23 default y 24 25config ARCH_MMAP_RND_BITS_MAX 26 # On Book3S 64, the default virtual address space for 64-bit processes 27 # is 2^47 (128TB). As a maximum, allow randomisation to consume up to 28 # 32T of address space (2^45), which should ensure a reasonable gap 29 # between bottom-up and top-down allocations for applications that 30 # consume "normal" amounts of address space. Book3S 64 only supports 64K 31 # and 4K page sizes. 32 default 29 if PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K) 33 default 33 if PPC_BOOK3S_64 # 33 = 45 (32T) - 12 (4K) 34 # 35 # On all other 64-bit platforms (currently only Book3E), the virtual 36 # address space is 2^46 (64TB). Allow randomisation to consume up to 16T 37 # of address space (2^44). Only 4K page sizes are supported. 38 default 32 if 64BIT # 32 = 44 (16T) - 12 (4K) 39 # 40 # For 32-bit, use the compat values, as they're the same. 41 default ARCH_MMAP_RND_COMPAT_BITS_MAX 42 43config ARCH_MMAP_RND_BITS_MIN 44 # Allow randomisation to consume up to 1GB of address space (2^30). 45 default 14 if 64BIT && PPC_64K_PAGES # 14 = 30 (1GB) - 16 (64K) 46 default 18 if 64BIT # 18 = 30 (1GB) - 12 (4K) 47 # 48 # For 32-bit, use the compat values, as they're the same. 49 default ARCH_MMAP_RND_COMPAT_BITS_MIN 50 51config ARCH_MMAP_RND_COMPAT_BITS_MAX 52 # Total virtual address space for 32-bit processes is 2^31 (2GB). 53 # Allow randomisation to consume up to 512MB of address space (2^29). 54 default 11 if PPC_256K_PAGES # 11 = 29 (512MB) - 18 (256K) 55 default 13 if PPC_64K_PAGES # 13 = 29 (512MB) - 16 (64K) 56 default 15 if PPC_16K_PAGES # 15 = 29 (512MB) - 14 (16K) 57 default 17 # 17 = 29 (512MB) - 12 (4K) 58 59config ARCH_MMAP_RND_COMPAT_BITS_MIN 60 # Total virtual address space for 32-bit processes is 2^31 (2GB). 61 # Allow randomisation to consume up to 8MB of address space (2^23). 62 default 5 if PPC_256K_PAGES # 5 = 23 (8MB) - 18 (256K) 63 default 7 if PPC_64K_PAGES # 7 = 23 (8MB) - 16 (64K) 64 default 9 if PPC_16K_PAGES # 9 = 23 (8MB) - 14 (16K) 65 default 11 # 11 = 23 (8MB) - 12 (4K) 66 67config HAVE_SETUP_PER_CPU_AREA 68 def_bool PPC64 69 70config NEED_PER_CPU_EMBED_FIRST_CHUNK 71 def_bool PPC64 72 73config NR_IRQS 74 int "Number of virtual interrupt numbers" 75 range 32 32768 76 default "512" 77 help 78 This defines the number of virtual interrupt numbers the kernel 79 can manage. Virtual interrupt numbers are what you see in 80 /proc/interrupts. If you configure your system to have too few, 81 drivers will fail to load or worse - handle with care. 82 83config NMI_IPI 84 bool 85 depends on SMP && (DEBUGGER || KEXEC_CORE) 86 default y 87 88config STACKTRACE_SUPPORT 89 bool 90 default y 91 92config TRACE_IRQFLAGS_SUPPORT 93 bool 94 default y 95 96config LOCKDEP_SUPPORT 97 bool 98 default y 99 100config RWSEM_GENERIC_SPINLOCK 101 bool 102 103config RWSEM_XCHGADD_ALGORITHM 104 bool 105 default y 106 107config GENERIC_LOCKBREAK 108 bool 109 default y 110 depends on SMP && PREEMPT 111 112config ARCH_HAS_ILOG2_U32 113 bool 114 default y 115 116config ARCH_HAS_ILOG2_U64 117 bool 118 default y if 64BIT 119 120config GENERIC_HWEIGHT 121 bool 122 default y 123 124config ARCH_HAS_DMA_SET_COHERENT_MASK 125 bool 126 127config PPC 128 bool 129 default y 130 # 131 # Please keep this list sorted alphabetically. 132 # 133 select ARCH_HAS_DEVMEM_IS_ALLOWED 134 select ARCH_HAS_DMA_SET_COHERENT_MASK 135 select ARCH_HAS_ELF_RANDOMIZE 136 select ARCH_HAS_GCOV_PROFILE_ALL 137 select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE 138 select ARCH_HAS_SG_CHAIN 139 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 140 select ARCH_HAS_UBSAN_SANITIZE_ALL 141 select ARCH_HAVE_NMI_SAFE_CMPXCHG 142 select ARCH_MIGHT_HAVE_PC_PARPORT 143 select ARCH_MIGHT_HAVE_PC_SERIO 144 select ARCH_SUPPORTS_ATOMIC_RMW 145 select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT 146 select ARCH_USE_BUILTIN_BSWAP 147 select ARCH_USE_CMPXCHG_LOCKREF if PPC64 148 select ARCH_WANT_IPC_PARSE_VERSION 149 select ARCH_WEAK_RELEASE_ACQUIRE 150 select BINFMT_ELF 151 select BUILDTIME_EXTABLE_SORT 152 select CLONE_BACKWARDS 153 select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN 154 select EDAC_ATOMIC_SCRUB 155 select EDAC_SUPPORT 156 select GENERIC_ATOMIC64 if PPC32 157 select GENERIC_CLOCKEVENTS 158 select GENERIC_CLOCKEVENTS_BROADCAST if SMP 159 select GENERIC_CMOS_UPDATE 160 select GENERIC_CPU_AUTOPROBE 161 select GENERIC_IRQ_SHOW 162 select GENERIC_IRQ_SHOW_LEVEL 163 select GENERIC_SMP_IDLE_THREAD 164 select GENERIC_STRNCPY_FROM_USER 165 select GENERIC_STRNLEN_USER 166 select GENERIC_TIME_VSYSCALL_OLD 167 select HAVE_ARCH_AUDITSYSCALL 168 select HAVE_ARCH_JUMP_LABEL 169 select HAVE_ARCH_KGDB 170 select HAVE_ARCH_MMAP_RND_BITS 171 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT 172 select HAVE_ARCH_SECCOMP_FILTER 173 select HAVE_ARCH_TRACEHOOK 174 select HAVE_CBPF_JIT if !PPC64 175 select HAVE_CONTEXT_TRACKING if PPC64 176 select HAVE_DEBUG_KMEMLEAK 177 select HAVE_DEBUG_STACKOVERFLOW 178 select HAVE_DMA_API_DEBUG 179 select HAVE_DYNAMIC_FTRACE 180 select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL 181 select HAVE_EBPF_JIT if PPC64 182 select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU) 183 select HAVE_FTRACE_MCOUNT_RECORD 184 select HAVE_FUNCTION_GRAPH_TRACER 185 select HAVE_FUNCTION_TRACER 186 select HAVE_GCC_PLUGINS 187 select HAVE_GENERIC_RCU_GUP 188 select HAVE_HW_BREAKPOINT if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx) 189 select HAVE_IDE 190 select HAVE_IOREMAP_PROT 191 select HAVE_IRQ_EXIT_ON_IRQ_STACK 192 select HAVE_KERNEL_GZIP 193 select HAVE_KPROBES 194 select HAVE_KPROBES_ON_FTRACE 195 select HAVE_KRETPROBES 196 select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS 197 select HAVE_MEMBLOCK 198 select HAVE_MEMBLOCK_NODE_MAP 199 select HAVE_MOD_ARCH_SPECIFIC 200 select HAVE_NMI if PERF_EVENTS 201 select HAVE_OPROFILE 202 select HAVE_OPTPROBES if PPC64 203 select HAVE_PERF_EVENTS 204 select HAVE_PERF_EVENTS_NMI if PPC64 205 select HAVE_PERF_REGS 206 select HAVE_PERF_USER_STACK_DUMP 207 select HAVE_RCU_TABLE_FREE if SMP 208 select HAVE_REGS_AND_STACK_ACCESS_API 209 select HAVE_SYSCALL_TRACEPOINTS 210 select HAVE_VIRT_CPU_ACCOUNTING 211 select IRQ_DOMAIN 212 select IRQ_FORCED_THREADING 213 select MODULES_USE_ELF_RELA 214 select NO_BOOTMEM 215 select OF 216 select OF_EARLY_FLATTREE 217 select OF_RESERVED_MEM 218 select OLD_SIGACTION if PPC32 219 select OLD_SIGSUSPEND 220 select SPARSE_IRQ 221 select SYSCTL_EXCEPTION_TRACE 222 select VIRT_TO_BUS if !PPC64 223 # 224 # Please keep this list sorted alphabetically. 225 # 226 227config GENERIC_CSUM 228 def_bool n 229 230config EARLY_PRINTK 231 bool 232 default y 233 234config PANIC_TIMEOUT 235 int 236 default 180 237 238config COMPAT 239 bool 240 default y if PPC64 241 select COMPAT_BINFMT_ELF 242 select ARCH_WANT_OLD_COMPAT_IPC 243 select COMPAT_OLD_SIGACTION 244 245config SYSVIPC_COMPAT 246 bool 247 depends on COMPAT && SYSVIPC 248 default y 249 250# All PPC32s use generic nvram driver through ppc_md 251config GENERIC_NVRAM 252 bool 253 default y if PPC32 254 255config SCHED_OMIT_FRAME_POINTER 256 bool 257 default y 258 259config ARCH_MAY_HAVE_PC_FDC 260 bool 261 default PCI 262 263config PPC_UDBG_16550 264 bool 265 default n 266 267config GENERIC_TBSYNC 268 bool 269 default y if PPC32 && SMP 270 default n 271 272config AUDIT_ARCH 273 bool 274 default y 275 276config GENERIC_BUG 277 bool 278 default y 279 depends on BUG 280 281config SYS_SUPPORTS_APM_EMULATION 282 default y if PMAC_APM_EMU 283 bool 284 285config EPAPR_BOOT 286 bool 287 help 288 Used to allow a board to specify it wants an ePAPR compliant wrapper. 289 default n 290 291config DEFAULT_UIMAGE 292 bool 293 help 294 Used to allow a board to specify it wants a uImage built by default 295 default n 296 297config ARCH_HIBERNATION_POSSIBLE 298 bool 299 default y 300 301config ARCH_SUSPEND_POSSIBLE 302 def_bool y 303 depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ 304 (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \ 305 || 44x || 40x 306 307config PPC_DCR_NATIVE 308 bool 309 default n 310 311config PPC_DCR_MMIO 312 bool 313 default n 314 315config PPC_DCR 316 bool 317 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO 318 default y 319 320config PPC_OF_PLATFORM_PCI 321 bool 322 depends on PCI 323 depends on PPC64 # not supported on 32 bits yet 324 default n 325 326config ARCH_SUPPORTS_DEBUG_PAGEALLOC 327 depends on PPC32 || PPC_STD_MMU_64 328 def_bool y 329 330config ARCH_SUPPORTS_UPROBES 331 def_bool y 332 333config PPC_ADV_DEBUG_REGS 334 bool 335 depends on 40x || BOOKE 336 default y 337 338config PPC_ADV_DEBUG_IACS 339 int 340 depends on PPC_ADV_DEBUG_REGS 341 default 4 if 44x 342 default 2 343 344config PPC_ADV_DEBUG_DACS 345 int 346 depends on PPC_ADV_DEBUG_REGS 347 default 2 348 349config PPC_ADV_DEBUG_DVCS 350 int 351 depends on PPC_ADV_DEBUG_REGS 352 default 2 if 44x 353 default 0 354 355config PPC_ADV_DEBUG_DAC_RANGE 356 bool 357 depends on PPC_ADV_DEBUG_REGS && 44x 358 default y 359 360config PPC_EMULATE_SSTEP 361 bool 362 default y if KPROBES || UPROBES || XMON || HAVE_HW_BREAKPOINT 363 364config ZONE_DMA32 365 bool 366 default y if PPC64 367 368config PGTABLE_LEVELS 369 int 370 default 2 if !PPC64 371 default 3 if PPC_64K_PAGES && !PPC_BOOK3S_64 372 default 4 373 374source "init/Kconfig" 375 376source "kernel/Kconfig.freezer" 377 378source "arch/powerpc/sysdev/Kconfig" 379source "arch/powerpc/platforms/Kconfig" 380 381menu "Kernel options" 382 383config PPC_DT_CPU_FTRS 384 bool "Device-tree based CPU feature discovery & setup" 385 depends on PPC_BOOK3S_64 386 default n 387 help 388 This enables code to use a new device tree binding for describing CPU 389 compatibility and features. Saying Y here will attempt to use the new 390 binding if the firmware provides it. Currently only the skiboot 391 firmware provides this binding. 392 If you're not sure say Y. 393 394config PPC_CPUFEATURES_ENABLE_UNKNOWN 395 bool "cpufeatures pass through unknown features to guest/userspace" 396 depends on PPC_DT_CPU_FTRS 397 default y 398 399config HIGHMEM 400 bool "High memory support" 401 depends on PPC32 402 403source kernel/Kconfig.hz 404source kernel/Kconfig.preempt 405source "fs/Kconfig.binfmt" 406 407config HUGETLB_PAGE_SIZE_VARIABLE 408 bool 409 depends on HUGETLB_PAGE 410 default y 411 412config MATH_EMULATION 413 bool "Math emulation" 414 depends on 4xx || 8xx || PPC_MPC832x || BOOKE 415 ---help--- 416 Some PowerPC chips designed for embedded applications do not have 417 a floating-point unit and therefore do not implement the 418 floating-point instructions in the PowerPC instruction set. If you 419 say Y here, the kernel will include code to emulate a floating-point 420 unit, which will allow programs that use floating-point 421 instructions to run. 422 423 This is also useful to emulate missing (optional) instructions 424 such as fsqrt on cores that do have an FPU but do not implement 425 them (such as Freescale BookE). 426 427choice 428 prompt "Math emulation options" 429 default MATH_EMULATION_FULL 430 depends on MATH_EMULATION 431 432config MATH_EMULATION_FULL 433 bool "Emulate all the floating point instructions" 434 ---help--- 435 Select this option will enable the kernel to support to emulate 436 all the floating point instructions. If your SoC doesn't have 437 a FPU, you should select this. 438 439config MATH_EMULATION_HW_UNIMPLEMENTED 440 bool "Just emulate the FPU unimplemented instructions" 441 ---help--- 442 Select this if you know there does have a hardware FPU on your 443 SoC, but some floating point instructions are not implemented by that. 444 445endchoice 446 447config PPC_TRANSACTIONAL_MEM 448 bool "Transactional Memory support for POWERPC" 449 depends on PPC_BOOK3S_64 450 depends on SMP 451 select ALTIVEC 452 select VSX 453 default n 454 ---help--- 455 Support user-mode Transactional Memory on POWERPC. 456 457config DISABLE_MPROFILE_KERNEL 458 bool "Disable use of mprofile-kernel for kernel tracing" 459 depends on PPC64 && CPU_LITTLE_ENDIAN 460 default y 461 help 462 Selecting this options disables use of the mprofile-kernel ABI for 463 kernel tracing. That will cause options such as live patching 464 (CONFIG_LIVEPATCH) which depend on CONFIG_DYNAMIC_FTRACE_WITH_REGS to 465 be disabled also. 466 467 If you have a toolchain which supports mprofile-kernel, then you can 468 disable this. Otherwise leave it enabled. If you're not sure, say 469 "Y". 470 471config MPROFILE_KERNEL 472 depends on PPC64 && CPU_LITTLE_ENDIAN 473 def_bool !DISABLE_MPROFILE_KERNEL 474 475config USE_THIN_ARCHIVES 476 bool "Build the kernel using thin archives" 477 default n 478 select THIN_ARCHIVES 479 help 480 Build the kernel using thin archives. 481 If you're unsure say N. 482 483config IOMMU_HELPER 484 def_bool PPC64 485 486config SWIOTLB 487 bool "SWIOTLB support" 488 default n 489 select IOMMU_HELPER 490 ---help--- 491 Support for IO bounce buffering for systems without an IOMMU. 492 This allows us to DMA to the full physical address space on 493 platforms where the size of a physical address is larger 494 than the bus address. Not all platforms support this. 495 496config HOTPLUG_CPU 497 bool "Support for enabling/disabling CPUs" 498 depends on SMP && (PPC_PSERIES || \ 499 PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE) 500 ---help--- 501 Say Y here to be able to disable and re-enable individual 502 CPUs at runtime on SMP machines. 503 504 Say N if you are unsure. 505 506config ARCH_CPU_PROBE_RELEASE 507 def_bool y 508 depends on HOTPLUG_CPU 509 510config ARCH_ENABLE_MEMORY_HOTPLUG 511 def_bool y 512 513config ARCH_HAS_WALK_MEMORY 514 def_bool y 515 516config ARCH_ENABLE_MEMORY_HOTREMOVE 517 def_bool y 518 519config PPC64_SUPPORTS_MEMORY_FAILURE 520 bool "Add support for memory hwpoison" 521 depends on PPC_BOOK3S_64 522 default "y" if PPC_POWERNV 523 select ARCH_SUPPORTS_MEMORY_FAILURE 524 525config KEXEC 526 bool "kexec system call" 527 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E 528 select KEXEC_CORE 529 help 530 kexec is a system call that implements the ability to shutdown your 531 current kernel, and to start another kernel. It is like a reboot 532 but it is independent of the system firmware. And like a reboot 533 you can start any kernel with it, not just Linux. 534 535 The name comes from the similarity to the exec system call. 536 537 It is an ongoing process to be certain the hardware in a machine 538 is properly shutdown, so do not be surprised if this code does not 539 initially work for you. As of this writing the exact hardware 540 interface is strongly in flux, so no good recommendation can be 541 made. 542 543config KEXEC_FILE 544 bool "kexec file based system call" 545 select KEXEC_CORE 546 select HAVE_IMA_KEXEC 547 select BUILD_BIN2C 548 depends on PPC64 549 depends on CRYPTO=y 550 depends on CRYPTO_SHA256=y 551 help 552 This is a new version of the kexec system call. This call is 553 file based and takes in file descriptors as system call arguments 554 for kernel and initramfs as opposed to a list of segments as is the 555 case for the older kexec call. 556 557config RELOCATABLE 558 bool "Build a relocatable kernel" 559 depends on PPC64 || (FLATMEM && (44x || FSL_BOOKE)) 560 select NONSTATIC_KERNEL 561 select MODULE_REL_CRCS if MODVERSIONS 562 help 563 This builds a kernel image that is capable of running at the 564 location the kernel is loaded at. For ppc32, there is no any 565 alignment restrictions, and this feature is a superset of 566 DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use 567 16k-aligned base address. The kernel is linked as a 568 position-independent executable (PIE) and contains dynamic relocations 569 which are processed early in the bootup process. 570 571 One use is for the kexec on panic case where the recovery kernel 572 must live at a different physical address than the primary 573 kernel. 574 575 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 576 it has been loaded at and the compile time physical addresses 577 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START 578 setting can still be useful to bootwrappers that need to know the 579 load address of the kernel (eg. u-boot/mkimage). 580 581config RELOCATABLE_TEST 582 bool "Test relocatable kernel" 583 depends on (PPC64 && RELOCATABLE) 584 default n 585 help 586 This runs the relocatable kernel at the address it was initially 587 loaded at, which tends to be non-zero and therefore test the 588 relocation code. 589 590config CRASH_DUMP 591 bool "Build a dump capture kernel" 592 depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP) 593 select RELOCATABLE if PPC64 || 44x || FSL_BOOKE 594 help 595 Build a kernel suitable for use as a dump capture kernel. 596 The same kernel binary can be used as production kernel and dump 597 capture kernel. 598 599config FA_DUMP 600 bool "Firmware-assisted dump" 601 depends on PPC64 && PPC_RTAS 602 select CRASH_CORE 603 select CRASH_DUMP 604 help 605 A robust mechanism to get reliable kernel crash dump with 606 assistance from firmware. This approach does not use kexec, 607 instead firmware assists in booting the capture kernel 608 while preserving memory contents. Firmware-assisted dump 609 is meant to be a kdump replacement offering robustness and 610 speed not possible without system firmware assistance. 611 612 If unsure, say "N" 613 614config IRQ_ALL_CPUS 615 bool "Distribute interrupts on all CPUs by default" 616 depends on SMP 617 help 618 This option gives the kernel permission to distribute IRQs across 619 multiple CPUs. Saying N here will route all IRQs to the first 620 CPU. Generally saying Y is safe, although some problems have been 621 reported with SMP Power Macintoshes with this option enabled. 622 623config NUMA 624 bool "NUMA support" 625 depends on PPC64 626 default y if SMP && PPC_PSERIES 627 628config NODES_SHIFT 629 int 630 default "8" if PPC64 631 default "4" 632 depends on NEED_MULTIPLE_NODES 633 634config USE_PERCPU_NUMA_NODE_ID 635 def_bool y 636 depends on NUMA 637 638config HAVE_MEMORYLESS_NODES 639 def_bool y 640 depends on NUMA 641 642config ARCH_SELECT_MEMORY_MODEL 643 def_bool y 644 depends on PPC64 645 646config ARCH_FLATMEM_ENABLE 647 def_bool y 648 depends on (PPC64 && !NUMA) || PPC32 649 650config ARCH_SPARSEMEM_ENABLE 651 def_bool y 652 depends on PPC64 653 select SPARSEMEM_VMEMMAP_ENABLE 654 655config ARCH_SPARSEMEM_DEFAULT 656 def_bool y 657 depends on PPC_BOOK3S_64 658 659config SYS_SUPPORTS_HUGETLBFS 660 bool 661 662config ILLEGAL_POINTER_VALUE 663 hex 664 # This is roughly half way between the top of user space and the bottom 665 # of kernel space, which seems about as good as we can get. 666 default 0x5deadbeef0000000 if PPC64 667 default 0 668 669source "mm/Kconfig" 670 671config ARCH_MEMORY_PROBE 672 def_bool y 673 depends on MEMORY_HOTPLUG 674 675# Some NUMA nodes have memory ranges that span 676# other nodes. Even though a pfn is valid and 677# between a node's start and end pfns, it may not 678# reside on that node. See memmap_init_zone() 679# for details. 680config NODES_SPAN_OTHER_NODES 681 def_bool y 682 depends on NEED_MULTIPLE_NODES 683 684config STDBINUTILS 685 bool "Using standard binutils settings" 686 depends on 44x 687 default y 688 help 689 Turning this option off allows you to select 256KB PAGE_SIZE on 44x. 690 Note, that kernel will be able to run only those applications, 691 which had been compiled using binutils later than 2.17.50.0.3 with 692 '-zmax-page-size' set to 256K (the default is 64K). Or, if using 693 the older binutils, you can patch them with a trivial patch, which 694 changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000. 695 696choice 697 prompt "Page size" 698 default PPC_4K_PAGES 699 help 700 Select the kernel logical page size. Increasing the page size 701 will reduce software overhead at each page boundary, allow 702 hardware prefetch mechanisms to be more effective, and allow 703 larger dma transfers increasing IO efficiency and reducing 704 overhead. However the utilization of memory will increase. 705 For example, each cached file will using a multiple of the 706 page size to hold its contents and the difference between the 707 end of file and the end of page is wasted. 708 709 Some dedicated systems, such as software raid serving with 710 accelerated calculations, have shown significant increases. 711 712 If you configure a 64 bit kernel for 64k pages but the 713 processor does not support them, then the kernel will simulate 714 them with 4k pages, loading them on demand, but with the 715 reduced software overhead and larger internal fragmentation. 716 For the 32 bit kernel, a large page option will not be offered 717 unless it is supported by the configured processor. 718 719 If unsure, choose 4K_PAGES. 720 721config PPC_4K_PAGES 722 bool "4k page size" 723 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 724 725config PPC_16K_PAGES 726 bool "16k page size" 727 depends on 44x || PPC_8xx 728 729config PPC_64K_PAGES 730 bool "64k page size" 731 depends on !PPC_FSL_BOOK3E && (44x || PPC_STD_MMU_64 || PPC_BOOK3E_64) 732 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 733 734config PPC_256K_PAGES 735 bool "256k page size" 736 depends on 44x && !STDBINUTILS 737 help 738 Make the page size 256k. 739 740 As the ELF standard only requires alignment to support page 741 sizes up to 64k, you will need to compile all of your user 742 space applications with a non-standard binutils settings 743 (see the STDBINUTILS description for details). 744 745 Say N unless you know what you are doing. 746 747endchoice 748 749config THREAD_SHIFT 750 int "Thread shift" if EXPERT 751 range 13 15 752 default "15" if PPC_256K_PAGES 753 default "14" if PPC64 754 default "13" 755 help 756 Used to define the stack size. The default is almost always what you 757 want. Only change this if you know what you are doing. 758 759config FORCE_MAX_ZONEORDER 760 int "Maximum zone order" 761 range 8 9 if PPC64 && PPC_64K_PAGES 762 default "9" if PPC64 && PPC_64K_PAGES 763 range 13 13 if PPC64 && !PPC_64K_PAGES 764 default "13" if PPC64 && !PPC_64K_PAGES 765 range 9 64 if PPC32 && PPC_16K_PAGES 766 default "9" if PPC32 && PPC_16K_PAGES 767 range 7 64 if PPC32 && PPC_64K_PAGES 768 default "7" if PPC32 && PPC_64K_PAGES 769 range 5 64 if PPC32 && PPC_256K_PAGES 770 default "5" if PPC32 && PPC_256K_PAGES 771 range 11 64 772 default "11" 773 help 774 The kernel memory allocator divides physically contiguous memory 775 blocks into "zones", where each zone is a power of two number of 776 pages. This option selects the largest power of two that the kernel 777 keeps in the memory allocator. If you need to allocate very large 778 blocks of physically contiguous memory, then you may need to 779 increase this value. 780 781 This config option is actually maximum order plus one. For example, 782 a value of 11 means that the largest free memory block is 2^10 pages. 783 784 The page size is not necessarily 4KB. For example, on 64-bit 785 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep 786 this in mind when choosing a value for this option. 787 788config PPC_SUBPAGE_PROT 789 bool "Support setting protections for 4k subpages" 790 depends on PPC_STD_MMU_64 && PPC_64K_PAGES 791 help 792 This option adds support for a system call to allow user programs 793 to set access permissions (read/write, readonly, or no access) 794 on the 4k subpages of each 64k page. 795 796config PPC_COPRO_BASE 797 bool 798 default n 799 800config SCHED_SMT 801 bool "SMT (Hyperthreading) scheduler support" 802 depends on PPC64 && SMP 803 help 804 SMT scheduler support improves the CPU scheduler's decision making 805 when dealing with POWER5 cpus at a cost of slightly increased 806 overhead in some places. If unsure say N here. 807 808config PPC_DENORMALISATION 809 bool "PowerPC denormalisation exception handling" 810 depends on PPC_BOOK3S_64 811 default "y" if PPC_POWERNV 812 ---help--- 813 Add support for handling denormalisation of single precision 814 values. Useful for bare metal only. If unsure say Y here. 815 816config CMDLINE_BOOL 817 bool "Default bootloader kernel arguments" 818 819config CMDLINE 820 string "Initial kernel command string" 821 depends on CMDLINE_BOOL 822 default "console=ttyS0,9600 console=tty0 root=/dev/sda2" 823 help 824 On some platforms, there is currently no way for the boot loader to 825 pass arguments to the kernel. For these platforms, you can supply 826 some command-line options at build time by entering them here. In 827 most cases you will need to specify the root device here. 828 829config CMDLINE_FORCE 830 bool "Always use the default kernel command string" 831 depends on CMDLINE_BOOL 832 help 833 Always use the default kernel command string, even if the boot 834 loader passes other arguments to the kernel. 835 This is useful if you cannot or don't want to change the 836 command-line options your boot loader passes to the kernel. 837 838config EXTRA_TARGETS 839 string "Additional default image types" 840 help 841 List additional targets to be built by the bootwrapper here (separated 842 by spaces). This is useful for targets that depend of device tree 843 files in the .dts directory. 844 845 Targets in this list will be build as part of the default build 846 target, or when the user does a 'make zImage' or a 847 'make zImage.initrd'. 848 849 If unsure, leave blank 850 851config ARCH_WANTS_FREEZER_CONTROL 852 def_bool y 853 depends on ADB_PMU 854 855source kernel/power/Kconfig 856 857config SECCOMP 858 bool "Enable seccomp to safely compute untrusted bytecode" 859 depends on PROC_FS 860 default y 861 help 862 This kernel feature is useful for number crunching applications 863 that may need to compute untrusted bytecode during their 864 execution. By using pipes or other transports made available to 865 the process as file descriptors supporting the read/write 866 syscalls, it's possible to isolate those applications in 867 their own address space using seccomp. Once seccomp is 868 enabled via /proc/<pid>/seccomp, it cannot be disabled 869 and the task is only allowed to execute a few safe syscalls 870 defined by each seccomp mode. 871 872 If unsure, say Y. Only embedded should say N here. 873 874endmenu 875 876config ISA_DMA_API 877 bool 878 default PCI 879 880menu "Bus options" 881 882config ISA 883 bool "Support for ISA-bus hardware" 884 depends on PPC_CHRP 885 select PPC_I8259 886 help 887 Find out whether you have ISA slots on your motherboard. ISA is the 888 name of a bus system, i.e. the way the CPU talks to the other stuff 889 inside your box. If you have an Apple machine, say N here; if you 890 have an IBM RS/6000 or pSeries machine, say Y. If you have an 891 embedded board, consult your board documentation. 892 893config ZONE_DMA 894 bool 895 default y 896 897config NEED_DMA_MAP_STATE 898 def_bool (PPC64 || NOT_COHERENT_CACHE) 899 900config NEED_SG_DMA_LENGTH 901 def_bool y 902 903config GENERIC_ISA_DMA 904 bool 905 depends on ISA_DMA_API 906 default y 907 908config PPC_INDIRECT_PCI 909 bool 910 depends on PCI 911 default y if 40x || 44x 912 default n 913 914config EISA 915 bool 916 917config SBUS 918 bool 919 920config FSL_SOC 921 bool 922 923config FSL_PCI 924 bool 925 select PPC_INDIRECT_PCI 926 select PCI_QUIRKS 927 928config FSL_PMC 929 bool 930 default y 931 depends on SUSPEND && (PPC_85xx || PPC_86xx) 932 help 933 Freescale MPC85xx/MPC86xx power management controller support 934 (suspend/resume). For MPC83xx see platforms/83xx/suspend.c 935 936config PPC4xx_CPM 937 bool 938 default y 939 depends on SUSPEND && (44x || 40x) 940 help 941 PPC4xx Clock Power Management (CPM) support (suspend/resume). 942 It also enables support for two different idle states (idle-wait 943 and idle-doze). 944 945config 4xx_SOC 946 bool 947 948config FSL_LBC 949 bool "Freescale Local Bus support" 950 help 951 Enables reporting of errors from the Freescale local bus 952 controller. Also contains some common code used by 953 drivers for specific local bus peripherals. 954 955config FSL_GTM 956 bool 957 depends on PPC_83xx || QUICC_ENGINE || CPM2 958 help 959 Freescale General-purpose Timers support 960 961# Yes MCA RS/6000s exist but Linux-PPC does not currently support any 962config MCA 963 bool 964 965# Platforms that what PCI turned unconditionally just do select PCI 966# in their config node. Platforms that want to choose at config 967# time should select PPC_PCI_CHOICE 968config PPC_PCI_CHOICE 969 bool 970 971config PCI 972 bool "PCI support" if PPC_PCI_CHOICE 973 default y if !40x && !CPM2 && !8xx && !PPC_83xx \ 974 && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON 975 default PCI_QSPAN if !4xx && !CPM2 && 8xx 976 select GENERIC_PCI_IOMAP 977 help 978 Find out whether your system includes a PCI bus. PCI is the name of 979 a bus system, i.e. the way the CPU talks to the other stuff inside 980 your box. If you say Y here, the kernel will include drivers and 981 infrastructure code to support PCI bus devices. 982 983config PCI_DOMAINS 984 def_bool PCI 985 986config PCI_SYSCALL 987 def_bool PCI 988 989config PCI_QSPAN 990 bool "QSpan PCI" 991 depends on !4xx && !CPM2 && 8xx 992 select PPC_I8259 993 help 994 Say Y here if you have a system based on a Motorola 8xx-series 995 embedded processor with a QSPAN PCI interface, otherwise say N. 996 997config PCI_8260 998 bool 999 depends on PCI && 8260 1000 select PPC_INDIRECT_PCI 1001 default y 1002 1003source "drivers/pci/Kconfig" 1004 1005source "drivers/pcmcia/Kconfig" 1006 1007config HAS_RAPIDIO 1008 bool 1009 default n 1010 1011config RAPIDIO 1012 tristate "RapidIO support" 1013 depends on HAS_RAPIDIO || PCI 1014 help 1015 If you say Y here, the kernel will include drivers and 1016 infrastructure code to support RapidIO interconnect devices. 1017 1018config FSL_RIO 1019 bool "Freescale Embedded SRIO Controller support" 1020 depends on RAPIDIO = y && HAS_RAPIDIO 1021 default "n" 1022 ---help--- 1023 Include support for RapidIO controller on Freescale embedded 1024 processors (MPC8548, MPC8641, etc). 1025 1026source "drivers/rapidio/Kconfig" 1027 1028endmenu 1029 1030config NONSTATIC_KERNEL 1031 bool 1032 default n 1033 1034menu "Advanced setup" 1035 depends on PPC32 1036 1037config ADVANCED_OPTIONS 1038 bool "Prompt for advanced kernel configuration options" 1039 help 1040 This option will enable prompting for a variety of advanced kernel 1041 configuration options. These options can cause the kernel to not 1042 work if they are set incorrectly, but can be used to optimize certain 1043 aspects of kernel memory management. 1044 1045 Unless you know what you are doing, say N here. 1046 1047comment "Default settings for advanced configuration options are used" 1048 depends on !ADVANCED_OPTIONS 1049 1050config LOWMEM_SIZE_BOOL 1051 bool "Set maximum low memory" 1052 depends on ADVANCED_OPTIONS 1053 help 1054 This option allows you to set the maximum amount of memory which 1055 will be used as "low memory", that is, memory which the kernel can 1056 access directly, without having to set up a kernel virtual mapping. 1057 This can be useful in optimizing the layout of kernel virtual 1058 memory. 1059 1060 Say N here unless you know what you are doing. 1061 1062config LOWMEM_SIZE 1063 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 1064 default "0x30000000" 1065 1066config LOWMEM_CAM_NUM_BOOL 1067 bool "Set number of CAMs to use to map low memory" 1068 depends on ADVANCED_OPTIONS && FSL_BOOKE 1069 help 1070 This option allows you to set the maximum number of CAM slots that 1071 will be used to map low memory. There are a limited number of slots 1072 available and even more limited number that will fit in the L1 MMU. 1073 However, using more entries will allow mapping more low memory. This 1074 can be useful in optimizing the layout of kernel virtual memory. 1075 1076 Say N here unless you know what you are doing. 1077 1078config LOWMEM_CAM_NUM 1079 depends on FSL_BOOKE 1080 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL 1081 default 3 1082 1083config DYNAMIC_MEMSTART 1084 bool "Enable page aligned dynamic load address for kernel" 1085 depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) 1086 select NONSTATIC_KERNEL 1087 help 1088 This option enables the kernel to be loaded at any page aligned 1089 physical address. The kernel creates a mapping from KERNELBASE to 1090 the address where the kernel is loaded. The page size here implies 1091 the TLB page size of the mapping for kernel on the particular platform. 1092 Please refer to the init code for finding the TLB page size. 1093 1094 DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE 1095 kernel image, where the only restriction is the page aligned kernel 1096 load address. When this option is enabled, the compile time physical 1097 address CONFIG_PHYSICAL_START is ignored. 1098 1099 This option is overridden by CONFIG_RELOCATABLE 1100 1101config PAGE_OFFSET_BOOL 1102 bool "Set custom page offset address" 1103 depends on ADVANCED_OPTIONS 1104 help 1105 This option allows you to set the kernel virtual address at which 1106 the kernel will map low memory. This can be useful in optimizing 1107 the virtual memory layout of the system. 1108 1109 Say N here unless you know what you are doing. 1110 1111config PAGE_OFFSET 1112 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL 1113 default "0xc0000000" 1114 1115config KERNEL_START_BOOL 1116 bool "Set custom kernel base address" 1117 depends on ADVANCED_OPTIONS 1118 help 1119 This option allows you to set the kernel virtual address at which 1120 the kernel will be loaded. Normally this should match PAGE_OFFSET 1121 however there are times (like kdump) that one might not want them 1122 to be the same. 1123 1124 Say N here unless you know what you are doing. 1125 1126config KERNEL_START 1127 hex "Virtual address of kernel base" if KERNEL_START_BOOL 1128 default PAGE_OFFSET if PAGE_OFFSET_BOOL 1129 default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL 1130 default "0xc0000000" 1131 1132config PHYSICAL_START_BOOL 1133 bool "Set physical address where the kernel is loaded" 1134 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE 1135 help 1136 This gives the physical address where the kernel is loaded. 1137 1138 Say N here unless you know what you are doing. 1139 1140config PHYSICAL_START 1141 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL 1142 default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL 1143 default "0x00000000" 1144 1145config PHYSICAL_ALIGN 1146 hex 1147 default "0x04000000" if FSL_BOOKE 1148 help 1149 This value puts the alignment restrictions on physical address 1150 where kernel is loaded and run from. Kernel is compiled for an 1151 address which meets above alignment restriction. 1152 1153config TASK_SIZE_BOOL 1154 bool "Set custom user task size" 1155 depends on ADVANCED_OPTIONS 1156 help 1157 This option allows you to set the amount of virtual address space 1158 allocated to user tasks. This can be useful in optimizing the 1159 virtual memory layout of the system. 1160 1161 Say N here unless you know what you are doing. 1162 1163config TASK_SIZE 1164 hex "Size of user task space" if TASK_SIZE_BOOL 1165 default "0x80000000" if PPC_8xx 1166 default "0xc0000000" 1167 1168config CONSISTENT_SIZE_BOOL 1169 bool "Set custom consistent memory pool size" 1170 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE 1171 help 1172 This option allows you to set the size of the 1173 consistent memory pool. This pool of virtual memory 1174 is used to make consistent memory allocations. 1175 1176config CONSISTENT_SIZE 1177 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL 1178 default "0x00200000" if NOT_COHERENT_CACHE 1179 1180config PIN_TLB 1181 bool "Pinned Kernel TLBs (860 ONLY)" 1182 depends on ADVANCED_OPTIONS && 8xx 1183 1184config PIN_TLB_IMMR 1185 bool "Pinned TLB for IMMR" 1186 depends on PIN_TLB 1187 default y 1188endmenu 1189 1190if PPC64 1191# This value must have zeroes in the bottom 60 bits otherwise lots will break 1192config PAGE_OFFSET 1193 hex 1194 default "0xc000000000000000" 1195config KERNEL_START 1196 hex 1197 default "0xc000000000000000" 1198config PHYSICAL_START 1199 hex 1200 default "0x00000000" 1201endif 1202 1203config ARCH_RANDOM 1204 def_bool n 1205 1206source "net/Kconfig" 1207 1208source "drivers/Kconfig" 1209 1210source "fs/Kconfig" 1211 1212source "lib/Kconfig" 1213 1214source "arch/powerpc/Kconfig.debug" 1215 1216source "security/Kconfig" 1217 1218config KEYS_COMPAT 1219 bool 1220 depends on COMPAT && KEYS 1221 default y 1222 1223source "crypto/Kconfig" 1224 1225config PPC_LIB_RHEAP 1226 bool 1227 1228source "arch/powerpc/kvm/Kconfig" 1229 1230source "kernel/livepatch/Kconfig" 1231