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