18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_cisource "arch/powerpc/platforms/Kconfig.cputype" 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciconfig 32BIT 58c2ecf20Sopenharmony_ci bool 68c2ecf20Sopenharmony_ci default y if PPC32 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciconfig 64BIT 98c2ecf20Sopenharmony_ci bool 108c2ecf20Sopenharmony_ci default y if PPC64 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciconfig MMU 138c2ecf20Sopenharmony_ci bool 148c2ecf20Sopenharmony_ci default y 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX 178c2ecf20Sopenharmony_ci # On Book3S 64, the default virtual address space for 64-bit processes 188c2ecf20Sopenharmony_ci # is 2^47 (128TB). As a maximum, allow randomisation to consume up to 198c2ecf20Sopenharmony_ci # 32T of address space (2^45), which should ensure a reasonable gap 208c2ecf20Sopenharmony_ci # between bottom-up and top-down allocations for applications that 218c2ecf20Sopenharmony_ci # consume "normal" amounts of address space. Book3S 64 only supports 64K 228c2ecf20Sopenharmony_ci # and 4K page sizes. 238c2ecf20Sopenharmony_ci default 29 if PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K) 248c2ecf20Sopenharmony_ci default 33 if PPC_BOOK3S_64 # 33 = 45 (32T) - 12 (4K) 258c2ecf20Sopenharmony_ci # 268c2ecf20Sopenharmony_ci # On all other 64-bit platforms (currently only Book3E), the virtual 278c2ecf20Sopenharmony_ci # address space is 2^46 (64TB). Allow randomisation to consume up to 16T 288c2ecf20Sopenharmony_ci # of address space (2^44). Only 4K page sizes are supported. 298c2ecf20Sopenharmony_ci default 32 if 64BIT # 32 = 44 (16T) - 12 (4K) 308c2ecf20Sopenharmony_ci # 318c2ecf20Sopenharmony_ci # For 32-bit, use the compat values, as they're the same. 328c2ecf20Sopenharmony_ci default ARCH_MMAP_RND_COMPAT_BITS_MAX 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN 358c2ecf20Sopenharmony_ci # Allow randomisation to consume up to 1GB of address space (2^30). 368c2ecf20Sopenharmony_ci default 14 if 64BIT && PPC_64K_PAGES # 14 = 30 (1GB) - 16 (64K) 378c2ecf20Sopenharmony_ci default 18 if 64BIT # 18 = 30 (1GB) - 12 (4K) 388c2ecf20Sopenharmony_ci # 398c2ecf20Sopenharmony_ci # For 32-bit, use the compat values, as they're the same. 408c2ecf20Sopenharmony_ci default ARCH_MMAP_RND_COMPAT_BITS_MIN 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MAX 438c2ecf20Sopenharmony_ci # Total virtual address space for 32-bit processes is 2^31 (2GB). 448c2ecf20Sopenharmony_ci # Allow randomisation to consume up to 512MB of address space (2^29). 458c2ecf20Sopenharmony_ci default 11 if PPC_256K_PAGES # 11 = 29 (512MB) - 18 (256K) 468c2ecf20Sopenharmony_ci default 13 if PPC_64K_PAGES # 13 = 29 (512MB) - 16 (64K) 478c2ecf20Sopenharmony_ci default 15 if PPC_16K_PAGES # 15 = 29 (512MB) - 14 (16K) 488c2ecf20Sopenharmony_ci default 17 # 17 = 29 (512MB) - 12 (4K) 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MIN 518c2ecf20Sopenharmony_ci # Total virtual address space for 32-bit processes is 2^31 (2GB). 528c2ecf20Sopenharmony_ci # Allow randomisation to consume up to 8MB of address space (2^23). 538c2ecf20Sopenharmony_ci default 5 if PPC_256K_PAGES # 5 = 23 (8MB) - 18 (256K) 548c2ecf20Sopenharmony_ci default 7 if PPC_64K_PAGES # 7 = 23 (8MB) - 16 (64K) 558c2ecf20Sopenharmony_ci default 9 if PPC_16K_PAGES # 9 = 23 (8MB) - 14 (16K) 568c2ecf20Sopenharmony_ci default 11 # 11 = 23 (8MB) - 12 (4K) 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciconfig HAVE_SETUP_PER_CPU_AREA 598c2ecf20Sopenharmony_ci def_bool PPC64 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_EMBED_FIRST_CHUNK 628c2ecf20Sopenharmony_ci def_bool y if PPC64 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_PAGE_FIRST_CHUNK 658c2ecf20Sopenharmony_ci def_bool y if PPC64 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ciconfig NR_IRQS 688c2ecf20Sopenharmony_ci int "Number of virtual interrupt numbers" 698c2ecf20Sopenharmony_ci range 32 32768 708c2ecf20Sopenharmony_ci default "512" 718c2ecf20Sopenharmony_ci help 728c2ecf20Sopenharmony_ci This defines the number of virtual interrupt numbers the kernel 738c2ecf20Sopenharmony_ci can manage. Virtual interrupt numbers are what you see in 748c2ecf20Sopenharmony_ci /proc/interrupts. If you configure your system to have too few, 758c2ecf20Sopenharmony_ci drivers will fail to load or worse - handle with care. 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ciconfig NMI_IPI 788c2ecf20Sopenharmony_ci bool 798c2ecf20Sopenharmony_ci depends on SMP && (DEBUGGER || KEXEC_CORE || HARDLOCKUP_DETECTOR) 808c2ecf20Sopenharmony_ci default y 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig PPC_WATCHDOG 838c2ecf20Sopenharmony_ci bool 848c2ecf20Sopenharmony_ci depends on HARDLOCKUP_DETECTOR 858c2ecf20Sopenharmony_ci depends on HAVE_HARDLOCKUP_DETECTOR_ARCH 868c2ecf20Sopenharmony_ci default y 878c2ecf20Sopenharmony_ci help 888c2ecf20Sopenharmony_ci This is a placeholder when the powerpc hardlockup detector 898c2ecf20Sopenharmony_ci watchdog is selected (arch/powerpc/kernel/watchdog.c). It is 908c2ecf20Sopenharmony_ci seleted via the generic lockup detector menu which is why we 918c2ecf20Sopenharmony_ci have no standalone config option for it here. 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT 948c2ecf20Sopenharmony_ci bool 958c2ecf20Sopenharmony_ci default y 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT 988c2ecf20Sopenharmony_ci bool 998c2ecf20Sopenharmony_ci default y 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT 1028c2ecf20Sopenharmony_ci bool 1038c2ecf20Sopenharmony_ci default y 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ciconfig GENERIC_LOCKBREAK 1068c2ecf20Sopenharmony_ci bool 1078c2ecf20Sopenharmony_ci default y 1088c2ecf20Sopenharmony_ci depends on SMP && PREEMPTION 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT 1118c2ecf20Sopenharmony_ci bool 1128c2ecf20Sopenharmony_ci default y 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ciconfig PPC 1158c2ecf20Sopenharmony_ci bool 1168c2ecf20Sopenharmony_ci default y 1178c2ecf20Sopenharmony_ci # 1188c2ecf20Sopenharmony_ci # Please keep this list sorted alphabetically. 1198c2ecf20Sopenharmony_ci # 1208c2ecf20Sopenharmony_ci select ARCH_32BIT_OFF_T if PPC32 1218c2ecf20Sopenharmony_ci select ARCH_HAS_DEBUG_VIRTUAL 1228c2ecf20Sopenharmony_ci select ARCH_HAS_DEVMEM_IS_ALLOWED 1238c2ecf20Sopenharmony_ci select ARCH_HAS_ELF_RANDOMIZE 1248c2ecf20Sopenharmony_ci select ARCH_HAS_FORTIFY_SOURCE 1258c2ecf20Sopenharmony_ci select ARCH_HAS_GCOV_PROFILE_ALL 1268c2ecf20Sopenharmony_ci select ARCH_HAS_KCOV 1278c2ecf20Sopenharmony_ci select ARCH_HAS_HUGEPD if HUGETLB_PAGE 1288c2ecf20Sopenharmony_ci select ARCH_HAS_MEMREMAP_COMPAT_ALIGN 1298c2ecf20Sopenharmony_ci select ARCH_HAS_MMIOWB if PPC64 1308c2ecf20Sopenharmony_ci select ARCH_HAS_PHYS_TO_DMA 1318c2ecf20Sopenharmony_ci select ARCH_HAS_PMEM_API 1328c2ecf20Sopenharmony_ci select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 1338c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_DEVMAP if PPC_BOOK3S_64 1348c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_SPECIAL 1358c2ecf20Sopenharmony_ci select ARCH_HAS_MEMBARRIER_CALLBACKS 1368c2ecf20Sopenharmony_ci select ARCH_HAS_MEMBARRIER_SYNC_CORE 1378c2ecf20Sopenharmony_ci select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64 1388c2ecf20Sopenharmony_ci select ARCH_HAS_STRICT_KERNEL_RWX if (PPC32 && !HIBERNATION) 1398c2ecf20Sopenharmony_ci select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 1408c2ecf20Sopenharmony_ci select ARCH_HAS_UACCESS_FLUSHCACHE 1418c2ecf20Sopenharmony_ci select ARCH_HAS_COPY_MC if PPC64 1428c2ecf20Sopenharmony_ci select ARCH_HAS_UBSAN_SANITIZE_ALL 1438c2ecf20Sopenharmony_ci select ARCH_HAVE_NMI_SAFE_CMPXCHG 1448c2ecf20Sopenharmony_ci select ARCH_KEEP_MEMBLOCK 1458c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 1468c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_SERIO 1478c2ecf20Sopenharmony_ci select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX 1488c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ATOMIC_RMW 1498c2ecf20Sopenharmony_ci select ARCH_USE_BUILTIN_BSWAP 1508c2ecf20Sopenharmony_ci select ARCH_USE_CMPXCHG_LOCKREF if PPC64 1518c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS if PPC_QUEUED_SPINLOCKS 1528c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS if PPC_QUEUED_SPINLOCKS 1538c2ecf20Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 1548c2ecf20Sopenharmony_ci select ARCH_WANT_IRQS_OFF_ACTIVATE_MM 1558c2ecf20Sopenharmony_ci select ARCH_WANT_LD_ORPHAN_WARN 1568c2ecf20Sopenharmony_ci select ARCH_WEAK_RELEASE_ACQUIRE 1578c2ecf20Sopenharmony_ci select BINFMT_ELF 1588c2ecf20Sopenharmony_ci select BUILDTIME_TABLE_SORT 1598c2ecf20Sopenharmony_ci select CLONE_BACKWARDS 1608c2ecf20Sopenharmony_ci select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN 1618c2ecf20Sopenharmony_ci select DMA_OPS if PPC64 1628c2ecf20Sopenharmony_ci select DMA_OPS_BYPASS if PPC64 1638c2ecf20Sopenharmony_ci select DYNAMIC_FTRACE if FUNCTION_TRACER 1648c2ecf20Sopenharmony_ci select EDAC_ATOMIC_SCRUB 1658c2ecf20Sopenharmony_ci select EDAC_SUPPORT 1668c2ecf20Sopenharmony_ci select GENERIC_ATOMIC64 if PPC32 1678c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 1688c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS_BROADCAST if SMP 1698c2ecf20Sopenharmony_ci select GENERIC_CMOS_UPDATE 1708c2ecf20Sopenharmony_ci select GENERIC_CPU_AUTOPROBE 1718c2ecf20Sopenharmony_ci select GENERIC_CPU_VULNERABILITIES if PPC_BARRIER_NOSPEC 1728c2ecf20Sopenharmony_ci select GENERIC_EARLY_IOREMAP 1738c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW 1748c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW_LEVEL 1758c2ecf20Sopenharmony_ci select GENERIC_PCI_IOMAP if PCI 1768c2ecf20Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 1778c2ecf20Sopenharmony_ci select GENERIC_STRNCPY_FROM_USER 1788c2ecf20Sopenharmony_ci select GENERIC_STRNLEN_USER 1798c2ecf20Sopenharmony_ci select GENERIC_TIME_VSYSCALL 1808c2ecf20Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 1818c2ecf20Sopenharmony_ci select HAVE_ARCH_HUGE_VMAP if PPC_BOOK3S_64 && PPC_RADIX_MMU 1828c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL 1838c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN if PPC32 && PPC_PAGE_SHIFT <= 14 1848c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN_VMALLOC if PPC32 && PPC_PAGE_SHIFT <= 14 1858c2ecf20Sopenharmony_ci select HAVE_ARCH_KGDB 1868c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_BITS 1878c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT 1888c2ecf20Sopenharmony_ci select HAVE_ARCH_NVRAM_OPS 1898c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 1908c2ecf20Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 1918c2ecf20Sopenharmony_ci select HAVE_ASM_MODVERSIONS 1928c2ecf20Sopenharmony_ci select HAVE_C_RECORDMCOUNT 1938c2ecf20Sopenharmony_ci select HAVE_CBPF_JIT if !PPC64 1948c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13) 1958c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2) 1968c2ecf20Sopenharmony_ci select HAVE_CONTEXT_TRACKING if PPC64 1978c2ecf20Sopenharmony_ci select HAVE_TIF_NOHZ if PPC64 1988c2ecf20Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 1998c2ecf20Sopenharmony_ci select HAVE_DEBUG_STACKOVERFLOW 2008c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE 2018c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL 2028c2ecf20Sopenharmony_ci select HAVE_EBPF_JIT if PPC64 2038c2ecf20Sopenharmony_ci select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU) 2048c2ecf20Sopenharmony_ci select HAVE_FAST_GUP 2058c2ecf20Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD 2068c2ecf20Sopenharmony_ci select HAVE_FUNCTION_ERROR_INJECTION 2078c2ecf20Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER 2088c2ecf20Sopenharmony_ci select HAVE_FUNCTION_TRACER 2098c2ecf20Sopenharmony_ci select HAVE_GCC_PLUGINS if GCC_VERSION >= 50200 # plugin support on gcc <= 5.1 is buggy on PPC 2108c2ecf20Sopenharmony_ci select HAVE_HW_BREAKPOINT if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx) 2118c2ecf20Sopenharmony_ci select HAVE_IDE 2128c2ecf20Sopenharmony_ci select HAVE_IOREMAP_PROT 2138c2ecf20Sopenharmony_ci select HAVE_IRQ_EXIT_ON_IRQ_STACK 2148c2ecf20Sopenharmony_ci select HAVE_KERNEL_GZIP 2158c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE 2168c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZO if DEFAULT_UIMAGE 2178c2ecf20Sopenharmony_ci select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x 2188c2ecf20Sopenharmony_ci select HAVE_KPROBES 2198c2ecf20Sopenharmony_ci select HAVE_KPROBES_ON_FTRACE 2208c2ecf20Sopenharmony_ci select HAVE_KRETPROBES 2218c2ecf20Sopenharmony_ci select HAVE_LD_DEAD_CODE_DATA_ELIMINATION 2228c2ecf20Sopenharmony_ci select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS 2238c2ecf20Sopenharmony_ci select HAVE_MOD_ARCH_SPECIFIC 2248c2ecf20Sopenharmony_ci select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S) 2258c2ecf20Sopenharmony_ci select HAVE_HARDLOCKUP_DETECTOR_ARCH if PPC64 && PPC_BOOK3S && SMP 2268c2ecf20Sopenharmony_ci select HAVE_OPROFILE 2278c2ecf20Sopenharmony_ci select HAVE_OPTPROBES if PPC64 2288c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS 2298c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS_NMI if PPC64 2308c2ecf20Sopenharmony_ci select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH 2318c2ecf20Sopenharmony_ci select HAVE_PERF_REGS 2328c2ecf20Sopenharmony_ci select HAVE_PERF_USER_STACK_DUMP 2338c2ecf20Sopenharmony_ci select MMU_GATHER_RCU_TABLE_FREE 2348c2ecf20Sopenharmony_ci select MMU_GATHER_PAGE_SIZE 2358c2ecf20Sopenharmony_ci select HAVE_REGS_AND_STACK_ACCESS_API 2368c2ecf20Sopenharmony_ci select HAVE_RELIABLE_STACKTRACE if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN 2378c2ecf20Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 2388c2ecf20Sopenharmony_ci select HAVE_VIRT_CPU_ACCOUNTING 2398c2ecf20Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 2408c2ecf20Sopenharmony_ci select HAVE_RSEQ 2418c2ecf20Sopenharmony_ci select IOMMU_HELPER if PPC64 2428c2ecf20Sopenharmony_ci select IRQ_DOMAIN 2438c2ecf20Sopenharmony_ci select IRQ_FORCED_THREADING 2448c2ecf20Sopenharmony_ci select MODULES_USE_ELF_RELA 2458c2ecf20Sopenharmony_ci select NEED_DMA_MAP_STATE if PPC64 || NOT_COHERENT_CACHE 2468c2ecf20Sopenharmony_ci select NEED_SG_DMA_LENGTH 2478c2ecf20Sopenharmony_ci select OF 2488c2ecf20Sopenharmony_ci select OF_DMA_DEFAULT_COHERENT if !NOT_COHERENT_CACHE 2498c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE 2508c2ecf20Sopenharmony_ci select OLD_SIGACTION if PPC32 2518c2ecf20Sopenharmony_ci select OLD_SIGSUSPEND 2528c2ecf20Sopenharmony_ci select PCI_DOMAINS if PCI 2538c2ecf20Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS if PCI_MSI 2548c2ecf20Sopenharmony_ci select PCI_SYSCALL if PCI 2558c2ecf20Sopenharmony_ci select PPC_DAWR if PPC64 2568c2ecf20Sopenharmony_ci select RTC_LIB 2578c2ecf20Sopenharmony_ci select SPARSE_IRQ 2588c2ecf20Sopenharmony_ci select SYSCTL_EXCEPTION_TRACE 2598c2ecf20Sopenharmony_ci select THREAD_INFO_IN_TASK 2608c2ecf20Sopenharmony_ci select VIRT_TO_BUS if !PPC64 2618c2ecf20Sopenharmony_ci # 2628c2ecf20Sopenharmony_ci # Please keep this list sorted alphabetically. 2638c2ecf20Sopenharmony_ci # 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ciconfig PPC_BARRIER_NOSPEC 2668c2ecf20Sopenharmony_ci bool 2678c2ecf20Sopenharmony_ci default y 2688c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 || PPC_FSL_BOOK3E 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciconfig EARLY_PRINTK 2718c2ecf20Sopenharmony_ci bool 2728c2ecf20Sopenharmony_ci default y 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciconfig PANIC_TIMEOUT 2758c2ecf20Sopenharmony_ci int 2768c2ecf20Sopenharmony_ci default 180 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ciconfig COMPAT 2798c2ecf20Sopenharmony_ci bool "Enable support for 32bit binaries" 2808c2ecf20Sopenharmony_ci depends on PPC64 2818c2ecf20Sopenharmony_ci default y if !CPU_LITTLE_ENDIAN 2828c2ecf20Sopenharmony_ci select COMPAT_BINFMT_ELF 2838c2ecf20Sopenharmony_ci select ARCH_WANT_OLD_COMPAT_IPC 2848c2ecf20Sopenharmony_ci select COMPAT_OLD_SIGACTION 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ciconfig SYSVIPC_COMPAT 2878c2ecf20Sopenharmony_ci bool 2888c2ecf20Sopenharmony_ci depends on COMPAT && SYSVIPC 2898c2ecf20Sopenharmony_ci default y 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER 2928c2ecf20Sopenharmony_ci bool 2938c2ecf20Sopenharmony_ci default y 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ciconfig ARCH_MAY_HAVE_PC_FDC 2968c2ecf20Sopenharmony_ci bool 2978c2ecf20Sopenharmony_ci default PCI 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ciconfig PPC_UDBG_16550 3008c2ecf20Sopenharmony_ci bool 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ciconfig GENERIC_TBSYNC 3038c2ecf20Sopenharmony_ci bool 3048c2ecf20Sopenharmony_ci default y if PPC32 && SMP 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ciconfig AUDIT_ARCH 3078c2ecf20Sopenharmony_ci bool 3088c2ecf20Sopenharmony_ci default y 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ciconfig GENERIC_BUG 3118c2ecf20Sopenharmony_ci bool 3128c2ecf20Sopenharmony_ci default y 3138c2ecf20Sopenharmony_ci depends on BUG 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_APM_EMULATION 3168c2ecf20Sopenharmony_ci default y if PMAC_APM_EMU 3178c2ecf20Sopenharmony_ci bool 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ciconfig EPAPR_BOOT 3208c2ecf20Sopenharmony_ci bool 3218c2ecf20Sopenharmony_ci help 3228c2ecf20Sopenharmony_ci Used to allow a board to specify it wants an ePAPR compliant wrapper. 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ciconfig DEFAULT_UIMAGE 3258c2ecf20Sopenharmony_ci bool 3268c2ecf20Sopenharmony_ci help 3278c2ecf20Sopenharmony_ci Used to allow a board to specify it wants a uImage built by default 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 3308c2ecf20Sopenharmony_ci bool 3318c2ecf20Sopenharmony_ci default y 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE 3348c2ecf20Sopenharmony_ci def_bool y 3358c2ecf20Sopenharmony_ci depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ 3368c2ecf20Sopenharmony_ci (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \ 3378c2ecf20Sopenharmony_ci || 44x || 40x 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_ciconfig ARCH_SUSPEND_NONZERO_CPU 3408c2ecf20Sopenharmony_ci def_bool y 3418c2ecf20Sopenharmony_ci depends on PPC_POWERNV || PPC_PSERIES 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ciconfig PPC_DCR_NATIVE 3448c2ecf20Sopenharmony_ci bool 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ciconfig PPC_DCR_MMIO 3478c2ecf20Sopenharmony_ci bool 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ciconfig PPC_DCR 3508c2ecf20Sopenharmony_ci bool 3518c2ecf20Sopenharmony_ci depends on PPC_DCR_NATIVE || PPC_DCR_MMIO 3528c2ecf20Sopenharmony_ci default y 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ciconfig PPC_OF_PLATFORM_PCI 3558c2ecf20Sopenharmony_ci bool 3568c2ecf20Sopenharmony_ci depends on PCI 3578c2ecf20Sopenharmony_ci depends on PPC64 # not supported on 32 bits yet 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_DEBUG_PAGEALLOC 3608c2ecf20Sopenharmony_ci depends on PPC32 || PPC_BOOK3S_64 3618c2ecf20Sopenharmony_ci def_bool y 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES 3648c2ecf20Sopenharmony_ci def_bool y 3658c2ecf20Sopenharmony_ci 3668c2ecf20Sopenharmony_ciconfig PPC_ADV_DEBUG_REGS 3678c2ecf20Sopenharmony_ci bool 3688c2ecf20Sopenharmony_ci depends on 40x || BOOKE 3698c2ecf20Sopenharmony_ci default y 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ciconfig PPC_ADV_DEBUG_IACS 3728c2ecf20Sopenharmony_ci int 3738c2ecf20Sopenharmony_ci depends on PPC_ADV_DEBUG_REGS 3748c2ecf20Sopenharmony_ci default 4 if 44x 3758c2ecf20Sopenharmony_ci default 2 3768c2ecf20Sopenharmony_ci 3778c2ecf20Sopenharmony_ciconfig PPC_ADV_DEBUG_DACS 3788c2ecf20Sopenharmony_ci int 3798c2ecf20Sopenharmony_ci depends on PPC_ADV_DEBUG_REGS 3808c2ecf20Sopenharmony_ci default 2 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ciconfig PPC_ADV_DEBUG_DVCS 3838c2ecf20Sopenharmony_ci int 3848c2ecf20Sopenharmony_ci depends on PPC_ADV_DEBUG_REGS 3858c2ecf20Sopenharmony_ci default 2 if 44x 3868c2ecf20Sopenharmony_ci default 0 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_ciconfig PPC_ADV_DEBUG_DAC_RANGE 3898c2ecf20Sopenharmony_ci bool 3908c2ecf20Sopenharmony_ci depends on PPC_ADV_DEBUG_REGS && 44x 3918c2ecf20Sopenharmony_ci default y 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ciconfig PPC_DAWR 3948c2ecf20Sopenharmony_ci bool 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ciconfig ZONE_DMA 3978c2ecf20Sopenharmony_ci bool 3988c2ecf20Sopenharmony_ci default y if PPC_BOOK3E_64 3998c2ecf20Sopenharmony_ci 4008c2ecf20Sopenharmony_ciconfig PGTABLE_LEVELS 4018c2ecf20Sopenharmony_ci int 4028c2ecf20Sopenharmony_ci default 2 if !PPC64 4038c2ecf20Sopenharmony_ci default 4 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_cisource "arch/powerpc/sysdev/Kconfig" 4068c2ecf20Sopenharmony_cisource "arch/powerpc/platforms/Kconfig" 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_cimenu "Kernel options" 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ciconfig HIGHMEM 4118c2ecf20Sopenharmony_ci bool "High memory support" 4128c2ecf20Sopenharmony_ci depends on PPC32 4138c2ecf20Sopenharmony_ci 4148c2ecf20Sopenharmony_cisource "kernel/Kconfig.hz" 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ciconfig HUGETLB_PAGE_SIZE_VARIABLE 4178c2ecf20Sopenharmony_ci bool 4188c2ecf20Sopenharmony_ci depends on HUGETLB_PAGE && PPC_BOOK3S_64 4198c2ecf20Sopenharmony_ci default y 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ciconfig MATH_EMULATION 4228c2ecf20Sopenharmony_ci bool "Math emulation" 4238c2ecf20Sopenharmony_ci depends on 4xx || PPC_8xx || PPC_MPC832x || BOOKE 4248c2ecf20Sopenharmony_ci help 4258c2ecf20Sopenharmony_ci Some PowerPC chips designed for embedded applications do not have 4268c2ecf20Sopenharmony_ci a floating-point unit and therefore do not implement the 4278c2ecf20Sopenharmony_ci floating-point instructions in the PowerPC instruction set. If you 4288c2ecf20Sopenharmony_ci say Y here, the kernel will include code to emulate a floating-point 4298c2ecf20Sopenharmony_ci unit, which will allow programs that use floating-point 4308c2ecf20Sopenharmony_ci instructions to run. 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ci This is also useful to emulate missing (optional) instructions 4338c2ecf20Sopenharmony_ci such as fsqrt on cores that do have an FPU but do not implement 4348c2ecf20Sopenharmony_ci them (such as Freescale BookE). 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_cichoice 4378c2ecf20Sopenharmony_ci prompt "Math emulation options" 4388c2ecf20Sopenharmony_ci default MATH_EMULATION_FULL 4398c2ecf20Sopenharmony_ci depends on MATH_EMULATION 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ciconfig MATH_EMULATION_FULL 4428c2ecf20Sopenharmony_ci bool "Emulate all the floating point instructions" 4438c2ecf20Sopenharmony_ci help 4448c2ecf20Sopenharmony_ci Select this option will enable the kernel to support to emulate 4458c2ecf20Sopenharmony_ci all the floating point instructions. If your SoC doesn't have 4468c2ecf20Sopenharmony_ci a FPU, you should select this. 4478c2ecf20Sopenharmony_ci 4488c2ecf20Sopenharmony_ciconfig MATH_EMULATION_HW_UNIMPLEMENTED 4498c2ecf20Sopenharmony_ci bool "Just emulate the FPU unimplemented instructions" 4508c2ecf20Sopenharmony_ci help 4518c2ecf20Sopenharmony_ci Select this if you know there does have a hardware FPU on your 4528c2ecf20Sopenharmony_ci SoC, but some floating point instructions are not implemented by that. 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ciendchoice 4558c2ecf20Sopenharmony_ci 4568c2ecf20Sopenharmony_ciconfig PPC_TRANSACTIONAL_MEM 4578c2ecf20Sopenharmony_ci bool "Transactional Memory support for POWERPC" 4588c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 4598c2ecf20Sopenharmony_ci depends on SMP 4608c2ecf20Sopenharmony_ci select ALTIVEC 4618c2ecf20Sopenharmony_ci select VSX 4628c2ecf20Sopenharmony_ci help 4638c2ecf20Sopenharmony_ci Support user-mode Transactional Memory on POWERPC. 4648c2ecf20Sopenharmony_ci 4658c2ecf20Sopenharmony_ciconfig PPC_UV 4668c2ecf20Sopenharmony_ci bool "Ultravisor support" 4678c2ecf20Sopenharmony_ci depends on KVM_BOOK3S_HV_POSSIBLE 4688c2ecf20Sopenharmony_ci depends on DEVICE_PRIVATE 4698c2ecf20Sopenharmony_ci default n 4708c2ecf20Sopenharmony_ci help 4718c2ecf20Sopenharmony_ci This option paravirtualizes the kernel to run in POWER platforms that 4728c2ecf20Sopenharmony_ci supports the Protected Execution Facility (PEF). On such platforms, 4738c2ecf20Sopenharmony_ci the ultravisor firmware runs at a privilege level above the 4748c2ecf20Sopenharmony_ci hypervisor. 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci If unsure, say "N". 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ciconfig LD_HEAD_STUB_CATCH 4798c2ecf20Sopenharmony_ci bool "Reserve 256 bytes to cope with linker stubs in HEAD text" if EXPERT 4808c2ecf20Sopenharmony_ci depends on PPC64 4818c2ecf20Sopenharmony_ci help 4828c2ecf20Sopenharmony_ci Very large kernels can cause linker branch stubs to be generated by 4838c2ecf20Sopenharmony_ci code in head_64.S, which moves the head text sections out of their 4848c2ecf20Sopenharmony_ci specified location. This option can work around the problem. 4858c2ecf20Sopenharmony_ci 4868c2ecf20Sopenharmony_ci If unsure, say "N". 4878c2ecf20Sopenharmony_ci 4888c2ecf20Sopenharmony_ciconfig MPROFILE_KERNEL 4898c2ecf20Sopenharmony_ci depends on PPC64 && CPU_LITTLE_ENDIAN && FUNCTION_TRACER 4908c2ecf20Sopenharmony_ci def_bool $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) -I$(srctree)/include -D__KERNEL__) 4918c2ecf20Sopenharmony_ci 4928c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU 4938c2ecf20Sopenharmony_ci bool "Support for enabling/disabling CPUs" 4948c2ecf20Sopenharmony_ci depends on SMP && (PPC_PSERIES || \ 4958c2ecf20Sopenharmony_ci PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE) 4968c2ecf20Sopenharmony_ci help 4978c2ecf20Sopenharmony_ci Say Y here to be able to disable and re-enable individual 4988c2ecf20Sopenharmony_ci CPUs at runtime on SMP machines. 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ci Say N if you are unsure. 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ciconfig PPC_QUEUED_SPINLOCKS 5038c2ecf20Sopenharmony_ci bool "Queued spinlocks" 5048c2ecf20Sopenharmony_ci depends on SMP 5058c2ecf20Sopenharmony_ci help 5068c2ecf20Sopenharmony_ci Say Y here to use queued spinlocks which give better scalability and 5078c2ecf20Sopenharmony_ci fairness on large SMP and NUMA systems without harming single threaded 5088c2ecf20Sopenharmony_ci performance. 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci This option is currently experimental, the code is more complex and 5118c2ecf20Sopenharmony_ci less tested so it defaults to "N" for the moment. 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_ci If unsure, say "N". 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ciconfig ARCH_CPU_PROBE_RELEASE 5168c2ecf20Sopenharmony_ci def_bool y 5178c2ecf20Sopenharmony_ci depends on HOTPLUG_CPU 5188c2ecf20Sopenharmony_ci 5198c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTPLUG 5208c2ecf20Sopenharmony_ci def_bool y 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTREMOVE 5238c2ecf20Sopenharmony_ci def_bool y 5248c2ecf20Sopenharmony_ci 5258c2ecf20Sopenharmony_ciconfig PPC64_SUPPORTS_MEMORY_FAILURE 5268c2ecf20Sopenharmony_ci bool "Add support for memory hwpoison" 5278c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 5288c2ecf20Sopenharmony_ci default "y" if PPC_POWERNV 5298c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_MEMORY_FAILURE 5308c2ecf20Sopenharmony_ci 5318c2ecf20Sopenharmony_ciconfig KEXEC 5328c2ecf20Sopenharmony_ci bool "kexec system call" 5338c2ecf20Sopenharmony_ci depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E 5348c2ecf20Sopenharmony_ci select KEXEC_CORE 5358c2ecf20Sopenharmony_ci help 5368c2ecf20Sopenharmony_ci kexec is a system call that implements the ability to shutdown your 5378c2ecf20Sopenharmony_ci current kernel, and to start another kernel. It is like a reboot 5388c2ecf20Sopenharmony_ci but it is independent of the system firmware. And like a reboot 5398c2ecf20Sopenharmony_ci you can start any kernel with it, not just Linux. 5408c2ecf20Sopenharmony_ci 5418c2ecf20Sopenharmony_ci The name comes from the similarity to the exec system call. 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_ci It is an ongoing process to be certain the hardware in a machine 5448c2ecf20Sopenharmony_ci is properly shutdown, so do not be surprised if this code does not 5458c2ecf20Sopenharmony_ci initially work for you. As of this writing the exact hardware 5468c2ecf20Sopenharmony_ci interface is strongly in flux, so no good recommendation can be 5478c2ecf20Sopenharmony_ci made. 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ciconfig KEXEC_FILE 5508c2ecf20Sopenharmony_ci bool "kexec file based system call" 5518c2ecf20Sopenharmony_ci select KEXEC_CORE 5528c2ecf20Sopenharmony_ci select HAVE_IMA_KEXEC 5538c2ecf20Sopenharmony_ci select BUILD_BIN2C 5548c2ecf20Sopenharmony_ci select KEXEC_ELF 5558c2ecf20Sopenharmony_ci depends on PPC64 5568c2ecf20Sopenharmony_ci depends on CRYPTO=y 5578c2ecf20Sopenharmony_ci depends on CRYPTO_SHA256=y 5588c2ecf20Sopenharmony_ci help 5598c2ecf20Sopenharmony_ci This is a new version of the kexec system call. This call is 5608c2ecf20Sopenharmony_ci file based and takes in file descriptors as system call arguments 5618c2ecf20Sopenharmony_ci for kernel and initramfs as opposed to a list of segments as is the 5628c2ecf20Sopenharmony_ci case for the older kexec call. 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ciconfig ARCH_HAS_KEXEC_PURGATORY 5658c2ecf20Sopenharmony_ci def_bool KEXEC_FILE 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ciconfig RELOCATABLE 5688c2ecf20Sopenharmony_ci bool "Build a relocatable kernel" 5698c2ecf20Sopenharmony_ci depends on PPC64 || (FLATMEM && (44x || FSL_BOOKE)) 5708c2ecf20Sopenharmony_ci select NONSTATIC_KERNEL 5718c2ecf20Sopenharmony_ci select MODULE_REL_CRCS if MODVERSIONS 5728c2ecf20Sopenharmony_ci help 5738c2ecf20Sopenharmony_ci This builds a kernel image that is capable of running at the 5748c2ecf20Sopenharmony_ci location the kernel is loaded at. For ppc32, there is no any 5758c2ecf20Sopenharmony_ci alignment restrictions, and this feature is a superset of 5768c2ecf20Sopenharmony_ci DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use 5778c2ecf20Sopenharmony_ci 16k-aligned base address. The kernel is linked as a 5788c2ecf20Sopenharmony_ci position-independent executable (PIE) and contains dynamic relocations 5798c2ecf20Sopenharmony_ci which are processed early in the bootup process. 5808c2ecf20Sopenharmony_ci 5818c2ecf20Sopenharmony_ci One use is for the kexec on panic case where the recovery kernel 5828c2ecf20Sopenharmony_ci must live at a different physical address than the primary 5838c2ecf20Sopenharmony_ci kernel. 5848c2ecf20Sopenharmony_ci 5858c2ecf20Sopenharmony_ci Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 5868c2ecf20Sopenharmony_ci it has been loaded at and the compile time physical addresses 5878c2ecf20Sopenharmony_ci CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START 5888c2ecf20Sopenharmony_ci setting can still be useful to bootwrappers that need to know the 5898c2ecf20Sopenharmony_ci load address of the kernel (eg. u-boot/mkimage). 5908c2ecf20Sopenharmony_ci 5918c2ecf20Sopenharmony_ciconfig RANDOMIZE_BASE 5928c2ecf20Sopenharmony_ci bool "Randomize the address of the kernel image" 5938c2ecf20Sopenharmony_ci depends on (FSL_BOOKE && FLATMEM && PPC32) 5948c2ecf20Sopenharmony_ci depends on RELOCATABLE 5958c2ecf20Sopenharmony_ci help 5968c2ecf20Sopenharmony_ci Randomizes the virtual address at which the kernel image is 5978c2ecf20Sopenharmony_ci loaded, as a security feature that deters exploit attempts 5988c2ecf20Sopenharmony_ci relying on knowledge of the location of kernel internals. 5998c2ecf20Sopenharmony_ci 6008c2ecf20Sopenharmony_ci If unsure, say Y. 6018c2ecf20Sopenharmony_ci 6028c2ecf20Sopenharmony_ciconfig RELOCATABLE_TEST 6038c2ecf20Sopenharmony_ci bool "Test relocatable kernel" 6048c2ecf20Sopenharmony_ci depends on (PPC64 && RELOCATABLE) 6058c2ecf20Sopenharmony_ci help 6068c2ecf20Sopenharmony_ci This runs the relocatable kernel at the address it was initially 6078c2ecf20Sopenharmony_ci loaded at, which tends to be non-zero and therefore test the 6088c2ecf20Sopenharmony_ci relocation code. 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ciconfig CRASH_DUMP 6118c2ecf20Sopenharmony_ci bool "Build a dump capture kernel" 6128c2ecf20Sopenharmony_ci depends on PPC64 || PPC_BOOK3S_32 || FSL_BOOKE || (44x && !SMP) 6138c2ecf20Sopenharmony_ci select RELOCATABLE if PPC64 || 44x || FSL_BOOKE 6148c2ecf20Sopenharmony_ci help 6158c2ecf20Sopenharmony_ci Build a kernel suitable for use as a dump capture kernel. 6168c2ecf20Sopenharmony_ci The same kernel binary can be used as production kernel and dump 6178c2ecf20Sopenharmony_ci capture kernel. 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_ciconfig FA_DUMP 6208c2ecf20Sopenharmony_ci bool "Firmware-assisted dump" 6218c2ecf20Sopenharmony_ci depends on PPC64 && (PPC_RTAS || PPC_POWERNV) 6228c2ecf20Sopenharmony_ci select CRASH_CORE 6238c2ecf20Sopenharmony_ci select CRASH_DUMP 6248c2ecf20Sopenharmony_ci help 6258c2ecf20Sopenharmony_ci A robust mechanism to get reliable kernel crash dump with 6268c2ecf20Sopenharmony_ci assistance from firmware. This approach does not use kexec, 6278c2ecf20Sopenharmony_ci instead firmware assists in booting the capture kernel 6288c2ecf20Sopenharmony_ci while preserving memory contents. Firmware-assisted dump 6298c2ecf20Sopenharmony_ci is meant to be a kdump replacement offering robustness and 6308c2ecf20Sopenharmony_ci speed not possible without system firmware assistance. 6318c2ecf20Sopenharmony_ci 6328c2ecf20Sopenharmony_ci If unsure, say "y". Only special kernels like petitboot may 6338c2ecf20Sopenharmony_ci need to say "N" here. 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_ciconfig PRESERVE_FA_DUMP 6368c2ecf20Sopenharmony_ci bool "Preserve Firmware-assisted dump" 6378c2ecf20Sopenharmony_ci depends on PPC64 && PPC_POWERNV && !FA_DUMP 6388c2ecf20Sopenharmony_ci help 6398c2ecf20Sopenharmony_ci On a kernel with FA_DUMP disabled, this option helps to preserve 6408c2ecf20Sopenharmony_ci crash data from a previously crash'ed kernel. Useful when the next 6418c2ecf20Sopenharmony_ci memory preserving kernel boot would process this crash data. 6428c2ecf20Sopenharmony_ci Petitboot kernel is the typical usecase for this option. 6438c2ecf20Sopenharmony_ci 6448c2ecf20Sopenharmony_ciconfig OPAL_CORE 6458c2ecf20Sopenharmony_ci bool "Export OPAL memory as /sys/firmware/opal/core" 6468c2ecf20Sopenharmony_ci depends on PPC64 && PPC_POWERNV 6478c2ecf20Sopenharmony_ci help 6488c2ecf20Sopenharmony_ci This option uses the MPIPL support in firmware to provide an 6498c2ecf20Sopenharmony_ci ELF core of OPAL memory after a crash. The ELF core is exported 6508c2ecf20Sopenharmony_ci as /sys/firmware/opal/core file which is helpful in debugging 6518c2ecf20Sopenharmony_ci OPAL crashes using GDB. 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_ciconfig IRQ_ALL_CPUS 6548c2ecf20Sopenharmony_ci bool "Distribute interrupts on all CPUs by default" 6558c2ecf20Sopenharmony_ci depends on SMP 6568c2ecf20Sopenharmony_ci help 6578c2ecf20Sopenharmony_ci This option gives the kernel permission to distribute IRQs across 6588c2ecf20Sopenharmony_ci multiple CPUs. Saying N here will route all IRQs to the first 6598c2ecf20Sopenharmony_ci CPU. Generally saying Y is safe, although some problems have been 6608c2ecf20Sopenharmony_ci reported with SMP Power Macintoshes with this option enabled. 6618c2ecf20Sopenharmony_ci 6628c2ecf20Sopenharmony_ciconfig NUMA 6638c2ecf20Sopenharmony_ci bool "NUMA support" 6648c2ecf20Sopenharmony_ci depends on PPC64 6658c2ecf20Sopenharmony_ci default y if SMP && PPC_PSERIES 6668c2ecf20Sopenharmony_ci 6678c2ecf20Sopenharmony_ciconfig NODES_SHIFT 6688c2ecf20Sopenharmony_ci int 6698c2ecf20Sopenharmony_ci default "8" if PPC64 6708c2ecf20Sopenharmony_ci default "4" 6718c2ecf20Sopenharmony_ci depends on NEED_MULTIPLE_NODES 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_ciconfig USE_PERCPU_NUMA_NODE_ID 6748c2ecf20Sopenharmony_ci def_bool y 6758c2ecf20Sopenharmony_ci depends on NUMA 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_ciconfig HAVE_MEMORYLESS_NODES 6788c2ecf20Sopenharmony_ci def_bool y 6798c2ecf20Sopenharmony_ci depends on NUMA 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_ciconfig ARCH_SELECT_MEMORY_MODEL 6828c2ecf20Sopenharmony_ci def_bool y 6838c2ecf20Sopenharmony_ci depends on PPC64 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE 6868c2ecf20Sopenharmony_ci def_bool y 6878c2ecf20Sopenharmony_ci depends on (PPC64 && !NUMA) || PPC32 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE 6908c2ecf20Sopenharmony_ci def_bool y 6918c2ecf20Sopenharmony_ci depends on PPC64 6928c2ecf20Sopenharmony_ci select SPARSEMEM_VMEMMAP_ENABLE 6938c2ecf20Sopenharmony_ci 6948c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_DEFAULT 6958c2ecf20Sopenharmony_ci def_bool y 6968c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 6978c2ecf20Sopenharmony_ci 6988c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_HUGETLBFS 6998c2ecf20Sopenharmony_ci bool 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_ciconfig ILLEGAL_POINTER_VALUE 7028c2ecf20Sopenharmony_ci hex 7038c2ecf20Sopenharmony_ci # This is roughly half way between the top of user space and the bottom 7048c2ecf20Sopenharmony_ci # of kernel space, which seems about as good as we can get. 7058c2ecf20Sopenharmony_ci default 0x5deadbeef0000000 if PPC64 7068c2ecf20Sopenharmony_ci default 0 7078c2ecf20Sopenharmony_ci 7088c2ecf20Sopenharmony_ciconfig ARCH_MEMORY_PROBE 7098c2ecf20Sopenharmony_ci def_bool y 7108c2ecf20Sopenharmony_ci depends on MEMORY_HOTPLUG 7118c2ecf20Sopenharmony_ci 7128c2ecf20Sopenharmony_ciconfig STDBINUTILS 7138c2ecf20Sopenharmony_ci bool "Using standard binutils settings" 7148c2ecf20Sopenharmony_ci depends on 44x 7158c2ecf20Sopenharmony_ci default y 7168c2ecf20Sopenharmony_ci help 7178c2ecf20Sopenharmony_ci Turning this option off allows you to select 256KB PAGE_SIZE on 44x. 7188c2ecf20Sopenharmony_ci Note, that kernel will be able to run only those applications, 7198c2ecf20Sopenharmony_ci which had been compiled using binutils later than 2.17.50.0.3 with 7208c2ecf20Sopenharmony_ci '-zmax-page-size' set to 256K (the default is 64K). Or, if using 7218c2ecf20Sopenharmony_ci the older binutils, you can patch them with a trivial patch, which 7228c2ecf20Sopenharmony_ci changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000. 7238c2ecf20Sopenharmony_ci 7248c2ecf20Sopenharmony_cichoice 7258c2ecf20Sopenharmony_ci prompt "Page size" 7268c2ecf20Sopenharmony_ci default PPC_4K_PAGES 7278c2ecf20Sopenharmony_ci help 7288c2ecf20Sopenharmony_ci Select the kernel logical page size. Increasing the page size 7298c2ecf20Sopenharmony_ci will reduce software overhead at each page boundary, allow 7308c2ecf20Sopenharmony_ci hardware prefetch mechanisms to be more effective, and allow 7318c2ecf20Sopenharmony_ci larger dma transfers increasing IO efficiency and reducing 7328c2ecf20Sopenharmony_ci overhead. However the utilization of memory will increase. 7338c2ecf20Sopenharmony_ci For example, each cached file will using a multiple of the 7348c2ecf20Sopenharmony_ci page size to hold its contents and the difference between the 7358c2ecf20Sopenharmony_ci end of file and the end of page is wasted. 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_ci Some dedicated systems, such as software raid serving with 7388c2ecf20Sopenharmony_ci accelerated calculations, have shown significant increases. 7398c2ecf20Sopenharmony_ci 7408c2ecf20Sopenharmony_ci If you configure a 64 bit kernel for 64k pages but the 7418c2ecf20Sopenharmony_ci processor does not support them, then the kernel will simulate 7428c2ecf20Sopenharmony_ci them with 4k pages, loading them on demand, but with the 7438c2ecf20Sopenharmony_ci reduced software overhead and larger internal fragmentation. 7448c2ecf20Sopenharmony_ci For the 32 bit kernel, a large page option will not be offered 7458c2ecf20Sopenharmony_ci unless it is supported by the configured processor. 7468c2ecf20Sopenharmony_ci 7478c2ecf20Sopenharmony_ci If unsure, choose 4K_PAGES. 7488c2ecf20Sopenharmony_ci 7498c2ecf20Sopenharmony_ciconfig PPC_4K_PAGES 7508c2ecf20Sopenharmony_ci bool "4k page size" 7518c2ecf20Sopenharmony_ci select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 7528c2ecf20Sopenharmony_ci 7538c2ecf20Sopenharmony_ciconfig PPC_16K_PAGES 7548c2ecf20Sopenharmony_ci bool "16k page size" 7558c2ecf20Sopenharmony_ci depends on 44x || PPC_8xx 7568c2ecf20Sopenharmony_ci 7578c2ecf20Sopenharmony_ciconfig PPC_64K_PAGES 7588c2ecf20Sopenharmony_ci bool "64k page size" 7598c2ecf20Sopenharmony_ci depends on 44x || PPC_BOOK3S_64 7608c2ecf20Sopenharmony_ci select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64 7618c2ecf20Sopenharmony_ci 7628c2ecf20Sopenharmony_ciconfig PPC_256K_PAGES 7638c2ecf20Sopenharmony_ci bool "256k page size" 7648c2ecf20Sopenharmony_ci depends on 44x && !STDBINUTILS && !PPC_47x 7658c2ecf20Sopenharmony_ci help 7668c2ecf20Sopenharmony_ci Make the page size 256k. 7678c2ecf20Sopenharmony_ci 7688c2ecf20Sopenharmony_ci As the ELF standard only requires alignment to support page 7698c2ecf20Sopenharmony_ci sizes up to 64k, you will need to compile all of your user 7708c2ecf20Sopenharmony_ci space applications with a non-standard binutils settings 7718c2ecf20Sopenharmony_ci (see the STDBINUTILS description for details). 7728c2ecf20Sopenharmony_ci 7738c2ecf20Sopenharmony_ci Say N unless you know what you are doing. 7748c2ecf20Sopenharmony_ci 7758c2ecf20Sopenharmony_ciendchoice 7768c2ecf20Sopenharmony_ci 7778c2ecf20Sopenharmony_ciconfig PPC_PAGE_SHIFT 7788c2ecf20Sopenharmony_ci int 7798c2ecf20Sopenharmony_ci default 18 if PPC_256K_PAGES 7808c2ecf20Sopenharmony_ci default 16 if PPC_64K_PAGES 7818c2ecf20Sopenharmony_ci default 14 if PPC_16K_PAGES 7828c2ecf20Sopenharmony_ci default 12 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_ciconfig THREAD_SHIFT 7858c2ecf20Sopenharmony_ci int "Thread shift" if EXPERT 7868c2ecf20Sopenharmony_ci range 13 15 7878c2ecf20Sopenharmony_ci default "15" if PPC_256K_PAGES 7888c2ecf20Sopenharmony_ci default "14" if PPC64 7898c2ecf20Sopenharmony_ci default "13" 7908c2ecf20Sopenharmony_ci help 7918c2ecf20Sopenharmony_ci Used to define the stack size. The default is almost always what you 7928c2ecf20Sopenharmony_ci want. Only change this if you know what you are doing. 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ciconfig DATA_SHIFT_BOOL 7958c2ecf20Sopenharmony_ci bool "Set custom data alignment" 7968c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS 7978c2ecf20Sopenharmony_ci depends on STRICT_KERNEL_RWX || DEBUG_PAGEALLOC 7988c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_32 || (PPC_8xx && !PIN_TLB_DATA && \ 7998c2ecf20Sopenharmony_ci (!PIN_TLB_TEXT || !STRICT_KERNEL_RWX)) 8008c2ecf20Sopenharmony_ci help 8018c2ecf20Sopenharmony_ci This option allows you to set the kernel data alignment. When 8028c2ecf20Sopenharmony_ci RAM is mapped by blocks, the alignment needs to fit the size and 8038c2ecf20Sopenharmony_ci number of possible blocks. The default should be OK for most configs. 8048c2ecf20Sopenharmony_ci 8058c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 8068c2ecf20Sopenharmony_ci 8078c2ecf20Sopenharmony_ciconfig DATA_SHIFT 8088c2ecf20Sopenharmony_ci int "Data shift" if DATA_SHIFT_BOOL 8098c2ecf20Sopenharmony_ci default 24 if STRICT_KERNEL_RWX && PPC64 8108c2ecf20Sopenharmony_ci range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_BOOK3S_32 8118c2ecf20Sopenharmony_ci range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_8xx 8128c2ecf20Sopenharmony_ci default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 8138c2ecf20Sopenharmony_ci default 18 if DEBUG_PAGEALLOC && PPC_BOOK3S_32 8148c2ecf20Sopenharmony_ci default 23 if STRICT_KERNEL_RWX && PPC_8xx 8158c2ecf20Sopenharmony_ci default 23 if DEBUG_PAGEALLOC && PPC_8xx && PIN_TLB_DATA 8168c2ecf20Sopenharmony_ci default 19 if DEBUG_PAGEALLOC && PPC_8xx 8178c2ecf20Sopenharmony_ci default PPC_PAGE_SHIFT 8188c2ecf20Sopenharmony_ci help 8198c2ecf20Sopenharmony_ci On Book3S 32 (603+), DBATs are used to map kernel text and rodata RO. 8208c2ecf20Sopenharmony_ci Smaller is the alignment, greater is the number of necessary DBATs. 8218c2ecf20Sopenharmony_ci 8228c2ecf20Sopenharmony_ci On 8xx, large pages (512kb or 8M) are used to map kernel linear 8238c2ecf20Sopenharmony_ci memory. Aligning to 8M reduces TLB misses as only 8M pages are used 8248c2ecf20Sopenharmony_ci in that case. If PIN_TLB is selected, it must be aligned to 8M as 8258c2ecf20Sopenharmony_ci 8M pages will be pinned. 8268c2ecf20Sopenharmony_ci 8278c2ecf20Sopenharmony_ciconfig FORCE_MAX_ZONEORDER 8288c2ecf20Sopenharmony_ci int "Maximum zone order" 8298c2ecf20Sopenharmony_ci range 8 9 if PPC64 && PPC_64K_PAGES 8308c2ecf20Sopenharmony_ci default "9" if PPC64 && PPC_64K_PAGES 8318c2ecf20Sopenharmony_ci range 13 13 if PPC64 && !PPC_64K_PAGES 8328c2ecf20Sopenharmony_ci default "13" if PPC64 && !PPC_64K_PAGES 8338c2ecf20Sopenharmony_ci range 9 64 if PPC32 && PPC_16K_PAGES 8348c2ecf20Sopenharmony_ci default "9" if PPC32 && PPC_16K_PAGES 8358c2ecf20Sopenharmony_ci range 7 64 if PPC32 && PPC_64K_PAGES 8368c2ecf20Sopenharmony_ci default "7" if PPC32 && PPC_64K_PAGES 8378c2ecf20Sopenharmony_ci range 5 64 if PPC32 && PPC_256K_PAGES 8388c2ecf20Sopenharmony_ci default "5" if PPC32 && PPC_256K_PAGES 8398c2ecf20Sopenharmony_ci range 11 64 8408c2ecf20Sopenharmony_ci default "11" 8418c2ecf20Sopenharmony_ci help 8428c2ecf20Sopenharmony_ci The kernel memory allocator divides physically contiguous memory 8438c2ecf20Sopenharmony_ci blocks into "zones", where each zone is a power of two number of 8448c2ecf20Sopenharmony_ci pages. This option selects the largest power of two that the kernel 8458c2ecf20Sopenharmony_ci keeps in the memory allocator. If you need to allocate very large 8468c2ecf20Sopenharmony_ci blocks of physically contiguous memory, then you may need to 8478c2ecf20Sopenharmony_ci increase this value. 8488c2ecf20Sopenharmony_ci 8498c2ecf20Sopenharmony_ci This config option is actually maximum order plus one. For example, 8508c2ecf20Sopenharmony_ci a value of 11 means that the largest free memory block is 2^10 pages. 8518c2ecf20Sopenharmony_ci 8528c2ecf20Sopenharmony_ci The page size is not necessarily 4KB. For example, on 64-bit 8538c2ecf20Sopenharmony_ci systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep 8548c2ecf20Sopenharmony_ci this in mind when choosing a value for this option. 8558c2ecf20Sopenharmony_ci 8568c2ecf20Sopenharmony_ciconfig PPC_SUBPAGE_PROT 8578c2ecf20Sopenharmony_ci bool "Support setting protections for 4k subpages (subpage_prot syscall)" 8588c2ecf20Sopenharmony_ci default n 8598c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 && PPC_64K_PAGES 8608c2ecf20Sopenharmony_ci help 8618c2ecf20Sopenharmony_ci This option adds support for system call to allow user programs 8628c2ecf20Sopenharmony_ci to set access permissions (read/write, readonly, or no access) 8638c2ecf20Sopenharmony_ci on the 4k subpages of each 64k page. 8648c2ecf20Sopenharmony_ci 8658c2ecf20Sopenharmony_ci If unsure, say N here. 8668c2ecf20Sopenharmony_ci 8678c2ecf20Sopenharmony_ciconfig PPC_PROT_SAO_LPAR 8688c2ecf20Sopenharmony_ci bool "Support PROT_SAO mappings in LPARs" 8698c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 8708c2ecf20Sopenharmony_ci help 8718c2ecf20Sopenharmony_ci This option adds support for PROT_SAO mappings from userspace 8728c2ecf20Sopenharmony_ci inside LPARs on supported CPUs. 8738c2ecf20Sopenharmony_ci 8748c2ecf20Sopenharmony_ci This may cause issues when performing guest migration from 8758c2ecf20Sopenharmony_ci a CPU that supports SAO to one that does not. 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_ci If unsure, say N here. 8788c2ecf20Sopenharmony_ci 8798c2ecf20Sopenharmony_ciconfig PPC_COPRO_BASE 8808c2ecf20Sopenharmony_ci bool 8818c2ecf20Sopenharmony_ci 8828c2ecf20Sopenharmony_ciconfig SCHED_SMT 8838c2ecf20Sopenharmony_ci bool "SMT (Hyperthreading) scheduler support" 8848c2ecf20Sopenharmony_ci depends on PPC64 && SMP 8858c2ecf20Sopenharmony_ci help 8868c2ecf20Sopenharmony_ci SMT scheduler support improves the CPU scheduler's decision making 8878c2ecf20Sopenharmony_ci when dealing with POWER5 cpus at a cost of slightly increased 8888c2ecf20Sopenharmony_ci overhead in some places. If unsure say N here. 8898c2ecf20Sopenharmony_ci 8908c2ecf20Sopenharmony_ciconfig PPC_DENORMALISATION 8918c2ecf20Sopenharmony_ci bool "PowerPC denormalisation exception handling" 8928c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 8938c2ecf20Sopenharmony_ci default "y" if PPC_POWERNV 8948c2ecf20Sopenharmony_ci help 8958c2ecf20Sopenharmony_ci Add support for handling denormalisation of single precision 8968c2ecf20Sopenharmony_ci values. Useful for bare metal only. If unsure say Y here. 8978c2ecf20Sopenharmony_ci 8988c2ecf20Sopenharmony_ciconfig CMDLINE 8998c2ecf20Sopenharmony_ci string "Initial kernel command string" 9008c2ecf20Sopenharmony_ci default "" 9018c2ecf20Sopenharmony_ci help 9028c2ecf20Sopenharmony_ci On some platforms, there is currently no way for the boot loader to 9038c2ecf20Sopenharmony_ci pass arguments to the kernel. For these platforms, you can supply 9048c2ecf20Sopenharmony_ci some command-line options at build time by entering them here. In 9058c2ecf20Sopenharmony_ci most cases you will need to specify the root device here. 9068c2ecf20Sopenharmony_ci 9078c2ecf20Sopenharmony_cichoice 9088c2ecf20Sopenharmony_ci prompt "Kernel command line type" if CMDLINE != "" 9098c2ecf20Sopenharmony_ci default CMDLINE_FROM_BOOTLOADER 9108c2ecf20Sopenharmony_ci 9118c2ecf20Sopenharmony_ciconfig CMDLINE_FROM_BOOTLOADER 9128c2ecf20Sopenharmony_ci bool "Use bootloader kernel arguments if available" 9138c2ecf20Sopenharmony_ci help 9148c2ecf20Sopenharmony_ci Uses the command-line options passed by the boot loader. If 9158c2ecf20Sopenharmony_ci the boot loader doesn't provide any, the default kernel command 9168c2ecf20Sopenharmony_ci string provided in CMDLINE will be used. 9178c2ecf20Sopenharmony_ci 9188c2ecf20Sopenharmony_ciconfig CMDLINE_EXTEND 9198c2ecf20Sopenharmony_ci bool "Extend bootloader kernel arguments" 9208c2ecf20Sopenharmony_ci help 9218c2ecf20Sopenharmony_ci The command-line arguments provided by the boot loader will be 9228c2ecf20Sopenharmony_ci appended to the default kernel command string. 9238c2ecf20Sopenharmony_ci 9248c2ecf20Sopenharmony_ciconfig CMDLINE_FORCE 9258c2ecf20Sopenharmony_ci bool "Always use the default kernel command string" 9268c2ecf20Sopenharmony_ci help 9278c2ecf20Sopenharmony_ci Always use the default kernel command string, even if the boot 9288c2ecf20Sopenharmony_ci loader passes other arguments to the kernel. 9298c2ecf20Sopenharmony_ci This is useful if you cannot or don't want to change the 9308c2ecf20Sopenharmony_ci command-line options your boot loader passes to the kernel. 9318c2ecf20Sopenharmony_ci 9328c2ecf20Sopenharmony_ciendchoice 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ciconfig EXTRA_TARGETS 9358c2ecf20Sopenharmony_ci string "Additional default image types" 9368c2ecf20Sopenharmony_ci help 9378c2ecf20Sopenharmony_ci List additional targets to be built by the bootwrapper here (separated 9388c2ecf20Sopenharmony_ci by spaces). This is useful for targets that depend of device tree 9398c2ecf20Sopenharmony_ci files in the .dts directory. 9408c2ecf20Sopenharmony_ci 9418c2ecf20Sopenharmony_ci Targets in this list will be build as part of the default build 9428c2ecf20Sopenharmony_ci target, or when the user does a 'make zImage' or a 9438c2ecf20Sopenharmony_ci 'make zImage.initrd'. 9448c2ecf20Sopenharmony_ci 9458c2ecf20Sopenharmony_ci If unsure, leave blank 9468c2ecf20Sopenharmony_ci 9478c2ecf20Sopenharmony_ciconfig ARCH_WANTS_FREEZER_CONTROL 9488c2ecf20Sopenharmony_ci def_bool y 9498c2ecf20Sopenharmony_ci depends on ADB_PMU 9508c2ecf20Sopenharmony_ci 9518c2ecf20Sopenharmony_cisource "kernel/power/Kconfig" 9528c2ecf20Sopenharmony_ci 9538c2ecf20Sopenharmony_ciconfig PPC_MEM_KEYS 9548c2ecf20Sopenharmony_ci prompt "PowerPC Memory Protection Keys" 9558c2ecf20Sopenharmony_ci def_bool y 9568c2ecf20Sopenharmony_ci depends on PPC_BOOK3S_64 9578c2ecf20Sopenharmony_ci select ARCH_USES_HIGH_VMA_FLAGS 9588c2ecf20Sopenharmony_ci select ARCH_HAS_PKEYS 9598c2ecf20Sopenharmony_ci help 9608c2ecf20Sopenharmony_ci Memory Protection Keys provides a mechanism for enforcing 9618c2ecf20Sopenharmony_ci page-based protections, but without requiring modification of the 9628c2ecf20Sopenharmony_ci page tables when an application changes protection domains. 9638c2ecf20Sopenharmony_ci 9648c2ecf20Sopenharmony_ci For details, see Documentation/core-api/protection-keys.rst 9658c2ecf20Sopenharmony_ci 9668c2ecf20Sopenharmony_ci If unsure, say y. 9678c2ecf20Sopenharmony_ci 9688c2ecf20Sopenharmony_ciconfig PPC_SECURE_BOOT 9698c2ecf20Sopenharmony_ci prompt "Enable secure boot support" 9708c2ecf20Sopenharmony_ci bool 9718c2ecf20Sopenharmony_ci depends on PPC_POWERNV || PPC_PSERIES 9728c2ecf20Sopenharmony_ci depends on IMA_ARCH_POLICY 9738c2ecf20Sopenharmony_ci imply IMA_SECURE_AND_OR_TRUSTED_BOOT 9748c2ecf20Sopenharmony_ci help 9758c2ecf20Sopenharmony_ci Systems with firmware secure boot enabled need to define security 9768c2ecf20Sopenharmony_ci policies to extend secure boot to the OS. This config allows a user 9778c2ecf20Sopenharmony_ci to enable OS secure boot on systems that have firmware support for 9788c2ecf20Sopenharmony_ci it. If in doubt say N. 9798c2ecf20Sopenharmony_ci 9808c2ecf20Sopenharmony_ciconfig PPC_SECVAR_SYSFS 9818c2ecf20Sopenharmony_ci bool "Enable sysfs interface for POWER secure variables" 9828c2ecf20Sopenharmony_ci default y 9838c2ecf20Sopenharmony_ci depends on PPC_SECURE_BOOT 9848c2ecf20Sopenharmony_ci depends on SYSFS 9858c2ecf20Sopenharmony_ci help 9868c2ecf20Sopenharmony_ci POWER secure variables are managed and controlled by firmware. 9878c2ecf20Sopenharmony_ci These variables are exposed to userspace via sysfs to enable 9888c2ecf20Sopenharmony_ci read/write operations on these variables. Say Y if you have 9898c2ecf20Sopenharmony_ci secure boot enabled and want to expose variables to userspace. 9908c2ecf20Sopenharmony_ci 9918c2ecf20Sopenharmony_ciconfig PPC_RTAS_FILTER 9928c2ecf20Sopenharmony_ci bool "Enable filtering of RTAS syscalls" 9938c2ecf20Sopenharmony_ci default y 9948c2ecf20Sopenharmony_ci depends on PPC_RTAS 9958c2ecf20Sopenharmony_ci help 9968c2ecf20Sopenharmony_ci The RTAS syscall API has security issues that could be used to 9978c2ecf20Sopenharmony_ci compromise system integrity. This option enforces restrictions on the 9988c2ecf20Sopenharmony_ci RTAS calls and arguments passed by userspace programs to mitigate 9998c2ecf20Sopenharmony_ci these issues. 10008c2ecf20Sopenharmony_ci 10018c2ecf20Sopenharmony_ci Say Y unless you know what you are doing and the filter is causing 10028c2ecf20Sopenharmony_ci problems for you. 10038c2ecf20Sopenharmony_ci 10048c2ecf20Sopenharmony_ciendmenu 10058c2ecf20Sopenharmony_ci 10068c2ecf20Sopenharmony_ciconfig ISA_DMA_API 10078c2ecf20Sopenharmony_ci bool 10088c2ecf20Sopenharmony_ci default PCI 10098c2ecf20Sopenharmony_ci 10108c2ecf20Sopenharmony_cimenu "Bus options" 10118c2ecf20Sopenharmony_ci 10128c2ecf20Sopenharmony_ciconfig ISA 10138c2ecf20Sopenharmony_ci bool "Support for ISA-bus hardware" 10148c2ecf20Sopenharmony_ci depends on PPC_CHRP 10158c2ecf20Sopenharmony_ci select PPC_I8259 10168c2ecf20Sopenharmony_ci help 10178c2ecf20Sopenharmony_ci Find out whether you have ISA slots on your motherboard. ISA is the 10188c2ecf20Sopenharmony_ci name of a bus system, i.e. the way the CPU talks to the other stuff 10198c2ecf20Sopenharmony_ci inside your box. If you have an Apple machine, say N here; if you 10208c2ecf20Sopenharmony_ci have an IBM RS/6000 or pSeries machine, say Y. If you have an 10218c2ecf20Sopenharmony_ci embedded board, consult your board documentation. 10228c2ecf20Sopenharmony_ci 10238c2ecf20Sopenharmony_ciconfig GENERIC_ISA_DMA 10248c2ecf20Sopenharmony_ci bool 10258c2ecf20Sopenharmony_ci depends on ISA_DMA_API 10268c2ecf20Sopenharmony_ci default y 10278c2ecf20Sopenharmony_ci 10288c2ecf20Sopenharmony_ciconfig PPC_INDIRECT_PCI 10298c2ecf20Sopenharmony_ci bool 10308c2ecf20Sopenharmony_ci depends on PCI 10318c2ecf20Sopenharmony_ci default y if 40x || 44x 10328c2ecf20Sopenharmony_ci 10338c2ecf20Sopenharmony_ciconfig SBUS 10348c2ecf20Sopenharmony_ci bool 10358c2ecf20Sopenharmony_ci 10368c2ecf20Sopenharmony_ciconfig FSL_SOC 10378c2ecf20Sopenharmony_ci bool 10388c2ecf20Sopenharmony_ci 10398c2ecf20Sopenharmony_ciconfig FSL_PCI 10408c2ecf20Sopenharmony_ci bool 10418c2ecf20Sopenharmony_ci select ARCH_HAS_DMA_SET_MASK 10428c2ecf20Sopenharmony_ci select PPC_INDIRECT_PCI 10438c2ecf20Sopenharmony_ci select PCI_QUIRKS 10448c2ecf20Sopenharmony_ci 10458c2ecf20Sopenharmony_ciconfig FSL_PMC 10468c2ecf20Sopenharmony_ci bool 10478c2ecf20Sopenharmony_ci default y 10488c2ecf20Sopenharmony_ci depends on SUSPEND && (PPC_85xx || PPC_86xx) 10498c2ecf20Sopenharmony_ci help 10508c2ecf20Sopenharmony_ci Freescale MPC85xx/MPC86xx power management controller support 10518c2ecf20Sopenharmony_ci (suspend/resume). For MPC83xx see platforms/83xx/suspend.c 10528c2ecf20Sopenharmony_ci 10538c2ecf20Sopenharmony_ciconfig PPC4xx_CPM 10548c2ecf20Sopenharmony_ci bool 10558c2ecf20Sopenharmony_ci default y 10568c2ecf20Sopenharmony_ci depends on SUSPEND && (44x || 40x) 10578c2ecf20Sopenharmony_ci help 10588c2ecf20Sopenharmony_ci PPC4xx Clock Power Management (CPM) support (suspend/resume). 10598c2ecf20Sopenharmony_ci It also enables support for two different idle states (idle-wait 10608c2ecf20Sopenharmony_ci and idle-doze). 10618c2ecf20Sopenharmony_ci 10628c2ecf20Sopenharmony_ciconfig 4xx_SOC 10638c2ecf20Sopenharmony_ci bool 10648c2ecf20Sopenharmony_ci 10658c2ecf20Sopenharmony_ciconfig FSL_LBC 10668c2ecf20Sopenharmony_ci bool "Freescale Local Bus support" 10678c2ecf20Sopenharmony_ci help 10688c2ecf20Sopenharmony_ci Enables reporting of errors from the Freescale local bus 10698c2ecf20Sopenharmony_ci controller. Also contains some common code used by 10708c2ecf20Sopenharmony_ci drivers for specific local bus peripherals. 10718c2ecf20Sopenharmony_ci 10728c2ecf20Sopenharmony_ciconfig FSL_GTM 10738c2ecf20Sopenharmony_ci bool 10748c2ecf20Sopenharmony_ci depends on PPC_83xx || QUICC_ENGINE || CPM2 10758c2ecf20Sopenharmony_ci help 10768c2ecf20Sopenharmony_ci Freescale General-purpose Timers support 10778c2ecf20Sopenharmony_ci 10788c2ecf20Sopenharmony_ciconfig PCI_8260 10798c2ecf20Sopenharmony_ci bool 10808c2ecf20Sopenharmony_ci depends on PCI && 8260 10818c2ecf20Sopenharmony_ci select PPC_INDIRECT_PCI 10828c2ecf20Sopenharmony_ci default y 10838c2ecf20Sopenharmony_ci 10848c2ecf20Sopenharmony_ciconfig FSL_RIO 10858c2ecf20Sopenharmony_ci bool "Freescale Embedded SRIO Controller support" 10868c2ecf20Sopenharmony_ci depends on RAPIDIO = y && HAVE_RAPIDIO 10878c2ecf20Sopenharmony_ci default "n" 10888c2ecf20Sopenharmony_ci help 10898c2ecf20Sopenharmony_ci Include support for RapidIO controller on Freescale embedded 10908c2ecf20Sopenharmony_ci processors (MPC8548, MPC8641, etc). 10918c2ecf20Sopenharmony_ci 10928c2ecf20Sopenharmony_ciendmenu 10938c2ecf20Sopenharmony_ci 10948c2ecf20Sopenharmony_ciconfig NONSTATIC_KERNEL 10958c2ecf20Sopenharmony_ci bool 10968c2ecf20Sopenharmony_ci 10978c2ecf20Sopenharmony_cimenu "Advanced setup" 10988c2ecf20Sopenharmony_ci depends on PPC32 10998c2ecf20Sopenharmony_ci 11008c2ecf20Sopenharmony_ciconfig ADVANCED_OPTIONS 11018c2ecf20Sopenharmony_ci bool "Prompt for advanced kernel configuration options" 11028c2ecf20Sopenharmony_ci help 11038c2ecf20Sopenharmony_ci This option will enable prompting for a variety of advanced kernel 11048c2ecf20Sopenharmony_ci configuration options. These options can cause the kernel to not 11058c2ecf20Sopenharmony_ci work if they are set incorrectly, but can be used to optimize certain 11068c2ecf20Sopenharmony_ci aspects of kernel memory management. 11078c2ecf20Sopenharmony_ci 11088c2ecf20Sopenharmony_ci Unless you know what you are doing, say N here. 11098c2ecf20Sopenharmony_ci 11108c2ecf20Sopenharmony_cicomment "Default settings for advanced configuration options are used" 11118c2ecf20Sopenharmony_ci depends on !ADVANCED_OPTIONS 11128c2ecf20Sopenharmony_ci 11138c2ecf20Sopenharmony_ciconfig LOWMEM_SIZE_BOOL 11148c2ecf20Sopenharmony_ci bool "Set maximum low memory" 11158c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS 11168c2ecf20Sopenharmony_ci help 11178c2ecf20Sopenharmony_ci This option allows you to set the maximum amount of memory which 11188c2ecf20Sopenharmony_ci will be used as "low memory", that is, memory which the kernel can 11198c2ecf20Sopenharmony_ci access directly, without having to set up a kernel virtual mapping. 11208c2ecf20Sopenharmony_ci This can be useful in optimizing the layout of kernel virtual 11218c2ecf20Sopenharmony_ci memory. 11228c2ecf20Sopenharmony_ci 11238c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 11248c2ecf20Sopenharmony_ci 11258c2ecf20Sopenharmony_ciconfig LOWMEM_SIZE 11268c2ecf20Sopenharmony_ci hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 11278c2ecf20Sopenharmony_ci default "0x30000000" 11288c2ecf20Sopenharmony_ci 11298c2ecf20Sopenharmony_ciconfig LOWMEM_CAM_NUM_BOOL 11308c2ecf20Sopenharmony_ci bool "Set number of CAMs to use to map low memory" 11318c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS && FSL_BOOKE 11328c2ecf20Sopenharmony_ci help 11338c2ecf20Sopenharmony_ci This option allows you to set the maximum number of CAM slots that 11348c2ecf20Sopenharmony_ci will be used to map low memory. There are a limited number of slots 11358c2ecf20Sopenharmony_ci available and even more limited number that will fit in the L1 MMU. 11368c2ecf20Sopenharmony_ci However, using more entries will allow mapping more low memory. This 11378c2ecf20Sopenharmony_ci can be useful in optimizing the layout of kernel virtual memory. 11388c2ecf20Sopenharmony_ci 11398c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 11408c2ecf20Sopenharmony_ci 11418c2ecf20Sopenharmony_ciconfig LOWMEM_CAM_NUM 11428c2ecf20Sopenharmony_ci depends on FSL_BOOKE 11438c2ecf20Sopenharmony_ci int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL 11448c2ecf20Sopenharmony_ci default 3 11458c2ecf20Sopenharmony_ci 11468c2ecf20Sopenharmony_ciconfig DYNAMIC_MEMSTART 11478c2ecf20Sopenharmony_ci bool "Enable page aligned dynamic load address for kernel" 11488c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) 11498c2ecf20Sopenharmony_ci select NONSTATIC_KERNEL 11508c2ecf20Sopenharmony_ci help 11518c2ecf20Sopenharmony_ci This option enables the kernel to be loaded at any page aligned 11528c2ecf20Sopenharmony_ci physical address. The kernel creates a mapping from KERNELBASE to 11538c2ecf20Sopenharmony_ci the address where the kernel is loaded. The page size here implies 11548c2ecf20Sopenharmony_ci the TLB page size of the mapping for kernel on the particular platform. 11558c2ecf20Sopenharmony_ci Please refer to the init code for finding the TLB page size. 11568c2ecf20Sopenharmony_ci 11578c2ecf20Sopenharmony_ci DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE 11588c2ecf20Sopenharmony_ci kernel image, where the only restriction is the page aligned kernel 11598c2ecf20Sopenharmony_ci load address. When this option is enabled, the compile time physical 11608c2ecf20Sopenharmony_ci address CONFIG_PHYSICAL_START is ignored. 11618c2ecf20Sopenharmony_ci 11628c2ecf20Sopenharmony_ci This option is overridden by CONFIG_RELOCATABLE 11638c2ecf20Sopenharmony_ci 11648c2ecf20Sopenharmony_ciconfig PAGE_OFFSET_BOOL 11658c2ecf20Sopenharmony_ci bool "Set custom page offset address" 11668c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS 11678c2ecf20Sopenharmony_ci help 11688c2ecf20Sopenharmony_ci This option allows you to set the kernel virtual address at which 11698c2ecf20Sopenharmony_ci the kernel will map low memory. This can be useful in optimizing 11708c2ecf20Sopenharmony_ci the virtual memory layout of the system. 11718c2ecf20Sopenharmony_ci 11728c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 11738c2ecf20Sopenharmony_ci 11748c2ecf20Sopenharmony_ciconfig PAGE_OFFSET 11758c2ecf20Sopenharmony_ci hex "Virtual address of memory base" if PAGE_OFFSET_BOOL 11768c2ecf20Sopenharmony_ci default "0xc0000000" 11778c2ecf20Sopenharmony_ci 11788c2ecf20Sopenharmony_ciconfig KERNEL_START_BOOL 11798c2ecf20Sopenharmony_ci bool "Set custom kernel base address" 11808c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS 11818c2ecf20Sopenharmony_ci help 11828c2ecf20Sopenharmony_ci This option allows you to set the kernel virtual address at which 11838c2ecf20Sopenharmony_ci the kernel will be loaded. Normally this should match PAGE_OFFSET 11848c2ecf20Sopenharmony_ci however there are times (like kdump) that one might not want them 11858c2ecf20Sopenharmony_ci to be the same. 11868c2ecf20Sopenharmony_ci 11878c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 11888c2ecf20Sopenharmony_ci 11898c2ecf20Sopenharmony_ciconfig KERNEL_START 11908c2ecf20Sopenharmony_ci hex "Virtual address of kernel base" if KERNEL_START_BOOL 11918c2ecf20Sopenharmony_ci default PAGE_OFFSET if PAGE_OFFSET_BOOL 11928c2ecf20Sopenharmony_ci default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL 11938c2ecf20Sopenharmony_ci default "0xc0000000" 11948c2ecf20Sopenharmony_ci 11958c2ecf20Sopenharmony_ciconfig PHYSICAL_START_BOOL 11968c2ecf20Sopenharmony_ci bool "Set physical address where the kernel is loaded" 11978c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE 11988c2ecf20Sopenharmony_ci help 11998c2ecf20Sopenharmony_ci This gives the physical address where the kernel is loaded. 12008c2ecf20Sopenharmony_ci 12018c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 12028c2ecf20Sopenharmony_ci 12038c2ecf20Sopenharmony_ciconfig PHYSICAL_START 12048c2ecf20Sopenharmony_ci hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL 12058c2ecf20Sopenharmony_ci default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL 12068c2ecf20Sopenharmony_ci default "0x00000000" 12078c2ecf20Sopenharmony_ci 12088c2ecf20Sopenharmony_ciconfig PHYSICAL_ALIGN 12098c2ecf20Sopenharmony_ci hex 12108c2ecf20Sopenharmony_ci default "0x04000000" if FSL_BOOKE 12118c2ecf20Sopenharmony_ci help 12128c2ecf20Sopenharmony_ci This value puts the alignment restrictions on physical address 12138c2ecf20Sopenharmony_ci where kernel is loaded and run from. Kernel is compiled for an 12148c2ecf20Sopenharmony_ci address which meets above alignment restriction. 12158c2ecf20Sopenharmony_ci 12168c2ecf20Sopenharmony_ciconfig TASK_SIZE_BOOL 12178c2ecf20Sopenharmony_ci bool "Set custom user task size" 12188c2ecf20Sopenharmony_ci depends on ADVANCED_OPTIONS 12198c2ecf20Sopenharmony_ci help 12208c2ecf20Sopenharmony_ci This option allows you to set the amount of virtual address space 12218c2ecf20Sopenharmony_ci allocated to user tasks. This can be useful in optimizing the 12228c2ecf20Sopenharmony_ci virtual memory layout of the system. 12238c2ecf20Sopenharmony_ci 12248c2ecf20Sopenharmony_ci Say N here unless you know what you are doing. 12258c2ecf20Sopenharmony_ci 12268c2ecf20Sopenharmony_ciconfig TASK_SIZE 12278c2ecf20Sopenharmony_ci hex "Size of user task space" if TASK_SIZE_BOOL 12288c2ecf20Sopenharmony_ci default "0x80000000" if PPC_8xx 12298c2ecf20Sopenharmony_ci default "0xb0000000" if PPC_BOOK3S_32 && STRICT_KERNEL_RWX 12308c2ecf20Sopenharmony_ci default "0xc0000000" 12318c2ecf20Sopenharmony_ciendmenu 12328c2ecf20Sopenharmony_ci 12338c2ecf20Sopenharmony_ciif PPC64 12348c2ecf20Sopenharmony_ci# This value must have zeroes in the bottom 60 bits otherwise lots will break 12358c2ecf20Sopenharmony_ciconfig PAGE_OFFSET 12368c2ecf20Sopenharmony_ci hex 12378c2ecf20Sopenharmony_ci default "0xc000000000000000" 12388c2ecf20Sopenharmony_ciconfig KERNEL_START 12398c2ecf20Sopenharmony_ci hex 12408c2ecf20Sopenharmony_ci default "0xc000000000000000" 12418c2ecf20Sopenharmony_ciconfig PHYSICAL_START 12428c2ecf20Sopenharmony_ci hex 12438c2ecf20Sopenharmony_ci default "0x00000000" 12448c2ecf20Sopenharmony_ciendif 12458c2ecf20Sopenharmony_ci 12468c2ecf20Sopenharmony_ciconfig ARCH_RANDOM 12478c2ecf20Sopenharmony_ci def_bool n 12488c2ecf20Sopenharmony_ci 12498c2ecf20Sopenharmony_ciconfig PPC_LIB_RHEAP 12508c2ecf20Sopenharmony_ci bool 12518c2ecf20Sopenharmony_ci 12528c2ecf20Sopenharmony_cisource "arch/powerpc/kvm/Kconfig" 12538c2ecf20Sopenharmony_ci 12548c2ecf20Sopenharmony_cisource "kernel/livepatch/Kconfig" 1255