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