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