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