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