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 HIGHMEM 384 bool "High memory support" 385 depends on PPC32 386 387source kernel/Kconfig.hz 388source kernel/Kconfig.preempt 389source "fs/Kconfig.binfmt" 390 391config HUGETLB_PAGE_SIZE_VARIABLE 392 bool 393 depends on HUGETLB_PAGE 394 default y 395 396config MATH_EMULATION 397 bool "Math emulation" 398 depends on 4xx || 8xx || PPC_MPC832x || BOOKE 399 ---help--- 400 Some PowerPC chips designed for embedded applications do not have 401 a floating-point unit and therefore do not implement the 402 floating-point instructions in the PowerPC instruction set. If you 403 say Y here, the kernel will include code to emulate a floating-point 404 unit, which will allow programs that use floating-point 405 instructions to run. 406 407 This is also useful to emulate missing (optional) instructions 408 such as fsqrt on cores that do have an FPU but do not implement 409 them (such as Freescale BookE). 410 411choice 412 prompt "Math emulation options" 413 default MATH_EMULATION_FULL 414 depends on MATH_EMULATION 415 416config MATH_EMULATION_FULL 417 bool "Emulate all the floating point instructions" 418 ---help--- 419 Select this option will enable the kernel to support to emulate 420 all the floating point instructions. If your SoC doesn't have 421 a FPU, you should select this. 422 423config MATH_EMULATION_HW_UNIMPLEMENTED 424 bool "Just emulate the FPU unimplemented instructions" 425 ---help--- 426 Select this if you know there does have a hardware FPU on your 427 SoC, but some floating point instructions are not implemented by that. 428 429endchoice 430 431config PPC_TRANSACTIONAL_MEM 432 bool "Transactional Memory support for POWERPC" 433 depends on PPC_BOOK3S_64 434 depends on SMP 435 select ALTIVEC 436 select VSX 437 default n 438 ---help--- 439 Support user-mode Transactional Memory on POWERPC. 440 441config DISABLE_MPROFILE_KERNEL 442 bool "Disable use of mprofile-kernel for kernel tracing" 443 depends on PPC64 && CPU_LITTLE_ENDIAN 444 default y 445 help 446 Selecting this options disables use of the mprofile-kernel ABI for 447 kernel tracing. That will cause options such as live patching 448 (CONFIG_LIVEPATCH) which depend on CONFIG_DYNAMIC_FTRACE_WITH_REGS to 449 be disabled also. 450 451 If you have a toolchain which supports mprofile-kernel, then you can 452 disable this. Otherwise leave it enabled. If you're not sure, say 453 "Y". 454 455config MPROFILE_KERNEL 456 depends on PPC64 && CPU_LITTLE_ENDIAN 457 def_bool !DISABLE_MPROFILE_KERNEL 458 459config USE_THIN_ARCHIVES 460 bool "Build the kernel using thin archives" 461 default n 462 select THIN_ARCHIVES 463 help 464 Build the kernel using thin archives. 465 If you're unsure say N. 466 467config IOMMU_HELPER 468 def_bool PPC64 469 470config SWIOTLB 471 bool "SWIOTLB support" 472 default n 473 select IOMMU_HELPER 474 ---help--- 475 Support for IO bounce buffering for systems without an IOMMU. 476 This allows us to DMA to the full physical address space on 477 platforms where the size of a physical address is larger 478 than the bus address. Not all platforms support this. 479 480config HOTPLUG_CPU 481 bool "Support for enabling/disabling CPUs" 482 depends on SMP && (PPC_PSERIES || \ 483 PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE) 484 ---help--- 485 Say Y here to be able to disable and re-enable individual 486 CPUs at runtime on SMP machines. 487 488 Say N if you are unsure. 489 490config ARCH_CPU_PROBE_RELEASE 491 def_bool y 492 depends on HOTPLUG_CPU 493 494config ARCH_ENABLE_MEMORY_HOTPLUG 495 def_bool y 496 497config ARCH_HAS_WALK_MEMORY 498 def_bool y 499 500config ARCH_ENABLE_MEMORY_HOTREMOVE 501 def_bool y 502 503config PPC64_SUPPORTS_MEMORY_FAILURE 504 bool "Add support for memory hwpoison" 505 depends on PPC_BOOK3S_64 506 default "y" if PPC_POWERNV 507 select ARCH_SUPPORTS_MEMORY_FAILURE 508 509config KEXEC 510 bool "kexec system call" 511 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E 512 select KEXEC_CORE 513 help 514 kexec is a system call that implements the ability to shutdown your 515 current kernel, and to start another kernel. It is like a reboot 516 but it is independent of the system firmware. And like a reboot 517 you can start any kernel with it, not just Linux. 518 519 The name comes from the similarity to the exec system call. 520 521 It is an ongoing process to be certain the hardware in a machine 522 is properly shutdown, so do not be surprised if this code does not 523 initially work for you. As of this writing the exact hardware 524 interface is strongly in flux, so no good recommendation can be 525 made. 526 527config KEXEC_FILE 528 bool "kexec file based system call" 529 select KEXEC_CORE 530 select HAVE_IMA_KEXEC 531 select BUILD_BIN2C 532 depends on PPC64 533 depends on CRYPTO=y 534 depends on CRYPTO_SHA256=y 535 help 536 This is a new version of the kexec system call. This call is 537 file based and takes in file descriptors as system call arguments 538 for kernel and initramfs as opposed to a list of segments as is the 539 case for the older kexec call. 540 541config RELOCATABLE 542 bool "Build a relocatable kernel" 543 depends on PPC64 || (FLATMEM && (44x || FSL_BOOKE)) 544 select NONSTATIC_KERNEL 545 select MODULE_REL_CRCS if MODVERSIONS 546 help 547 This builds a kernel image that is capable of running at the 548 location the kernel is loaded at. For ppc32, there is no any 549 alignment restrictions, and this feature is a superset of 550 DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use 551 16k-aligned base address. The kernel is linked as a 552 position-independent executable (PIE) and contains dynamic relocations 553 which are processed early in the bootup process. 554 555 One use is for the kexec on panic case where the recovery kernel 556 must live at a different physical address than the primary 557 kernel. 558 559 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 560 it has been loaded at and the compile time physical addresses 561 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START 562 setting can still be useful to bootwrappers that need to know the 563 load address of the kernel (eg. u-boot/mkimage). 564 565config RELOCATABLE_TEST 566 bool "Test relocatable kernel" 567 depends on (PPC64 && RELOCATABLE) 568 default n 569 help 570 This runs the relocatable kernel at the address it was initially 571 loaded at, which tends to be non-zero and therefore test the 572 relocation code. 573 574config CRASH_DUMP 575 bool "Build a dump capture kernel" 576 depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP) 577 select RELOCATABLE if PPC64 || 44x || FSL_BOOKE 578 help 579 Build a kernel suitable for use as a dump capture kernel. 580 The same kernel binary can be used as production kernel and dump 581 capture kernel. 582 583config FA_DUMP 584 bool "Firmware-assisted dump" 585 depends on PPC64 && PPC_RTAS 586 select CRASH_CORE 587 select CRASH_DUMP 588 help 589 A robust mechanism to get reliable kernel crash dump with 590 assistance from firmware. This approach does not use kexec, 591 instead firmware assists in booting the capture kernel 592 while preserving memory contents. Firmware-assisted dump 593 is meant to be a kdump replacement offering robustness and 594 speed not possible without system firmware assistance. 595 596 If unsure, say "N" 597 598config IRQ_ALL_CPUS 599 bool "Distribute interrupts on all CPUs by default" 600 depends on SMP 601 help 602 This option gives the kernel permission to distribute IRQs across 603 multiple CPUs. Saying N here will route all IRQs to the first 604 CPU. Generally saying Y is safe, although some problems have been 605 reported with SMP Power Macintoshes with this option enabled. 606 607config NUMA 608 bool "NUMA support" 609 depends on PPC64 610 default y if SMP && PPC_PSERIES 611 612config NODES_SHIFT 613 int 614 default "8" if PPC64 615 default "4" 616 depends on NEED_MULTIPLE_NODES 617 618config USE_PERCPU_NUMA_NODE_ID 619 def_bool y 620 depends on NUMA 621 622config HAVE_MEMORYLESS_NODES 623 def_bool y 624 depends on NUMA 625 626config ARCH_SELECT_MEMORY_MODEL 627 def_bool y 628 depends on PPC64 629 630config ARCH_FLATMEM_ENABLE 631 def_bool y 632 depends on (PPC64 && !NUMA) || PPC32 633 634config ARCH_SPARSEMEM_ENABLE 635 def_bool y 636 depends on PPC64 637 select SPARSEMEM_VMEMMAP_ENABLE 638 639config ARCH_SPARSEMEM_DEFAULT 640 def_bool y 641 depends on PPC_BOOK3S_64 642 643config SYS_SUPPORTS_HUGETLBFS 644 bool 645 646config ILLEGAL_POINTER_VALUE 647 hex 648 # This is roughly half way between the top of user space and the bottom 649 # of kernel space, which seems about as good as we can get. 650 default 0x5deadbeef0000000 if PPC64 651 default 0 652 653source "mm/Kconfig" 654 655config ARCH_MEMORY_PROBE 656 def_bool y 657 depends on MEMORY_HOTPLUG 658 659# Some NUMA nodes have memory ranges that span 660# other nodes. Even though a pfn is valid and 661# between a node's start and end pfns, it may not 662# reside on that node. See memmap_init_zone() 663# for details. 664config NODES_SPAN_OTHER_NODES 665 def_bool y 666 depends on NEED_MULTIPLE_NODES 667 668config STDBINUTILS 669 bool "Using standard binutils settings" 670 depends on 44x 671 default y 672 help 673 Turning this option off allows you to select 256KB PAGE_SIZE on 44x. 674 Note, that kernel will be able to run only those applications, 675 which had been compiled using binutils later than 2.17.50.0.3 with 676 '-zmax-page-size' set to 256K (the default is 64K). Or, if using 677 the older binutils, you can patch them with a trivial patch, which 678 changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000. 679 680choice 681 prompt "Page size" 682 default PPC_4K_PAGES 683 help 684 Select the kernel logical page size. Increasing the page size 685 will reduce software overhead at each page boundary, allow 686 hardware prefetch mechanisms to be more effective, and allow 687 larger dma transfers increasing IO efficiency and reducing 688 overhead. However the utilization of memory will increase. 689 For example, each cached file will using a multiple of the 690 page size to hold its contents and the difference between the 691 end of file and the end of page is wasted. 692 693 Some dedicated systems, such as software raid serving with 694 accelerated calculations, have shown significant increases. 695 696 If you configure a 64 bit kernel for 64k pages but the 697 processor does not support them, then the kernel will simulate 698 them with 4k pages, loading them on demand, but with the 699 reduced software overhead and larger internal fragmentation. 700 For the 32 bit kernel, a large page option will not be offered 701 unless it is supported by the configured processor. 702 703 If unsure, choose 4K_PAGES. 704 705config PPC_4K_PAGES 706 bool "4k page size" 707 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 708 709config PPC_16K_PAGES 710 bool "16k page size" 711 depends on 44x || PPC_8xx 712 713config PPC_64K_PAGES 714 bool "64k page size" 715 depends on !PPC_FSL_BOOK3E && (44x || PPC_STD_MMU_64 || PPC_BOOK3E_64) 716 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 717 718config PPC_256K_PAGES 719 bool "256k page size" 720 depends on 44x && !STDBINUTILS 721 help 722 Make the page size 256k. 723 724 As the ELF standard only requires alignment to support page 725 sizes up to 64k, you will need to compile all of your user 726 space applications with a non-standard binutils settings 727 (see the STDBINUTILS description for details). 728 729 Say N unless you know what you are doing. 730 731endchoice 732 733config THREAD_SHIFT 734 int "Thread shift" if EXPERT 735 range 13 15 736 default "15" if PPC_256K_PAGES 737 default "14" if PPC64 738 default "13" 739 help 740 Used to define the stack size. The default is almost always what you 741 want. Only change this if you know what you are doing. 742 743config FORCE_MAX_ZONEORDER 744 int "Maximum zone order" 745 range 8 9 if PPC64 && PPC_64K_PAGES 746 default "9" if PPC64 && PPC_64K_PAGES 747 range 13 13 if PPC64 && !PPC_64K_PAGES 748 default "13" if PPC64 && !PPC_64K_PAGES 749 range 9 64 if PPC32 && PPC_16K_PAGES 750 default "9" if PPC32 && PPC_16K_PAGES 751 range 7 64 if PPC32 && PPC_64K_PAGES 752 default "7" if PPC32 && PPC_64K_PAGES 753 range 5 64 if PPC32 && PPC_256K_PAGES 754 default "5" if PPC32 && PPC_256K_PAGES 755 range 11 64 756 default "11" 757 help 758 The kernel memory allocator divides physically contiguous memory 759 blocks into "zones", where each zone is a power of two number of 760 pages. This option selects the largest power of two that the kernel 761 keeps in the memory allocator. If you need to allocate very large 762 blocks of physically contiguous memory, then you may need to 763 increase this value. 764 765 This config option is actually maximum order plus one. For example, 766 a value of 11 means that the largest free memory block is 2^10 pages. 767 768 The page size is not necessarily 4KB. For example, on 64-bit 769 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep 770 this in mind when choosing a value for this option. 771 772config PPC_SUBPAGE_PROT 773 bool "Support setting protections for 4k subpages" 774 depends on PPC_STD_MMU_64 && PPC_64K_PAGES 775 help 776 This option adds support for a system call to allow user programs 777 to set access permissions (read/write, readonly, or no access) 778 on the 4k subpages of each 64k page. 779 780config PPC_COPRO_BASE 781 bool 782 default n 783 784config SCHED_SMT 785 bool "SMT (Hyperthreading) scheduler support" 786 depends on PPC64 && SMP 787 help 788 SMT scheduler support improves the CPU scheduler's decision making 789 when dealing with POWER5 cpus at a cost of slightly increased 790 overhead in some places. If unsure say N here. 791 792config PPC_DENORMALISATION 793 bool "PowerPC denormalisation exception handling" 794 depends on PPC_BOOK3S_64 795 default "y" if PPC_POWERNV 796 ---help--- 797 Add support for handling denormalisation of single precision 798 values. Useful for bare metal only. If unsure say Y here. 799 800config CMDLINE_BOOL 801 bool "Default bootloader kernel arguments" 802 803config CMDLINE 804 string "Initial kernel command string" 805 depends on CMDLINE_BOOL 806 default "console=ttyS0,9600 console=tty0 root=/dev/sda2" 807 help 808 On some platforms, there is currently no way for the boot loader to 809 pass arguments to the kernel. For these platforms, you can supply 810 some command-line options at build time by entering them here. In 811 most cases you will need to specify the root device here. 812 813config CMDLINE_FORCE 814 bool "Always use the default kernel command string" 815 depends on CMDLINE_BOOL 816 help 817 Always use the default kernel command string, even if the boot 818 loader passes other arguments to the kernel. 819 This is useful if you cannot or don't want to change the 820 command-line options your boot loader passes to the kernel. 821 822config EXTRA_TARGETS 823 string "Additional default image types" 824 help 825 List additional targets to be built by the bootwrapper here (separated 826 by spaces). This is useful for targets that depend of device tree 827 files in the .dts directory. 828 829 Targets in this list will be build as part of the default build 830 target, or when the user does a 'make zImage' or a 831 'make zImage.initrd'. 832 833 If unsure, leave blank 834 835config ARCH_WANTS_FREEZER_CONTROL 836 def_bool y 837 depends on ADB_PMU 838 839source kernel/power/Kconfig 840 841config SECCOMP 842 bool "Enable seccomp to safely compute untrusted bytecode" 843 depends on PROC_FS 844 default y 845 help 846 This kernel feature is useful for number crunching applications 847 that may need to compute untrusted bytecode during their 848 execution. By using pipes or other transports made available to 849 the process as file descriptors supporting the read/write 850 syscalls, it's possible to isolate those applications in 851 their own address space using seccomp. Once seccomp is 852 enabled via /proc/<pid>/seccomp, it cannot be disabled 853 and the task is only allowed to execute a few safe syscalls 854 defined by each seccomp mode. 855 856 If unsure, say Y. Only embedded should say N here. 857 858endmenu 859 860config ISA_DMA_API 861 bool 862 default PCI 863 864menu "Bus options" 865 866config ISA 867 bool "Support for ISA-bus hardware" 868 depends on PPC_CHRP 869 select PPC_I8259 870 help 871 Find out whether you have ISA slots on your motherboard. ISA is the 872 name of a bus system, i.e. the way the CPU talks to the other stuff 873 inside your box. If you have an Apple machine, say N here; if you 874 have an IBM RS/6000 or pSeries machine, say Y. If you have an 875 embedded board, consult your board documentation. 876 877config ZONE_DMA 878 bool 879 default y 880 881config NEED_DMA_MAP_STATE 882 def_bool (PPC64 || NOT_COHERENT_CACHE) 883 884config NEED_SG_DMA_LENGTH 885 def_bool y 886 887config GENERIC_ISA_DMA 888 bool 889 depends on ISA_DMA_API 890 default y 891 892config PPC_INDIRECT_PCI 893 bool 894 depends on PCI 895 default y if 40x || 44x 896 default n 897 898config EISA 899 bool 900 901config SBUS 902 bool 903 904config FSL_SOC 905 bool 906 907config FSL_PCI 908 bool 909 select PPC_INDIRECT_PCI 910 select PCI_QUIRKS 911 912config FSL_PMC 913 bool 914 default y 915 depends on SUSPEND && (PPC_85xx || PPC_86xx) 916 help 917 Freescale MPC85xx/MPC86xx power management controller support 918 (suspend/resume). For MPC83xx see platforms/83xx/suspend.c 919 920config PPC4xx_CPM 921 bool 922 default y 923 depends on SUSPEND && (44x || 40x) 924 help 925 PPC4xx Clock Power Management (CPM) support (suspend/resume). 926 It also enables support for two different idle states (idle-wait 927 and idle-doze). 928 929config 4xx_SOC 930 bool 931 932config FSL_LBC 933 bool "Freescale Local Bus support" 934 help 935 Enables reporting of errors from the Freescale local bus 936 controller. Also contains some common code used by 937 drivers for specific local bus peripherals. 938 939config FSL_GTM 940 bool 941 depends on PPC_83xx || QUICC_ENGINE || CPM2 942 help 943 Freescale General-purpose Timers support 944 945# Yes MCA RS/6000s exist but Linux-PPC does not currently support any 946config MCA 947 bool 948 949# Platforms that what PCI turned unconditionally just do select PCI 950# in their config node. Platforms that want to choose at config 951# time should select PPC_PCI_CHOICE 952config PPC_PCI_CHOICE 953 bool 954 955config PCI 956 bool "PCI support" if PPC_PCI_CHOICE 957 default y if !40x && !CPM2 && !8xx && !PPC_83xx \ 958 && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON 959 default PCI_QSPAN if !4xx && !CPM2 && 8xx 960 select GENERIC_PCI_IOMAP 961 help 962 Find out whether your system includes a PCI bus. PCI is the name of 963 a bus system, i.e. the way the CPU talks to the other stuff inside 964 your box. If you say Y here, the kernel will include drivers and 965 infrastructure code to support PCI bus devices. 966 967config PCI_DOMAINS 968 def_bool PCI 969 970config PCI_SYSCALL 971 def_bool PCI 972 973config PCI_QSPAN 974 bool "QSpan PCI" 975 depends on !4xx && !CPM2 && 8xx 976 select PPC_I8259 977 help 978 Say Y here if you have a system based on a Motorola 8xx-series 979 embedded processor with a QSPAN PCI interface, otherwise say N. 980 981config PCI_8260 982 bool 983 depends on PCI && 8260 984 select PPC_INDIRECT_PCI 985 default y 986 987source "drivers/pci/Kconfig" 988 989source "drivers/pcmcia/Kconfig" 990 991config HAS_RAPIDIO 992 bool 993 default n 994 995config RAPIDIO 996 tristate "RapidIO support" 997 depends on HAS_RAPIDIO || PCI 998 help 999 If you say Y here, the kernel will include drivers and 1000 infrastructure code to support RapidIO interconnect devices. 1001 1002config FSL_RIO 1003 bool "Freescale Embedded SRIO Controller support" 1004 depends on RAPIDIO = y && HAS_RAPIDIO 1005 default "n" 1006 ---help--- 1007 Include support for RapidIO controller on Freescale embedded 1008 processors (MPC8548, MPC8641, etc). 1009 1010source "drivers/rapidio/Kconfig" 1011 1012endmenu 1013 1014config NONSTATIC_KERNEL 1015 bool 1016 default n 1017 1018menu "Advanced setup" 1019 depends on PPC32 1020 1021config ADVANCED_OPTIONS 1022 bool "Prompt for advanced kernel configuration options" 1023 help 1024 This option will enable prompting for a variety of advanced kernel 1025 configuration options. These options can cause the kernel to not 1026 work if they are set incorrectly, but can be used to optimize certain 1027 aspects of kernel memory management. 1028 1029 Unless you know what you are doing, say N here. 1030 1031comment "Default settings for advanced configuration options are used" 1032 depends on !ADVANCED_OPTIONS 1033 1034config LOWMEM_SIZE_BOOL 1035 bool "Set maximum low memory" 1036 depends on ADVANCED_OPTIONS 1037 help 1038 This option allows you to set the maximum amount of memory which 1039 will be used as "low memory", that is, memory which the kernel can 1040 access directly, without having to set up a kernel virtual mapping. 1041 This can be useful in optimizing the layout of kernel virtual 1042 memory. 1043 1044 Say N here unless you know what you are doing. 1045 1046config LOWMEM_SIZE 1047 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 1048 default "0x30000000" 1049 1050config LOWMEM_CAM_NUM_BOOL 1051 bool "Set number of CAMs to use to map low memory" 1052 depends on ADVANCED_OPTIONS && FSL_BOOKE 1053 help 1054 This option allows you to set the maximum number of CAM slots that 1055 will be used to map low memory. There are a limited number of slots 1056 available and even more limited number that will fit in the L1 MMU. 1057 However, using more entries will allow mapping more low memory. This 1058 can be useful in optimizing the layout of kernel virtual memory. 1059 1060 Say N here unless you know what you are doing. 1061 1062config LOWMEM_CAM_NUM 1063 depends on FSL_BOOKE 1064 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL 1065 default 3 1066 1067config DYNAMIC_MEMSTART 1068 bool "Enable page aligned dynamic load address for kernel" 1069 depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) 1070 select NONSTATIC_KERNEL 1071 help 1072 This option enables the kernel to be loaded at any page aligned 1073 physical address. The kernel creates a mapping from KERNELBASE to 1074 the address where the kernel is loaded. The page size here implies 1075 the TLB page size of the mapping for kernel on the particular platform. 1076 Please refer to the init code for finding the TLB page size. 1077 1078 DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE 1079 kernel image, where the only restriction is the page aligned kernel 1080 load address. When this option is enabled, the compile time physical 1081 address CONFIG_PHYSICAL_START is ignored. 1082 1083 This option is overridden by CONFIG_RELOCATABLE 1084 1085config PAGE_OFFSET_BOOL 1086 bool "Set custom page offset address" 1087 depends on ADVANCED_OPTIONS 1088 help 1089 This option allows you to set the kernel virtual address at which 1090 the kernel will map low memory. This can be useful in optimizing 1091 the virtual memory layout of the system. 1092 1093 Say N here unless you know what you are doing. 1094 1095config PAGE_OFFSET 1096 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL 1097 default "0xc0000000" 1098 1099config KERNEL_START_BOOL 1100 bool "Set custom kernel base address" 1101 depends on ADVANCED_OPTIONS 1102 help 1103 This option allows you to set the kernel virtual address at which 1104 the kernel will be loaded. Normally this should match PAGE_OFFSET 1105 however there are times (like kdump) that one might not want them 1106 to be the same. 1107 1108 Say N here unless you know what you are doing. 1109 1110config KERNEL_START 1111 hex "Virtual address of kernel base" if KERNEL_START_BOOL 1112 default PAGE_OFFSET if PAGE_OFFSET_BOOL 1113 default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL 1114 default "0xc0000000" 1115 1116config PHYSICAL_START_BOOL 1117 bool "Set physical address where the kernel is loaded" 1118 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE 1119 help 1120 This gives the physical address where the kernel is loaded. 1121 1122 Say N here unless you know what you are doing. 1123 1124config PHYSICAL_START 1125 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL 1126 default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL 1127 default "0x00000000" 1128 1129config PHYSICAL_ALIGN 1130 hex 1131 default "0x04000000" if FSL_BOOKE 1132 help 1133 This value puts the alignment restrictions on physical address 1134 where kernel is loaded and run from. Kernel is compiled for an 1135 address which meets above alignment restriction. 1136 1137config TASK_SIZE_BOOL 1138 bool "Set custom user task size" 1139 depends on ADVANCED_OPTIONS 1140 help 1141 This option allows you to set the amount of virtual address space 1142 allocated to user tasks. This can be useful in optimizing the 1143 virtual memory layout of the system. 1144 1145 Say N here unless you know what you are doing. 1146 1147config TASK_SIZE 1148 hex "Size of user task space" if TASK_SIZE_BOOL 1149 default "0x80000000" if PPC_8xx 1150 default "0xc0000000" 1151 1152config CONSISTENT_SIZE_BOOL 1153 bool "Set custom consistent memory pool size" 1154 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE 1155 help 1156 This option allows you to set the size of the 1157 consistent memory pool. This pool of virtual memory 1158 is used to make consistent memory allocations. 1159 1160config CONSISTENT_SIZE 1161 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL 1162 default "0x00200000" if NOT_COHERENT_CACHE 1163 1164config PIN_TLB 1165 bool "Pinned Kernel TLBs (860 ONLY)" 1166 depends on ADVANCED_OPTIONS && 8xx 1167 1168config PIN_TLB_IMMR 1169 bool "Pinned TLB for IMMR" 1170 depends on PIN_TLB 1171 default y 1172endmenu 1173 1174if PPC64 1175# This value must have zeroes in the bottom 60 bits otherwise lots will break 1176config PAGE_OFFSET 1177 hex 1178 default "0xc000000000000000" 1179config KERNEL_START 1180 hex 1181 default "0xc000000000000000" 1182config PHYSICAL_START 1183 hex 1184 default "0x00000000" 1185endif 1186 1187config ARCH_RANDOM 1188 def_bool n 1189 1190source "net/Kconfig" 1191 1192source "drivers/Kconfig" 1193 1194source "fs/Kconfig" 1195 1196source "lib/Kconfig" 1197 1198source "arch/powerpc/Kconfig.debug" 1199 1200source "security/Kconfig" 1201 1202source "crypto/Kconfig" 1203 1204config PPC_LIB_RHEAP 1205 bool 1206 1207source "arch/powerpc/kvm/Kconfig" 1208 1209source "kernel/livepatch/Kconfig" 1210