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