Skip to content
Kconfig 36.5 KiB
Newer Older
source "arch/powerpc/platforms/Kconfig.cputype"
config 32BIT
	bool
	default y if PPC32

config 64BIT
	bool
	default y if PPC64

config MMU
	bool
	default y

config ARCH_MMAP_RND_BITS_MAX
	# 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 PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K)
	default 33 if PPC_BOOK3S_64		     # 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 64BIT	# 32 = 44 (16T) - 12 (4K)
	#
	# For 32-bit, use the compat values, as they're the same.
	default ARCH_MMAP_RND_COMPAT_BITS_MAX

config ARCH_MMAP_RND_BITS_MIN
	# Allow randomisation to consume up to 1GB of address space (2^30).
	default 14 if 64BIT && PPC_64K_PAGES	# 14 = 30 (1GB) - 16 (64K)
	default 18 if 64BIT			# 18 = 30 (1GB) - 12 (4K)
	#
	# For 32-bit, use the compat values, as they're the same.
	default ARCH_MMAP_RND_COMPAT_BITS_MIN

config ARCH_MMAP_RND_COMPAT_BITS_MAX
	# 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 PPC_256K_PAGES	# 11 = 29 (512MB) - 18 (256K)
	default 13 if PPC_64K_PAGES	# 13 = 29 (512MB) - 16 (64K)
	default 15 if PPC_16K_PAGES	# 15 = 29 (512MB) - 14 (16K)
	default 17			# 17 = 29 (512MB) - 12 (4K)

config ARCH_MMAP_RND_COMPAT_BITS_MIN
	# 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 PPC_256K_PAGES	#  5 = 23 (8MB) - 18 (256K)
	default 7 if PPC_64K_PAGES	#  7 = 23 (8MB) - 16 (64K)
	default 9 if PPC_16K_PAGES	#  9 = 23 (8MB) - 14 (16K)
	default 11			# 11 = 23 (8MB) - 12 (4K)

config HAVE_SETUP_PER_CPU_AREA
config NEED_PER_CPU_EMBED_FIRST_CHUNK
	def_bool y if PPC64

config NEED_PER_CPU_PAGE_FIRST_CHUNK
	def_bool y if PPC64
config NR_IRQS
	int "Number of virtual interrupt numbers"
	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 NMI_IPI
	bool
	depends on SMP && (DEBUGGER || KEXEC_CORE || HARDLOCKUP_DETECTOR)
config PPC_WATCHDOG
	bool
	depends on HARDLOCKUP_DETECTOR
	depends on HAVE_HARDLOCKUP_DETECTOR_ARCH
	default y
	help
	  This is a placeholder when the powerpc hardlockup detector
	  watchdog is selected (arch/powerpc/kernel/watchdog.c). It is
	  selected via the generic lockup detector menu which is why we
	  have no standalone config option for it here.

config STACKTRACE_SUPPORT
	bool
	default y

config TRACE_IRQFLAGS_SUPPORT
	bool
	default y

config LOCKDEP_SUPPORT
	bool
	default y

config GENERIC_LOCKBREAK
	bool
	default y
	depends on SMP && PREEMPTION
config GENERIC_HWEIGHT
	bool
	default y

	#
	# Please keep this list sorted alphabetically.
	#
	select ARCH_32BIT_OFF_T if PPC32
	select ARCH_HAS_DEBUG_VIRTUAL
	select ARCH_HAS_DEVMEM_IS_ALLOWED
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_GCOV_PROFILE_ALL
Andrew Donnellan's avatar
Andrew Donnellan committed
	select ARCH_HAS_KCOV
	select ARCH_HAS_HUGEPD			if HUGETLB_PAGE
	select ARCH_HAS_MEMREMAP_COMPAT_ALIGN
	select ARCH_HAS_MMIOWB			if PPC64
	select ARCH_HAS_PHYS_TO_DMA
	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
	select ARCH_HAS_PTE_DEVMAP		if PPC_BOOK3S_64
	select ARCH_HAS_PTE_SPECIAL
	select ARCH_HAS_MEMBARRIER_CALLBACKS
	select ARCH_HAS_MEMBARRIER_SYNC_CORE
	select ARCH_HAS_SCALED_CPUTIME		if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
	select ARCH_HAS_STRICT_KERNEL_RWX	if (PPC32 && !HIBERNATION)
	select ARCH_HAS_TICK_BROADCAST		if GENERIC_CLOCKEVENTS_BROADCAST
	select ARCH_HAS_COPY_MC			if PPC64
	select ARCH_HAS_UBSAN_SANITIZE_ALL
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_OPTIONAL_KERNEL_RWX		if ARCH_HAS_STRICT_KERNEL_RWX
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_DEBUG_PAGEALLOC	if PPC32 || PPC_BOOK3S_64
	select ARCH_USE_BUILTIN_BSWAP
	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
	select ARCH_USE_QUEUED_RWLOCKS		if PPC_QUEUED_SPINLOCKS
	select ARCH_USE_QUEUED_SPINLOCKS	if PPC_QUEUED_SPINLOCKS
	select ARCH_WANT_IPC_PARSE_VERSION
	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
	select ARCH_WANT_LD_ORPHAN_WARN
	select ARCH_WEAK_RELEASE_ACQUIRE
	select BUILDTIME_TABLE_SORT
	select CLONE_BACKWARDS
	select DCACHE_WORD_ACCESS		if PPC64 && CPU_LITTLE_ENDIAN
	select DMA_OPS				if PPC64
	select DMA_OPS_BYPASS			if PPC64
	select ARCH_HAS_DMA_MAP_DIRECT 		if PPC64 && PPC_PSERIES
	select DYNAMIC_FTRACE			if FUNCTION_TRACER
	select EDAC_ATOMIC_SCRUB
	select EDAC_SUPPORT
	select GENERIC_ATOMIC64			if PPC32
	select GENERIC_CLOCKEVENTS_BROADCAST	if SMP
	select GENERIC_CMOS_UPDATE
	select GENERIC_CPU_AUTOPROBE
	select GENERIC_CPU_VULNERABILITIES	if PPC_BARRIER_NOSPEC
	select GENERIC_EARLY_IOREMAP
	select GENERIC_IRQ_SHOW
	select GENERIC_IRQ_SHOW_LEVEL
	select GENERIC_PCI_IOMAP		if PCI
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER
	select GENERIC_GETTIMEOFDAY
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_HUGE_VMAP		if PPC_BOOK3S_64 && PPC_RADIX_MMU
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_ARCH_KASAN			if PPC32 && PPC_PAGE_SHIFT <= 14
	select HAVE_ARCH_KASAN_VMALLOC		if PPC32 && PPC_PAGE_SHIFT <= 14
	select HAVE_ARCH_KGDB
	select HAVE_ARCH_MMAP_RND_BITS
	select HAVE_ARCH_MMAP_RND_COMPAT_BITS	if COMPAT
	select HAVE_ARCH_NVRAM_OPS
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ASM_MODVERSIONS
	select HAVE_C_RECORDMCOUNT
	select HAVE_CBPF_JIT			if !PPC64
	select HAVE_STACKPROTECTOR		if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
	select HAVE_STACKPROTECTOR		if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
	select HAVE_CONTEXT_TRACKING		if PPC64
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DEBUG_STACKOVERFLOW
Loading
Loading full blame...