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