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