# SPDX-License-Identifier: GPL-2.0
source "arch/powerpc/platforms/Kconfig.cputype"
config [31mCONFIG_PPC32[0m
bool
default y if ![31mCONFIG_PPC64[0m
config [31mCONFIG_32BIT[0m
bool
default y if [31mCONFIG_PPC32[0m
config [31mCONFIG_64BIT[0m
bool
default y if [31mCONFIG_PPC64[0m
config [31mCONFIG_MMU[0m
bool
default y
config [31mCONFIG_ARCH_MMAP_RND_BITS_MAX[0m
# On Book3S 64, the default virtual address space for 64-bit processes
# is 2^47 (128TB). As a maximum, allow randomisation to consume up to
# 32T of address space (2^45), which should ensure a reasonable gap
# between bottom-up and top-down allocations for applications that
# consume "normal" amounts of address space. Book3S 64 only supports 64K
# and 4K page sizes.
default 29 if [31mCONFIG_PPC_BOOK3S_64[0m && [31mCONFIG_PPC_64K_PAGES[0m # 29 = 45 (32T) - 16 (64K)
default 33 if [31mCONFIG_PPC_BOOK3S_64[0m # 33 = 45 (32T) - 12 (4K)
#
# On all other 64-bit platforms (currently only Book3E), the virtual
# address space is 2^46 (64TB). Allow randomisation to consume up to 16T
# of address space (2^44). Only 4K page sizes are supported.
default 32 if [31mCONFIG_64BIT[0m # 32 = 44 (16T) - 12 (4K)
#
# For 32-bit, use the compat values, as they're the same.
default [31mCONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX[0m
config [31mCONFIG_ARCH_MMAP_RND_BITS_MIN[0m
# Allow randomisation to consume up to 1GB of address space (2^30).
default 14 if [31mCONFIG_64BIT[0m && [31mCONFIG_PPC_64K_PAGES[0m # 14 = 30 (1GB) - 16 (64K)
default 18 if [31mCONFIG_64BIT[0m # 18 = 30 (1GB) - 12 (4K)
#
# For 32-bit, use the compat values, as they're the same.
default [31mCONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN[0m
config [31mCONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX[0m
# Total virtual address space for 32-bit processes is 2^31 (2GB).
# Allow randomisation to consume up to 512MB of address space (2^29).
default 11 if [31mCONFIG_PPC_256K_PAGES[0m # 11 = 29 (512MB) - 18 (256K)
default 13 if [31mCONFIG_PPC_64K_PAGES[0m # 13 = 29 (512MB) - 16 (64K)
default 15 if [31mCONFIG_PPC_16K_PAGES[0m # 15 = 29 (512MB) - 14 (16K)
default 17 # 17 = 29 (512MB) - 12 (4K)
config [31mCONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN[0m
# Total virtual address space for 32-bit processes is 2^31 (2GB).
# Allow randomisation to consume up to 8MB of address space (2^23).
default 5 if [31mCONFIG_PPC_256K_PAGES[0m # 5 = 23 (8MB) - 18 (256K)
default 7 if [31mCONFIG_PPC_64K_PAGES[0m # 7 = 23 (8MB) - 16 (64K)
default 9 if [31mCONFIG_PPC_16K_PAGES[0m # 9 = 23 (8MB) - 14 (16K)
default 11 # 11 = 23 (8MB) - 12 (4K)
config [31mCONFIG_HAVE_SETUP_PER_CPU_AREA[0m
def_bool [31mCONFIG_PPC64[0m
config [31mCONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK[0m
def_bool [31mCONFIG_PPC64[0m
config [31mCONFIG_NR_IRQS[0m
int "Number of virtual interrupt numbers"
range 32 32768
default "512"
help
This defines the number of virtual interrupt numbers the kernel
can manage. Virtual interrupt numbers are what you see in
/proc/interrupts. If you configure your system to have too few,
drivers will fail to load or worse - handle with care.
config [31mCONFIG_NMI_IPI[0m
bool
depends on [31mCONFIG_SMP[0m && ([31mCONFIG_DEBUGGER[0m || [31mCONFIG_KEXEC_CORE[0m || [31mCONFIG_HARDLOCKUP_DETECTOR[0m)
default y
config [31mCONFIG_PPC_WATCHDOG[0m
bool
depends on [31mCONFIG_HARDLOCKUP_DETECTOR[0m
depends on [31mCONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH[0m
default y
help
This is a placeholder when the powerpc hardlockup detector
watchdog is selected (arch/powerpc/kernel/watchdog.c). It is
seleted via the generic lockup detector menu which is why we
have no standalone config option for it here.
config [31mCONFIG_STACKTRACE_SUPPORT[0m
bool
default y
config [31mCONFIG_TRACE_IRQFLAGS_SUPPORT[0m
bool
default y
config [31mCONFIG_LOCKDEP_SUPPORT[0m
bool
default y
config [31mCONFIG_GENERIC_LOCKBREAK[0m
bool
default y
depends on [31mCONFIG_SMP[0m && [31mCONFIG_PREEMPT[0m
config [31mCONFIG_GENERIC_HWEIGHT[0m
bool
default y
config [31mCONFIG_PPC[0m
bool
default y
#
# Please keep this list sorted alphabetically.
#
select [31mCONFIG_ARCH_32BIT_OFF_T[0m if [31mCONFIG_PPC32[0m
select [31mCONFIG_ARCH_HAS_DEBUG_VIRTUAL[0m
select [31mCONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED[0m
select [31mCONFIG_ARCH_HAS_ELF_RANDOMIZE[0m
select [31mCONFIG_ARCH_HAS_FORTIFY_SOURCE[0m
select [31mCONFIG_ARCH_HAS_GCOV_PROFILE_ALL[0m
select [31mCONFIG_ARCH_HAS_KCOV[0m
select [31mCONFIG_ARCH_HAS_HUGEPD[0m if [31mCONFIG_HUGETLB_PAGE[0m
select [31mCONFIG_ARCH_HAS_MMIOWB[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_ARCH_HAS_PHYS_TO_DMA[0m
select [31mCONFIG_ARCH_HAS_PMEM_API[0m
select [31mCONFIG_ARCH_HAS_PTE_DEVMAP[0m if [31mCONFIG_PPC_BOOK3S_64[0m
select [31mCONFIG_ARCH_HAS_PTE_SPECIAL[0m
select [31mCONFIG_ARCH_HAS_MEMBARRIER_CALLBACKS[0m
select [31mCONFIG_ARCH_HAS_SCALED_CPUTIME[0m if [31mCONFIG_VIRT_CPU_ACCOUNTING_NATIVE[0m && [31mCONFIG_PPC_BOOK3S_64[0m
select [31mCONFIG_ARCH_HAS_STRICT_KERNEL_RWX[0m if (([31mCONFIG_PPC_BOOK3S_64[0m || [31mCONFIG_PPC32[0m) && ![31mCONFIG_RELOCATABLE[0m && ![31mCONFIG_HIBERNATION[0m)
select [31mCONFIG_ARCH_HAS_TICK_BROADCAST[0m if [31mCONFIG_GENERIC_CLOCKEVENTS_BROADCAST[0m
select [31mCONFIG_ARCH_HAS_UACCESS_FLUSHCACHE[0m
select [31mCONFIG_ARCH_HAS_UACCESS_MCSAFE[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL[0m
select [31mCONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG[0m
select [31mCONFIG_ARCH_KEEP_MEMBLOCK[0m
select [31mCONFIG_ARCH_MIGHT_HAVE_PC_PARPORT[0m
select [31mCONFIG_ARCH_MIGHT_HAVE_PC_SERIO[0m
select [31mCONFIG_ARCH_OPTIONAL_KERNEL_RWX[0m if [31mCONFIG_ARCH_HAS_STRICT_KERNEL_RWX[0m
select [31mCONFIG_ARCH_SUPPORTS_ATOMIC_RMW[0m
select [31mCONFIG_ARCH_USE_BUILTIN_BSWAP[0m
select [31mCONFIG_ARCH_USE_CMPXCHG_LOCKREF[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_ARCH_WANT_IPC_PARSE_VERSION[0m
select [31mCONFIG_ARCH_WEAK_RELEASE_ACQUIRE[0m
select [31mCONFIG_BINFMT_ELF[0m
select [31mCONFIG_BUILDTIME_EXTABLE_SORT[0m
select [31mCONFIG_CLONE_BACKWARDS[0m
select [31mCONFIG_DCACHE_WORD_ACCESS[0m if [31mCONFIG_PPC64[0m && [31mCONFIG_CPU_LITTLE_ENDIAN[0m
select [31mCONFIG_DYNAMIC_FTRACE[0m if [31mCONFIG_FUNCTION_TRACER[0m
select [31mCONFIG_EDAC_ATOMIC_SCRUB[0m
select [31mCONFIG_EDAC_SUPPORT[0m
select [31mCONFIG_GENERIC_ATOMIC64[0m if [31mCONFIG_PPC32[0m
select [31mCONFIG_GENERIC_CLOCKEVENTS[0m
select [31mCONFIG_GENERIC_CLOCKEVENTS_BROADCAST[0m if [31mCONFIG_SMP[0m
select [31mCONFIG_GENERIC_CMOS_UPDATE[0m
select [31mCONFIG_GENERIC_CPU_AUTOPROBE[0m
select [31mCONFIG_GENERIC_CPU_VULNERABILITIES[0m if [31mCONFIG_PPC_BARRIER_NOSPEC[0m
select [31mCONFIG_GENERIC_IRQ_SHOW[0m
select [31mCONFIG_GENERIC_IRQ_SHOW_LEVEL[0m
select [31mCONFIG_GENERIC_PCI_IOMAP[0m if [31mCONFIG_PCI[0m
select [31mCONFIG_GENERIC_SMP_IDLE_THREAD[0m
select [31mCONFIG_GENERIC_STRNCPY_FROM_USER[0m
select [31mCONFIG_GENERIC_STRNLEN_USER[0m
select [31mCONFIG_GENERIC_TIME_VSYSCALL[0m
select [31mCONFIG_HAVE_ARCH_AUDITSYSCALL[0m
select [31mCONFIG_HAVE_ARCH_HUGE_VMAP[0m if [31mCONFIG_PPC_BOOK3S_64[0m && [31mCONFIG_PPC_RADIX_MMU[0m
select [31mCONFIG_HAVE_ARCH_JUMP_LABEL[0m
select [31mCONFIG_HAVE_ARCH_KASAN[0m if [31mCONFIG_PPC32[0m
select [31mCONFIG_HAVE_ARCH_KGDB[0m
select [31mCONFIG_HAVE_ARCH_MMAP_RND_BITS[0m
select [31mCONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS[0m if [31mCONFIG_COMPAT[0m
select [31mCONFIG_HAVE_ARCH_NVRAM_OPS[0m
select [31mCONFIG_HAVE_ARCH_SECCOMP_FILTER[0m
select [31mCONFIG_HAVE_ARCH_TRACEHOOK[0m
select [31mCONFIG_HAVE_ASM_MODVERSIONS[0m
select [31mCONFIG_HAVE_C_RECORDMCOUNT[0m
select [31mCONFIG_HAVE_CBPF_JIT[0m if ![31mCONFIG_PPC64[0m
select [31mCONFIG_HAVE_STACKPROTECTOR[0m if [31mCONFIG_PPC64[0m && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
select [31mCONFIG_HAVE_STACKPROTECTOR[0m if [31mCONFIG_PPC32[0m && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
select [31mCONFIG_HAVE_CONTEXT_TRACKING[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_HAVE_COPY_THREAD_TLS[0m
select [31mCONFIG_HAVE_DEBUG_KMEMLEAK[0m
select [31mCONFIG_HAVE_DEBUG_STACKOVERFLOW[0m
select [31mCONFIG_HAVE_DYNAMIC_FTRACE[0m
select [31mCONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS[0m if [31mCONFIG_MPROFILE_KERNEL[0m
select [31mCONFIG_HAVE_EBPF_JIT[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS[0m if !([31mCONFIG_CPU_LITTLE_ENDIAN[0m && [31mCONFIG_POWER7_CPU[0m)
select [31mCONFIG_HAVE_FAST_GUP[0m
select [31mCONFIG_HAVE_FTRACE_MCOUNT_RECORD[0m
select [31mCONFIG_HAVE_FUNCTION_ERROR_INJECTION[0m
select [31mCONFIG_HAVE_FUNCTION_GRAPH_TRACER[0m
select [31mCONFIG_HAVE_FUNCTION_TRACER[0m
select [31mCONFIG_HAVE_GCC_PLUGINS[0m if [31mCONFIG_GCC_VERSION[0m >= 50200 # plugin support on gcc <= 5.1 is buggy on [31mCONFIG_PPC[0m
select [31mCONFIG_HAVE_HW_BREAKPOINT[0m if [31mCONFIG_PERF_EVENTS[0m && ([31mCONFIG_PPC_BOOK3S[0m || [31mCONFIG_PPC_8xx[0m)
select [31mCONFIG_HAVE_IDE[0m
select [31mCONFIG_HAVE_IOREMAP_PROT[0m
select [31mCONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK[0m
select [31mCONFIG_HAVE_KERNEL_GZIP[0m
select [31mCONFIG_HAVE_KERNEL_LZMA[0m if [31mCONFIG_DEFAULT_UIMAGE[0m
select [31mCONFIG_HAVE_KERNEL_LZO[0m if [31mCONFIG_DEFAULT_UIMAGE[0m
select [31mCONFIG_HAVE_KERNEL_XZ[0m if [31mCONFIG_PPC_BOOK3S[0m || [31mCONFIG_44x[0m
select [31mCONFIG_HAVE_KPROBES[0m
select [31mCONFIG_HAVE_KPROBES_ON_FTRACE[0m
select [31mCONFIG_HAVE_KRETPROBES[0m
select [31mCONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION[0m
select [31mCONFIG_HAVE_LIVEPATCH[0m if [31mCONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS[0m
select [31mCONFIG_HAVE_MEMBLOCK_NODE_MAP[0m
select [31mCONFIG_HAVE_MOD_ARCH_SPECIFIC[0m
select [31mCONFIG_HAVE_NMI[0m if [31mCONFIG_PERF_EVENTS[0m || ([31mCONFIG_PPC64[0m && [31mCONFIG_PPC_BOOK3S[0m)
select [31mCONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH[0m if ([31mCONFIG_PPC64[0m && [31mCONFIG_PPC_BOOK3S[0m)
select [31mCONFIG_HAVE_OPROFILE[0m
select [31mCONFIG_HAVE_OPTPROBES[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_HAVE_PERF_EVENTS[0m
select [31mCONFIG_HAVE_PERF_EVENTS_NMI[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF[0m if [31mCONFIG_PERF_EVENTS[0m && [31mCONFIG_HAVE_PERF_EVENTS_NMI[0m && ![31mCONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH[0m
select [31mCONFIG_HAVE_PERF_REGS[0m
select [31mCONFIG_HAVE_PERF_USER_STACK_DUMP[0m
select [31mCONFIG_HAVE_RCU_TABLE_FREE[0m if [31mCONFIG_SMP[0m
select [31mCONFIG_HAVE_RCU_TABLE_NO_INVALIDATE[0m if [31mCONFIG_HAVE_RCU_TABLE_FREE[0m
select [31mCONFIG_HAVE_MMU_GATHER_PAGE_SIZE[0m
select [31mCONFIG_HAVE_REGS_AND_STACK_ACCESS_API[0m
select [31mCONFIG_HAVE_RELIABLE_STACKTRACE[0m if [31mCONFIG_PPC_BOOK3S_64[0m && [31mCONFIG_CPU_LITTLE_ENDIAN[0m
select [31mCONFIG_HAVE_SYSCALL_TRACEPOINTS[0m
select [31mCONFIG_HAVE_VIRT_CPU_ACCOUNTING[0m
select [31mCONFIG_HAVE_IRQ_TIME_ACCOUNTING[0m
select [31mCONFIG_HAVE_RSEQ[0m
select [31mCONFIG_IOMMU_HELPER[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_IRQ_DOMAIN[0m
select [31mCONFIG_IRQ_FORCED_THREADING[0m
select [31mCONFIG_MODULES_USE_ELF_RELA[0m
select [31mCONFIG_NEED_DMA_MAP_STATE[0m if [31mCONFIG_PPC64[0m || [31mCONFIG_NOT_COHERENT_CACHE[0m
select [31mCONFIG_NEED_SG_DMA_LENGTH[0m
select [31mCONFIG_OF[0m
select [31mCONFIG_OF_EARLY_FLATTREE[0m
select [31mCONFIG_OLD_SIGACTION[0m if [31mCONFIG_PPC32[0m
select [31mCONFIG_OLD_SIGSUSPEND[0m
select [31mCONFIG_PCI_DOMAINS[0m if [31mCONFIG_PCI[0m
select [31mCONFIG_PCI_SYSCALL[0m if [31mCONFIG_PCI[0m
select [31mCONFIG_PPC_DAWR[0m if [31mCONFIG_PPC64[0m
select [31mCONFIG_RTC_LIB[0m
select [31mCONFIG_SPARSE_IRQ[0m
select [31mCONFIG_SYSCTL_EXCEPTION_TRACE[0m
select [31mCONFIG_THREAD_INFO_IN_TASK[0m
select [31mCONFIG_VIRT_TO_BUS[0m if ![31mCONFIG_PPC64[0m
#
# Please keep this list sorted alphabetically.
#
config [31mCONFIG_PPC_BARRIER_NOSPEC[0m
bool
default y
depends on [31mCONFIG_PPC_BOOK3S_64[0m || [31mCONFIG_PPC_FSL_BOOK3E[0m
config [31mCONFIG_EARLY_PRINTK[0m
bool
default y
config [31mCONFIG_PANIC_TIMEOUT[0m
int
default 180
config [31mCONFIG_COMPAT[0m
bool
default y if [31mCONFIG_PPC64[0m
select [31mCONFIG_COMPAT_BINFMT_ELF[0m
select [31mCONFIG_ARCH_WANT_OLD_COMPAT_IPC[0m
select [31mCONFIG_COMPAT_OLD_SIGACTION[0m
config [31mCONFIG_SYSVIPC_COMPAT[0m
bool
depends on [31mCONFIG_COMPAT[0m && [31mCONFIG_SYSVIPC[0m
default y
config [31mCONFIG_SCHED_OMIT_FRAME_POINTER[0m
bool
default y
config [31mCONFIG_ARCH_MAY_HAVE_PC_FDC[0m
bool
default [31mCONFIG_PCI[0m
config [31mCONFIG_PPC_UDBG_16550[0m
bool
config [31mCONFIG_GENERIC_TBSYNC[0m
bool
default y if [31mCONFIG_PPC32[0m && [31mCONFIG_SMP[0m
config [31mCONFIG_AUDIT_ARCH[0m
bool
default y
config [31mCONFIG_GENERIC_BUG[0m
bool
default y
depends on [31mCONFIG_BUG[0m
config [31mCONFIG_SYS_SUPPORTS_APM_EMULATION[0m
default y if [31mCONFIG_PMAC_APM_EMU[0m
bool
config [31mCONFIG_EPAPR_BOOT[0m
bool
help
Used to allow a board to specify it wants an ePAPR compliant wrapper.
config [31mCONFIG_DEFAULT_UIMAGE[0m
bool
help
Used to allow a board to specify it wants a uImage built by default
config [31mCONFIG_ARCH_HIBERNATION_POSSIBLE[0m
bool
default y
config [31mCONFIG_ARCH_SUSPEND_POSSIBLE[0m
def_bool y
depends on [31mCONFIG_ADB_PMU[0m || [31mCONFIG_PPC_EFIKA[0m || [31mCONFIG_PPC_LITE5200[0m || [31mCONFIG_PPC_83xx[0m || \
([31mCONFIG_PPC_85xx[0m && ![31mCONFIG_PPC_E500MC[0m) || [31mCONFIG_PPC_86xx[0m || [31mCONFIG_PPC_PSERIES[0m \
|| [31mCONFIG_44x[0m || [31mCONFIG_40x[0m
config [31mCONFIG_ARCH_SUSPEND_NONZERO_CPU[0m
def_bool y
depends on [31mCONFIG_PPC_POWERNV[0m || [31mCONFIG_PPC_PSERIES[0m
config [31mCONFIG_PPC_DCR_NATIVE[0m
bool
config [31mCONFIG_PPC_DCR_MMIO[0m
bool
config [31mCONFIG_PPC_DCR[0m
bool
depends on [31mCONFIG_PPC_DCR_NATIVE[0m || [31mCONFIG_PPC_DCR_MMIO[0m
default y
config [31mCONFIG_PPC_OF_PLATFORM_PCI[0m
bool
depends on [31mCONFIG_PCI[0m
depends on [31mCONFIG_PPC64[0m # not supported on 32 bits yet
config [31mCONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC[0m
depends on [31mCONFIG_PPC32[0m || [31mCONFIG_PPC_BOOK3S_64[0m
def_bool y
config [31mCONFIG_ARCH_SUPPORTS_UPROBES[0m
def_bool y
config [31mCONFIG_PPC_ADV_DEBUG_REGS[0m
bool
depends on [31mCONFIG_40x[0m || [31mCONFIG_BOOKE[0m
default y
config [31mCONFIG_PPC_ADV_DEBUG_IACS[0m
int
depends on [31mCONFIG_PPC_ADV_DEBUG_REGS[0m
default 4 if [31mCONFIG_44x[0m
default 2
config [31mCONFIG_PPC_ADV_DEBUG_DACS[0m
int
depends on [31mCONFIG_PPC_ADV_DEBUG_REGS[0m
default 2
config [31mCONFIG_PPC_ADV_DEBUG_DVCS[0m
int
depends on [31mCONFIG_PPC_ADV_DEBUG_REGS[0m
default 2 if [31mCONFIG_44x[0m
default 0
config [31mCONFIG_PPC_ADV_DEBUG_DAC_RANGE[0m
bool
depends on [31mCONFIG_PPC_ADV_DEBUG_REGS[0m && [31mCONFIG_44x[0m
default y
config [31mCONFIG_PPC_DAWR[0m
bool
config [31mCONFIG_ZONE_DMA[0m
bool
default y if [31mCONFIG_PPC_BOOK3E_64[0m
config [31mCONFIG_PGTABLE_LEVELS[0m
int
default 2 if ![31mCONFIG_PPC64[0m
default 4
source "arch/powerpc/sysdev/Kconfig"
source "arch/powerpc/platforms/Kconfig"
menu "Kernel options"
config [31mCONFIG_HIGHMEM[0m
bool "High memory support"
depends on [31mCONFIG_PPC32[0m
source "kernel/Kconfig.hz"
config [31mCONFIG_HUGETLB_PAGE_SIZE_VARIABLE[0m
bool
depends on [31mCONFIG_HUGETLB_PAGE[0m && [31mCONFIG_PPC_BOOK3S_64[0m
default y
config [31mCONFIG_MATH_EMULATION[0m
bool "Math emulation"
depends on [31mCONFIG_4xx[0m || [31mCONFIG_PPC_8xx[0m || [31mCONFIG_PPC_MPC832x[0m || [31mCONFIG_BOOKE[0m
help
Some PowerPC chips designed for embedded applications do not have
a floating-point unit and therefore do not implement the
floating-point instructions in the PowerPC instruction set. If you
say Y here, the kernel will include code to emulate a floating-point
unit, which will allow programs that use floating-point
instructions to run.
This is also useful to emulate missing (optional) instructions
such as fsqrt on cores that do have an [31mCONFIG_FPU[0m but do not implement
them (such as Freescale BookE).
choice
prompt "Math emulation options"
default [31mCONFIG_MATH_EMULATION_FULL[0m
depends on [31mCONFIG_MATH_EMULATION[0m
config [31mCONFIG_MATH_EMULATION_FULL[0m
bool "Emulate all the floating point instructions"
help
Select this option will enable the kernel to support to emulate
all the floating point instructions. If your SoC doesn't have
a [31mCONFIG_FPU[0m, you should select this.
config [31mCONFIG_MATH_EMULATION_HW_UNIMPLEMENTED[0m
bool "Just emulate the FPU unimplemented instructions"
help
Select this if you know there does have a hardware [31mCONFIG_FPU[0m on your
SoC, but some floating point instructions are not implemented by that.
endchoice
config [31mCONFIG_PPC_TRANSACTIONAL_MEM[0m
bool "Transactional Memory support for POWERPC"
depends on [31mCONFIG_PPC_BOOK3S_64[0m
depends on [31mCONFIG_SMP[0m
select [31mCONFIG_ALTIVEC[0m
select [31mCONFIG_VSX[0m
help
Support user-mode Transactional Memory on POWERPC.
config [31mCONFIG_LD_HEAD_STUB_CATCH[0m
bool "Reserve 256 bytes to cope with linker stubs in HEAD text" if [31mCONFIG_EXPERT[0m
depends on [31mCONFIG_PPC64[0m
help
Very large kernels can cause linker branch stubs to be generated by
code in head_64.S, which moves the head text sections out of their
specified location. This option can work around the problem.
If unsure, say "N".
config [31mCONFIG_MPROFILE_KERNEL[0m
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_CPU_LITTLE_ENDIAN[0m
def_bool $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) -I$(srctree)/include -D__KERNEL__)
config [31mCONFIG_HOTPLUG_CPU[0m
bool "Support for enabling/disabling CPUs"
depends on [31mCONFIG_SMP[0m && ([31mCONFIG_PPC_PSERIES[0m || \
[31mCONFIG_PPC_PMAC[0m || [31mCONFIG_PPC_POWERNV[0m || [31mCONFIG_FSL_SOC_BOOKE[0m)
help
Say Y here to be able to disable and re-enable individual
CPUs at runtime on [31mCONFIG_SMP[0m machines.
Say N if you are unsure.
config [31mCONFIG_ARCH_CPU_PROBE_RELEASE[0m
def_bool y
depends on [31mCONFIG_HOTPLUG_CPU[0m
config [31mCONFIG_ARCH_ENABLE_MEMORY_HOTPLUG[0m
def_bool y
config [31mCONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE[0m
def_bool y
config [31mCONFIG_PPC64_SUPPORTS_MEMORY_FAILURE[0m
bool "Add support for memory hwpoison"
depends on [31mCONFIG_PPC_BOOK3S_64[0m
default "y" if [31mCONFIG_PPC_POWERNV[0m
select [31mCONFIG_ARCH_SUPPORTS_MEMORY_FAILURE[0m
config [31mCONFIG_KEXEC[0m
bool "kexec system call"
depends on ([31mCONFIG_PPC_BOOK3S[0m || [31mCONFIG_FSL_BOOKE[0m || ([31mCONFIG_44x[0m && ![31mCONFIG_SMP[0m)) || [31mCONFIG_PPC_BOOK3E[0m
select [31mCONFIG_KEXEC_CORE[0m
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config [31mCONFIG_KEXEC_FILE[0m
bool "kexec file based system call"
select [31mCONFIG_KEXEC_CORE[0m
select [31mCONFIG_HAVE_IMA_KEXEC[0m
select [31mCONFIG_BUILD_BIN2C[0m
select [31mCONFIG_KEXEC_ELF[0m
depends on [31mCONFIG_PPC64[0m
depends on [31mCONFIG_CRYPTO[0m=y
depends on [31mCONFIG_CRYPTO_SHA256[0m=y
help
This is a new version of the kexec system call. This call is
file based and takes in file descriptors as system call arguments
for kernel and initramfs as opposed to a list of segments as is the
case for the older kexec call.
config [31mCONFIG_ARCH_HAS_KEXEC_PURGATORY[0m
def_bool [31mCONFIG_KEXEC_FILE[0m
config [31mCONFIG_RELOCATABLE[0m
bool "Build a relocatable kernel"
depends on [31mCONFIG_PPC64[0m || ([31mCONFIG_FLATMEM[0m && ([31mCONFIG_44x[0m || [31mCONFIG_FSL_BOOKE[0m))
select [31mCONFIG_NONSTATIC_KERNEL[0m
select [31mCONFIG_MODULE_REL_CRCS[0m if [31mCONFIG_MODVERSIONS[0m
help
This builds a kernel image that is capable of running at the
location the kernel is loaded at. For ppc32, there is no any
alignment restrictions, and this feature is a superset of
[31mCONFIG_DYNAMIC_MEMSTART[0m and hence overrides it. For ppc64, we should use
16k-aligned base address. The kernel is linked as a
position-independent executable (PIE) and contains dynamic relocations
which are processed early in the bootup process.
One use is for the kexec on panic case where the recovery kernel
must live at a different physical address than the primary
kernel.
Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
it has been loaded at and the compile time physical addresses
CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
setting can still be useful to bootwrappers that need to know the
load address of the kernel (eg. u-boot/mkimage).
config [31mCONFIG_RELOCATABLE_TEST[0m
bool "Test relocatable kernel"
depends on ([31mCONFIG_PPC64[0m && [31mCONFIG_RELOCATABLE[0m)
help
This runs the relocatable kernel at the address it was initially
loaded at, which tends to be non-zero and therefore test the
relocation code.
config [31mCONFIG_CRASH_DUMP[0m
bool "Build a dump capture kernel"
depends on [31mCONFIG_PPC64[0m || [31mCONFIG_PPC_BOOK3S_32[0m || [31mCONFIG_FSL_BOOKE[0m || ([31mCONFIG_44x[0m && ![31mCONFIG_SMP[0m)
select [31mCONFIG_RELOCATABLE[0m if [31mCONFIG_PPC64[0m || [31mCONFIG_44x[0m || [31mCONFIG_FSL_BOOKE[0m
help
Build a kernel suitable for use as a dump capture kernel.
The same kernel binary can be used as production kernel and dump
capture kernel.
config [31mCONFIG_FA_DUMP[0m
bool "Firmware-assisted dump"
depends on [31mCONFIG_PPC64[0m && ([31mCONFIG_PPC_RTAS[0m || [31mCONFIG_PPC_POWERNV[0m)
select [31mCONFIG_CRASH_CORE[0m
select [31mCONFIG_CRASH_DUMP[0m
help
[31mCONFIG_A[0m robust mechanism to get reliable kernel crash dump with
assistance from firmware. This approach does not use kexec,
instead firmware assists in booting the capture kernel
while preserving memory contents. Firmware-assisted dump
is meant to be a kdump replacement offering robustness and
speed not possible without system firmware assistance.
If unsure, say "y". Only special kernels like petitboot may
need to say "N" here.
config [31mCONFIG_PRESERVE_FA_DUMP[0m
bool "Preserve Firmware-assisted dump"
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_PPC_POWERNV[0m && ![31mCONFIG_FA_DUMP[0m
help
On a kernel with [31mCONFIG_FA_DUMP[0m disabled, this option helps to preserve
crash data from a previously crash'ed kernel. Useful when the next
memory preserving kernel boot would process this crash data.
Petitboot kernel is the typical usecase for this option.
config [31mCONFIG_OPAL_CORE[0m
bool "Export OPAL memory as /sys/firmware/opal/core"
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_PPC_POWERNV[0m
help
This option uses the MPIPL support in firmware to provide an
ELF core of OPAL memory after a crash. The ELF core is exported
as /sys/firmware/opal/core file which is helpful in debugging
OPAL crashes using GDB.
config [31mCONFIG_IRQ_ALL_CPUS[0m
bool "Distribute interrupts on all CPUs by default"
depends on [31mCONFIG_SMP[0m
help
This option gives the kernel permission to distribute IRQs across
multiple CPUs. Saying N here will route all IRQs to the first
CPU. Generally saying Y is safe, although some problems have been
reported with [31mCONFIG_SMP[0m Power Macintoshes with this option enabled.
config [31mCONFIG_NUMA[0m
bool "NUMA support"
depends on [31mCONFIG_PPC64[0m
default y if [31mCONFIG_SMP[0m && [31mCONFIG_PPC_PSERIES[0m
config [31mCONFIG_NODES_SHIFT[0m
int
default "8" if [31mCONFIG_PPC64[0m
default "4"
depends on [31mCONFIG_NEED_MULTIPLE_NODES[0m
config [31mCONFIG_USE_PERCPU_NUMA_NODE_ID[0m
def_bool y
depends on [31mCONFIG_NUMA[0m
config [31mCONFIG_HAVE_MEMORYLESS_NODES[0m
def_bool y
depends on [31mCONFIG_NUMA[0m
config [31mCONFIG_ARCH_SELECT_MEMORY_MODEL[0m
def_bool y
depends on [31mCONFIG_PPC64[0m
config [31mCONFIG_ARCH_FLATMEM_ENABLE[0m
def_bool y
depends on ([31mCONFIG_PPC64[0m && ![31mCONFIG_NUMA[0m) || [31mCONFIG_PPC32[0m
config [31mCONFIG_ARCH_SPARSEMEM_ENABLE[0m
def_bool y
depends on [31mCONFIG_PPC64[0m
select [31mCONFIG_SPARSEMEM_VMEMMAP_ENABLE[0m
config [31mCONFIG_ARCH_SPARSEMEM_DEFAULT[0m
def_bool y
depends on [31mCONFIG_PPC_BOOK3S_64[0m
config [31mCONFIG_SYS_SUPPORTS_HUGETLBFS[0m
bool
config [31mCONFIG_ILLEGAL_POINTER_VALUE[0m
hex
# This is roughly half way between the top of user space and the bottom
# of kernel space, which seems about as good as we can get.
default 0x5deadbeef0000000 if [31mCONFIG_PPC64[0m
default 0
config [31mCONFIG_ARCH_MEMORY_PROBE[0m
def_bool y
depends on [31mCONFIG_MEMORY_HOTPLUG[0m
# Some [31mCONFIG_NUMA[0m nodes have memory ranges that span
# other nodes. Even though a pfn is valid and
# between a node's start and end pfns, it may not
# reside on that node. See memmap_init_zone()
# for details.
config [31mCONFIG_NODES_SPAN_OTHER_NODES[0m
def_bool y
depends on [31mCONFIG_NEED_MULTIPLE_NODES[0m
config [31mCONFIG_STDBINUTILS[0m
bool "Using standard binutils settings"
depends on [31mCONFIG_44x[0m
default y
help
Turning this option off allows you to select 256KB PAGE_SIZE on [31mCONFIG_44x[0m.
Note, that kernel will be able to run only those applications,
which had been compiled using binutils later than 2.17.50.0.3 with
'-zmax-page-size' set to 256K (the default is 64K). Or, if using
the older binutils, you can patch them with a trivial patch, which
changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
choice
prompt "Page size"
default [31mCONFIG_PPC_4K_PAGES[0m
help
Select the kernel logical page size. Increasing the page size
will reduce software overhead at each page boundary, allow
hardware prefetch mechanisms to be more effective, and allow
larger dma transfers increasing IO efficiency and reducing
overhead. However the utilization of memory will increase.
For example, each cached file will using a multiple of the
page size to hold its contents and the difference between the
end of file and the end of page is wasted.
Some dedicated systems, such as software raid serving with
accelerated calculations, have shown significant increases.
If you configure a 64 bit kernel for 64k pages but the
processor does not support them, then the kernel will simulate
them with 4k pages, loading them on demand, but with the
reduced software overhead and larger internal fragmentation.
For the 32 bit kernel, a large page option will not be offered
unless it is supported by the configured processor.
If unsure, choose 4K_PAGES.
config [31mCONFIG_PPC_4K_PAGES[0m
bool "4k page size"
select [31mCONFIG_HAVE_ARCH_SOFT_DIRTY[0m if [31mCONFIG_PPC_BOOK3S_64[0m
config [31mCONFIG_PPC_16K_PAGES[0m
bool "16k page size"
depends on [31mCONFIG_44x[0m || [31mCONFIG_PPC_8xx[0m
config [31mCONFIG_PPC_64K_PAGES[0m
bool "64k page size"
depends on [31mCONFIG_44x[0m || [31mCONFIG_PPC_BOOK3S_64[0m
select [31mCONFIG_HAVE_ARCH_SOFT_DIRTY[0m if [31mCONFIG_PPC_BOOK3S_64[0m
config [31mCONFIG_PPC_256K_PAGES[0m
bool "256k page size"
depends on [31mCONFIG_44x[0m && ![31mCONFIG_STDBINUTILS[0m
help
Make the page size 256k.
As the ELF standard only requires alignment to support page
sizes up to 64k, you will need to compile all of your user
space applications with a non-standard binutils settings
(see the [31mCONFIG_STDBINUTILS[0m description for details).
Say N unless you know what you are doing.
endchoice
config [31mCONFIG_PPC_PAGE_SHIFT[0m
int
default 18 if [31mCONFIG_PPC_256K_PAGES[0m
default 16 if [31mCONFIG_PPC_64K_PAGES[0m
default 14 if [31mCONFIG_PPC_16K_PAGES[0m
default 12
config [31mCONFIG_THREAD_SHIFT[0m
int "Thread shift" if [31mCONFIG_EXPERT[0m
range 13 15
default "15" if [31mCONFIG_PPC_256K_PAGES[0m
default "14" if [31mCONFIG_PPC64[0m
default "13"
help
Used to define the stack size. The default is almost always what you
want. Only change this if you know what you are doing.
config [31mCONFIG_ETEXT_SHIFT_BOOL[0m
bool "Set custom etext alignment" if [31mCONFIG_STRICT_KERNEL_RWX[0m && \
([31mCONFIG_PPC_BOOK3S_32[0m || [31mCONFIG_PPC_8xx[0m)
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the kernel end of text alignment. When
RAM is mapped by blocks, the alignment needs to fit the size and
number of possible blocks. The default should be OK for most configs.
Say N here unless you know what you are doing.
config [31mCONFIG_ETEXT_SHIFT[0m
int "_etext shift" if [31mCONFIG_ETEXT_SHIFT_BOOL[0m
range 17 28 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_BOOK3S_32[0m
range 19 23 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_8xx[0m
default 17 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_BOOK3S_32[0m
default 19 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_8xx[0m
default [31mCONFIG_PPC_PAGE_SHIFT[0m
help
On Book3S 32 (603+), IBATs are used to map kernel text.
Smaller is the alignment, greater is the number of necessary IBATs.
On [31mCONFIG_8xx[0m, large pages (512kb or 8M) are used to map kernel linear
memory. Aligning to 8M reduces TLB misses as only 8M pages are used
in that case.
config [31mCONFIG_DATA_SHIFT_BOOL[0m
bool "Set custom data alignment" if [31mCONFIG_STRICT_KERNEL_RWX[0m && \
([31mCONFIG_PPC_BOOK3S_32[0m || [31mCONFIG_PPC_8xx[0m)
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the kernel data alignment. When
RAM is mapped by blocks, the alignment needs to fit the size and
number of possible blocks. The default should be OK for most configs.
Say N here unless you know what you are doing.
config [31mCONFIG_DATA_SHIFT[0m
int "Data shift" if [31mCONFIG_DATA_SHIFT_BOOL[0m
default 24 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC64[0m
range 17 28 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_BOOK3S_32[0m
range 19 23 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_8xx[0m
default 22 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_BOOK3S_32[0m
default 23 if [31mCONFIG_STRICT_KERNEL_RWX[0m && [31mCONFIG_PPC_8xx[0m
default [31mCONFIG_PPC_PAGE_SHIFT[0m
help
On Book3S 32 (603+), DBATs are used to map kernel text and rodata RO.
Smaller is the alignment, greater is the number of necessary DBATs.
On [31mCONFIG_8xx[0m, large pages (512kb or 8M) are used to map kernel linear
memory. Aligning to 8M reduces TLB misses as only 8M pages are used
in that case.
config [31mCONFIG_FORCE_MAX_ZONEORDER[0m
int "Maximum zone order"
range 8 9 if [31mCONFIG_PPC64[0m && [31mCONFIG_PPC_64K_PAGES[0m
default "9" if [31mCONFIG_PPC64[0m && [31mCONFIG_PPC_64K_PAGES[0m
range 13 13 if [31mCONFIG_PPC64[0m && ![31mCONFIG_PPC_64K_PAGES[0m
default "13" if [31mCONFIG_PPC64[0m && ![31mCONFIG_PPC_64K_PAGES[0m
range 9 64 if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_16K_PAGES[0m
default "9" if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_16K_PAGES[0m
range 7 64 if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_64K_PAGES[0m
default "7" if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_64K_PAGES[0m
range 5 64 if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_256K_PAGES[0m
default "5" if [31mCONFIG_PPC32[0m && [31mCONFIG_PPC_256K_PAGES[0m
range 11 64
default "11"
help
The kernel memory allocator divides physically contiguous memory
blocks into "zones", where each zone is a power of two number of
pages. This option selects the largest power of two that the kernel
keeps in the memory allocator. If you need to allocate very large
blocks of physically contiguous memory, then you may need to
increase this value.
This config option is actually maximum order plus one. For example,
a value of 11 means that the largest free memory block is 2^10 pages.
The page size is not necessarily 4KB. For example, on 64-bit
systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
this in mind when choosing a value for this option.
config [31mCONFIG_PPC_SUBPAGE_PROT[0m
bool "Support setting protections for 4k subpages"
depends on [31mCONFIG_PPC_BOOK3S_64[0m && [31mCONFIG_PPC_64K_PAGES[0m
help
This option adds support for a system call to allow user programs
to set access permissions (read/write, readonly, or no access)
on the 4k subpages of each 64k page.
config [31mCONFIG_PPC_COPRO_BASE[0m
bool
config [31mCONFIG_SCHED_SMT[0m
bool "SMT (Hyperthreading) scheduler support"
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_SMP[0m
help
SMT scheduler support improves the CPU scheduler's decision making
when dealing with POWER5 cpus at a cost of slightly increased
overhead in some places. If unsure say N here.
config [31mCONFIG_PPC_DENORMALISATION[0m
bool "PowerPC denormalisation exception handling"
depends on [31mCONFIG_PPC_BOOK3S_64[0m
default "y" if [31mCONFIG_PPC_POWERNV[0m
help
Add support for handling denormalisation of single precision
values. Useful for bare metal only. If unsure say Y here.
config [31mCONFIG_CMDLINE_BOOL[0m
bool "Default bootloader kernel arguments"
config [31mCONFIG_CMDLINE[0m
string "Initial kernel command string" if [31mCONFIG_CMDLINE_BOOL[0m
default "console=ttyS0,9600 console=tty0 root=/dev/sda2" if [31mCONFIG_CMDLINE_BOOL[0m
default ""
help
On some platforms, there is currently no way for the boot loader to
pass arguments to the kernel. For these platforms, you can supply
some command-line options at build time by entering them here. In
most cases you will need to specify the root device here.
config [31mCONFIG_CMDLINE_FORCE[0m
bool "Always use the default kernel command string"
depends on [31mCONFIG_CMDLINE_BOOL[0m
help
Always use the default kernel command string, even if the boot
loader passes other arguments to the kernel.
This is useful if you cannot or don't want to change the
command-line options your boot loader passes to the kernel.
config [31mCONFIG_EXTRA_TARGETS[0m
string "Additional default image types"
help
List additional targets to be built by the bootwrapper here (separated
by spaces). This is useful for targets that depend of device tree
files in the .dts directory.
Targets in this list will be build as part of the default build
target, or when the user does a 'make zImage' or a
'make zImage.initrd'.
If unsure, leave blank
config [31mCONFIG_ARCH_WANTS_FREEZER_CONTROL[0m
def_bool y
depends on [31mCONFIG_ADB_PMU[0m
source "kernel/power/Kconfig"
config [31mCONFIG_SECCOMP[0m
bool "Enable seccomp to safely compute untrusted bytecode"
depends on [31mCONFIG_PROC_FS[0m
default y
help
This kernel feature is useful for number crunching applications
that may need to compute untrusted bytecode during their
execution. By using pipes or other transports made available to
the process as file descriptors supporting the read/write
syscalls, it's possible to isolate those applications in
their own address space using seccomp. Once seccomp is
enabled via /proc/<pid>/seccomp, it cannot be disabled
and the task is only allowed to execute a few safe syscalls
defined by each seccomp mode.
If unsure, say Y. Only embedded should say N here.
config [31mCONFIG_PPC_MEM_KEYS[0m
prompt "PowerPC Memory Protection Keys"
def_bool y
depends on [31mCONFIG_PPC_BOOK3S_64[0m
select [31mCONFIG_ARCH_USES_HIGH_VMA_FLAGS[0m
select [31mCONFIG_ARCH_HAS_PKEYS[0m
help
Memory Protection Keys provides a mechanism for enforcing
page-based protections, but without requiring modification of the
page tables when an application changes protection domains.
For details, see Documentation/core-api/protection-keys.rst
If unsure, say y.
endmenu
config [31mCONFIG_ISA_DMA_API[0m
bool
default [31mCONFIG_PCI[0m
menu "Bus options"
config [31mCONFIG_ISA[0m
bool "Support for ISA-bus hardware"
depends on [31mCONFIG_PPC_CHRP[0m
select [31mCONFIG_PPC_I8259[0m
help
Find out whether you have [31mCONFIG_ISA[0m slots on your motherboard. [31mCONFIG_ISA[0m is the
name of a bus system, i.e. the way the CPU talks to the other stuff
inside your box. If you have an Apple machine, say N here; if you
have an IBM RS/6000 or pSeries machine, say Y. If you have an
embedded board, consult your board documentation.
config [31mCONFIG_GENERIC_ISA_DMA[0m
bool
depends on [31mCONFIG_ISA_DMA_API[0m
default y
config [31mCONFIG_PPC_INDIRECT_PCI[0m
bool
depends on [31mCONFIG_PCI[0m
default y if [31mCONFIG_40x[0m || [31mCONFIG_44x[0m
config [31mCONFIG_SBUS[0m
bool
config [31mCONFIG_FSL_SOC[0m
bool
config [31mCONFIG_FSL_PCI[0m
bool
select [31mCONFIG_ARCH_HAS_DMA_SET_MASK[0m
select [31mCONFIG_PPC_INDIRECT_PCI[0m
select [31mCONFIG_PCI_QUIRKS[0m
config [31mCONFIG_FSL_PMC[0m
bool
default y
depends on [31mCONFIG_SUSPEND[0m && ([31mCONFIG_PPC_85xx[0m || [31mCONFIG_PPC_86xx[0m)
help
Freescale MPC85xx/MPC86xx power management controller support
(suspend/resume). For MPC83xx see platforms/83xx/suspend.c
config [31mCONFIG_PPC4xx_CPM[0m
bool
default y
depends on [31mCONFIG_SUSPEND[0m && ([31mCONFIG_44x[0m || [31mCONFIG_40x[0m)
help
PPC4xx Clock Power Management ([31mCONFIG_CPM[0m) support (suspend/resume).
It also enables support for two different idle states (idle-wait
and idle-doze).
config [31mCONFIG_4xx_SOC[0m
bool
config [31mCONFIG_FSL_LBC[0m
bool "Freescale Local Bus support"
help
Enables reporting of errors from the Freescale local bus
controller. Also contains some common code used by
drivers for specific local bus peripherals.
config [31mCONFIG_FSL_GTM[0m
bool
depends on [31mCONFIG_PPC_83xx[0m || [31mCONFIG_QUICC_ENGINE[0m || [31mCONFIG_CPM2[0m
help
Freescale General-purpose Timers support
config [31mCONFIG_PCI_8260[0m
bool
depends on [31mCONFIG_PCI[0m && [31mCONFIG_8260[0m
select [31mCONFIG_PPC_INDIRECT_PCI[0m
default y
config [31mCONFIG_FSL_RIO[0m
bool "Freescale Embedded SRIO Controller support"
depends on [31mCONFIG_RAPIDIO[0m = y && [31mCONFIG_HAVE_RAPIDIO[0m
default "n"
help
Include support for RapidIO controller on Freescale embedded
processors (MPC8548, [31mCONFIG_MPC8641[0m, etc).
endmenu
config [31mCONFIG_NONSTATIC_KERNEL[0m
bool
menu "Advanced setup"
depends on [31mCONFIG_PPC32[0m
config [31mCONFIG_ADVANCED_OPTIONS[0m
bool "Prompt for advanced kernel configuration options"
help
This option will enable prompting for a variety of advanced kernel
configuration options. These options can cause the kernel to not
work if they are set incorrectly, but can be used to optimize certain
aspects of kernel memory management.
Unless you know what you are doing, say N here.
comment "Default settings for advanced configuration options are used"
depends on ![31mCONFIG_ADVANCED_OPTIONS[0m
config [31mCONFIG_LOWMEM_SIZE_BOOL[0m
bool "Set maximum low memory"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the maximum amount of memory which
will be used as "low memory", that is, memory which the kernel can
access directly, without having to set up a kernel virtual mapping.
This can be useful in optimizing the layout of kernel virtual
memory.
Say N here unless you know what you are doing.
config [31mCONFIG_LOWMEM_SIZE[0m
hex "Maximum low memory size (in bytes)" if [31mCONFIG_LOWMEM_SIZE_BOOL[0m
default "0x30000000"
config [31mCONFIG_LOWMEM_CAM_NUM_BOOL[0m
bool "Set number of CAMs to use to map low memory"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m && [31mCONFIG_FSL_BOOKE[0m
help
This option allows you to set the maximum number of CAM slots that
will be used to map low memory. There are a limited number of slots
available and even more limited number that will fit in the L1 [31mCONFIG_MMU[0m.
However, using more entries will allow mapping more low memory. This
can be useful in optimizing the layout of kernel virtual memory.
Say N here unless you know what you are doing.
config [31mCONFIG_LOWMEM_CAM_NUM[0m
depends on [31mCONFIG_FSL_BOOKE[0m
int "Number of CAMs to use to map low memory" if [31mCONFIG_LOWMEM_CAM_NUM_BOOL[0m
default 3
config [31mCONFIG_DYNAMIC_MEMSTART[0m
bool "Enable page aligned dynamic load address for kernel"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m && [31mCONFIG_FLATMEM[0m && ([31mCONFIG_FSL_BOOKE[0m || [31mCONFIG_44x[0m)
select [31mCONFIG_NONSTATIC_KERNEL[0m
help
This option enables the kernel to be loaded at any page aligned
physical address. The kernel creates a mapping from [31mCONFIG_KERNELBASE[0m to
the address where the kernel is loaded. The page size here implies
the TLB page size of the mapping for kernel on the particular platform.
Please refer to the init code for finding the TLB page size.
[31mCONFIG_DYNAMIC_MEMSTART[0m is an easy way of implementing pseudo-[31mCONFIG_RELOCATABLE[0m
kernel image, where the only restriction is the page aligned kernel
load address. When this option is enabled, the compile time physical
address CONFIG_PHYSICAL_START is ignored.
This option is overridden by CONFIG_RELOCATABLE
config [31mCONFIG_PAGE_OFFSET_BOOL[0m
bool "Set custom page offset address"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the kernel virtual address at which
the kernel will map low memory. This can be useful in optimizing
the virtual memory layout of the system.
Say N here unless you know what you are doing.
config [31mCONFIG_PAGE_OFFSET[0m
hex "Virtual address of memory base" if [31mCONFIG_PAGE_OFFSET_BOOL[0m
default "0xc0000000"
config [31mCONFIG_KERNEL_START_BOOL[0m
bool "Set custom kernel base address"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the kernel virtual address at which
the kernel will be loaded. Normally this should match [31mCONFIG_PAGE_OFFSET[0m
however there are times (like kdump) that one might not want them
to be the same.
Say N here unless you know what you are doing.
config [31mCONFIG_KERNEL_START[0m
hex "Virtual address of kernel base" if [31mCONFIG_KERNEL_START_BOOL[0m
default [31mCONFIG_PAGE_OFFSET[0m if [31mCONFIG_PAGE_OFFSET_BOOL[0m
default "0xc2000000" if [31mCONFIG_CRASH_DUMP[0m && ![31mCONFIG_NONSTATIC_KERNEL[0m
default "0xc0000000"
config [31mCONFIG_PHYSICAL_START_BOOL[0m
bool "Set physical address where the kernel is loaded"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m && [31mCONFIG_FLATMEM[0m && [31mCONFIG_FSL_BOOKE[0m
help
This gives the physical address where the kernel is loaded.
Say N here unless you know what you are doing.
config [31mCONFIG_PHYSICAL_START[0m
hex "Physical address where the kernel is loaded" if [31mCONFIG_PHYSICAL_START_BOOL[0m
default "0x02000000" if [31mCONFIG_PPC_BOOK3S[0m && [31mCONFIG_CRASH_DUMP[0m && ![31mCONFIG_NONSTATIC_KERNEL[0m
default "0x00000000"
config [31mCONFIG_PHYSICAL_ALIGN[0m
hex
default "0x04000000" if [31mCONFIG_FSL_BOOKE[0m
help
This value puts the alignment restrictions on physical address
where kernel is loaded and run from. Kernel is compiled for an
address which meets above alignment restriction.
config [31mCONFIG_TASK_SIZE_BOOL[0m
bool "Set custom user task size"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m
help
This option allows you to set the amount of virtual address space
allocated to user tasks. This can be useful in optimizing the
virtual memory layout of the system.
Say N here unless you know what you are doing.
config [31mCONFIG_TASK_SIZE[0m
hex "Size of user task space" if [31mCONFIG_TASK_SIZE_BOOL[0m
default "0x80000000" if [31mCONFIG_PPC_8xx[0m
default "0xc0000000"
config [31mCONFIG_PIN_TLB[0m
bool "Pinned Kernel TLBs (860 ONLY)"
depends on [31mCONFIG_ADVANCED_OPTIONS[0m && [31mCONFIG_PPC_8xx[0m && \
![31mCONFIG_DEBUG_PAGEALLOC[0m && ![31mCONFIG_STRICT_KERNEL_RWX[0m
config [31mCONFIG_PIN_TLB_DATA[0m
bool "Pinned TLB for DATA"
depends on [31mCONFIG_PIN_TLB[0m
default y
config [31mCONFIG_PIN_TLB_IMMR[0m
bool "Pinned TLB for IMMR"
depends on [31mCONFIG_PIN_TLB[0m || [31mCONFIG_PPC_EARLY_DEBUG_CPM[0m
default y
config [31mCONFIG_PIN_TLB_TEXT[0m
bool "Pinned TLB for TEXT"
depends on [31mCONFIG_PIN_TLB[0m
default y
endmenu
if [31mCONFIG_PPC64[0m
# This value must have zeroes in the bottom 60 bits otherwise lots will break
config [31mCONFIG_PAGE_OFFSET[0m
hex
default "0xc000000000000000"
config [31mCONFIG_KERNEL_START[0m
hex
default "0xc000000000000000"
config [31mCONFIG_PHYSICAL_START[0m
hex
default "0x00000000"
endif
config [31mCONFIG_ARCH_RANDOM[0m
def_bool n
config [31mCONFIG_PPC_LIB_RHEAP[0m
bool
source "arch/powerpc/kvm/Kconfig"
source "kernel/livepatch/Kconfig"