xref: /linux/arch/powerpc/Kconfig (revision 11ddce15)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2a0ae9c7cSArnd Bergmannsource "arch/powerpc/platforms/Kconfig.cputype"
317e638bcSJohannes Berg
414cf11afSPaul Mackerrasconfig PPC32
514cf11afSPaul Mackerras	bool
614cf11afSPaul Mackerras	default y if !PPC64
714cf11afSPaul Mackerras
8234a71a7Skerstin jonssonconfig 32BIT
9234a71a7Skerstin jonsson	bool
10234a71a7Skerstin jonsson	default y if PPC32
11234a71a7Skerstin jonsson
1214cf11afSPaul Mackerrasconfig 64BIT
1314cf11afSPaul Mackerras	bool
1414cf11afSPaul Mackerras	default y if PPC64
1514cf11afSPaul Mackerras
1614cf11afSPaul Mackerrasconfig MMU
1714cf11afSPaul Mackerras	bool
1814cf11afSPaul Mackerras	default y
1914cf11afSPaul Mackerras
209fea59bdSMichael Ellermanconfig ARCH_MMAP_RND_BITS_MAX
219fea59bdSMichael Ellerman	# On Book3S 64, the default virtual address space for 64-bit processes
229fea59bdSMichael Ellerman	# is 2^47 (128TB). As a maximum, allow randomisation to consume up to
239fea59bdSMichael Ellerman	# 32T of address space (2^45), which should ensure a reasonable gap
249fea59bdSMichael Ellerman	# between bottom-up and top-down allocations for applications that
259fea59bdSMichael Ellerman	# consume "normal" amounts of address space. Book3S 64 only supports 64K
269fea59bdSMichael Ellerman	# and 4K page sizes.
279fea59bdSMichael Ellerman	default 29 if PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K)
289fea59bdSMichael Ellerman	default 33 if PPC_BOOK3S_64		     # 33 = 45 (32T) - 12 (4K)
299fea59bdSMichael Ellerman	#
309fea59bdSMichael Ellerman	# On all other 64-bit platforms (currently only Book3E), the virtual
319fea59bdSMichael Ellerman	# address space is 2^46 (64TB). Allow randomisation to consume up to 16T
329fea59bdSMichael Ellerman	# of address space (2^44). Only 4K page sizes are supported.
339fea59bdSMichael Ellerman	default 32 if 64BIT	# 32 = 44 (16T) - 12 (4K)
349fea59bdSMichael Ellerman	#
359fea59bdSMichael Ellerman	# For 32-bit, use the compat values, as they're the same.
369fea59bdSMichael Ellerman	default ARCH_MMAP_RND_COMPAT_BITS_MAX
379fea59bdSMichael Ellerman
389fea59bdSMichael Ellermanconfig ARCH_MMAP_RND_BITS_MIN
399fea59bdSMichael Ellerman	# Allow randomisation to consume up to 1GB of address space (2^30).
409fea59bdSMichael Ellerman	default 14 if 64BIT && PPC_64K_PAGES	# 14 = 30 (1GB) - 16 (64K)
419fea59bdSMichael Ellerman	default 18 if 64BIT			# 18 = 30 (1GB) - 12 (4K)
429fea59bdSMichael Ellerman	#
439fea59bdSMichael Ellerman	# For 32-bit, use the compat values, as they're the same.
449fea59bdSMichael Ellerman	default ARCH_MMAP_RND_COMPAT_BITS_MIN
459fea59bdSMichael Ellerman
469fea59bdSMichael Ellermanconfig ARCH_MMAP_RND_COMPAT_BITS_MAX
479fea59bdSMichael Ellerman	# Total virtual address space for 32-bit processes is 2^31 (2GB).
489fea59bdSMichael Ellerman	# Allow randomisation to consume up to 512MB of address space (2^29).
499fea59bdSMichael Ellerman	default 11 if PPC_256K_PAGES	# 11 = 29 (512MB) - 18 (256K)
509fea59bdSMichael Ellerman	default 13 if PPC_64K_PAGES	# 13 = 29 (512MB) - 16 (64K)
519fea59bdSMichael Ellerman	default 15 if PPC_16K_PAGES 	# 15 = 29 (512MB) - 14 (16K)
529fea59bdSMichael Ellerman	default 17			# 17 = 29 (512MB) - 12 (4K)
539fea59bdSMichael Ellerman
549fea59bdSMichael Ellermanconfig ARCH_MMAP_RND_COMPAT_BITS_MIN
559fea59bdSMichael Ellerman	# Total virtual address space for 32-bit processes is 2^31 (2GB).
569fea59bdSMichael Ellerman	# Allow randomisation to consume up to 8MB of address space (2^23).
579fea59bdSMichael Ellerman	default 5 if PPC_256K_PAGES	#  5 = 23 (8MB) - 18 (256K)
589fea59bdSMichael Ellerman	default 7 if PPC_64K_PAGES	#  7 = 23 (8MB) - 16 (64K)
599fea59bdSMichael Ellerman	default 9 if PPC_16K_PAGES	#  9 = 23 (8MB) - 14 (16K)
609fea59bdSMichael Ellerman	default 11			# 11 = 23 (8MB) - 12 (4K)
619fea59bdSMichael Ellerman
62c2a7e818STejun Heoconfig HAVE_SETUP_PER_CPU_AREA
63e74e3962STejun Heo	def_bool PPC64
64e74e3962STejun Heo
65c2a7e818STejun Heoconfig NEED_PER_CPU_EMBED_FIRST_CHUNK
66b32ef636Stravis@sgi.com	def_bool PPC64
67b32ef636Stravis@sgi.com
68551b81f2SMichael Ellermanconfig NR_IRQS
69551b81f2SMichael Ellerman	int "Number of virtual interrupt numbers"
70859aefc5SAnton Blanchard	range 32 32768
71551b81f2SMichael Ellerman	default "512"
72551b81f2SMichael Ellerman	help
73551b81f2SMichael Ellerman	  This defines the number of virtual interrupt numbers the kernel
74551b81f2SMichael Ellerman	  can manage. Virtual interrupt numbers are what you see in
75551b81f2SMichael Ellerman	  /proc/interrupts. If you configure your system to have too few,
76551b81f2SMichael Ellerman	  drivers will fail to load or worse - handle with care.
77551b81f2SMichael Ellerman
78ddd703caSNicholas Pigginconfig NMI_IPI
79ddd703caSNicholas Piggin	bool
802104180aSNicholas Piggin	depends on SMP && (DEBUGGER || KEXEC_CORE || HARDLOCKUP_DETECTOR)
81ddd703caSNicholas Piggin	default y
82ddd703caSNicholas Piggin
8375eb767eSNicholas Pigginconfig PPC_WATCHDOG
8475eb767eSNicholas Piggin	bool
8575eb767eSNicholas Piggin	depends on HARDLOCKUP_DETECTOR
8675eb767eSNicholas Piggin	depends on HAVE_HARDLOCKUP_DETECTOR_ARCH
8775eb767eSNicholas Piggin	default y
8875eb767eSNicholas Piggin	help
8975eb767eSNicholas Piggin	  This is a placeholder when the powerpc hardlockup detector
9075eb767eSNicholas Piggin	  watchdog is selected (arch/powerpc/kernel/watchdog.c). It is
9175eb767eSNicholas Piggin	  seleted via the generic lockup detector menu which is why we
9275eb767eSNicholas Piggin	  have no standalone config option for it here.
9375eb767eSNicholas Piggin
94fd3e0bbcSChristoph Hellwigconfig STACKTRACE_SUPPORT
95fd3e0bbcSChristoph Hellwig	bool
96fd3e0bbcSChristoph Hellwig	default y
97fd3e0bbcSChristoph Hellwig
98945feb17SBenjamin Herrenschmidtconfig TRACE_IRQFLAGS_SUPPORT
99945feb17SBenjamin Herrenschmidt	bool
100945feb17SBenjamin Herrenschmidt	default y
101945feb17SBenjamin Herrenschmidt
102945feb17SBenjamin Herrenschmidtconfig LOCKDEP_SUPPORT
103945feb17SBenjamin Herrenschmidt	bool
104945feb17SBenjamin Herrenschmidt	default y
105945feb17SBenjamin Herrenschmidt
10614cf11afSPaul Mackerrasconfig RWSEM_GENERIC_SPINLOCK
10714cf11afSPaul Mackerras	bool
10814cf11afSPaul Mackerras
10914cf11afSPaul Mackerrasconfig RWSEM_XCHGADD_ALGORITHM
11014cf11afSPaul Mackerras	bool
11114cf11afSPaul Mackerras	default y
11214cf11afSPaul Mackerras
11395c354feSNick Pigginconfig GENERIC_LOCKBREAK
11495c354feSNick Piggin	bool
11595c354feSNick Piggin	default y
11695c354feSNick Piggin	depends on SMP && PREEMPT
11795c354feSNick Piggin
118e779b2f9SAkinobu Mitaconfig GENERIC_HWEIGHT
119e779b2f9SAkinobu Mita	bool
120e779b2f9SAkinobu Mita	default y
121e779b2f9SAkinobu Mita
12214cf11afSPaul Mackerrasconfig PPC
12314cf11afSPaul Mackerras	bool
12414cf11afSPaul Mackerras	default y
125a7d2475aSMichael Ellerman	#
126a7d2475aSMichael Ellerman	# Please keep this list sorted alphabetically.
127a7d2475aSMichael Ellerman	#
1286bf752daSChristophe Leroy	select ARCH_HAS_DEBUG_VIRTUAL
129a7d2475aSMichael Ellerman	select ARCH_HAS_DEVMEM_IS_ALLOWED
130a7d2475aSMichael Ellerman	select ARCH_HAS_ELF_RANDOMIZE
1316974f0c4SDaniel Micay	select ARCH_HAS_FORTIFY_SOURCE
132a7d2475aSMichael Ellerman	select ARCH_HAS_GCOV_PROFILE_ALL
133ea8c64acSChristoph Hellwig	select ARCH_HAS_PHYS_TO_DMA
13432ce3862SOliver O'Halloran	select ARCH_HAS_PMEM_API                if PPC64
1353010a5eaSLaurent Dufour	select ARCH_HAS_PTE_SPECIAL
1363ccfebedSMathieu Desnoyers	select ARCH_HAS_MEMBARRIER_CALLBACKS
137abcff86dSChristophe Leroy	select ARCH_HAS_SCALED_CPUTIME		if VIRT_CPU_ACCOUNTING_NATIVE && PPC64
1384ec591e5SChristophe Leroy	select ARCH_HAS_STRICT_KERNEL_RWX	if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
139a7d2475aSMichael Ellerman	select ARCH_HAS_TICK_BROADCAST		if GENERIC_CLOCKEVENTS_BROADCAST
1406c44741dSOliver O'Halloran	select ARCH_HAS_UACCESS_FLUSHCACHE	if PPC64
141a7d2475aSMichael Ellerman	select ARCH_HAS_UBSAN_SANITIZE_ALL
142c0742441SOliver O'Halloran	select ARCH_HAS_ZONE_DEVICE		if PPC_BOOK3S_64
143a7d2475aSMichael Ellerman	select ARCH_HAVE_NMI_SAFE_CMPXCHG
144b7e7c37bSMark Salter	select ARCH_MIGHT_HAVE_PC_PARPORT
145c74e6d3dSMark Salter	select ARCH_MIGHT_HAVE_PC_SERIO
1464ec591e5SChristophe Leroy	select ARCH_OPTIONAL_KERNEL_RWX		if ARCH_HAS_STRICT_KERNEL_RWX
147a7d2475aSMichael Ellerman	select ARCH_SUPPORTS_ATOMIC_RMW
148a7d2475aSMichael Ellerman	select ARCH_USE_BUILTIN_BSWAP
149a7d2475aSMichael Ellerman	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
150a7d2475aSMichael Ellerman	select ARCH_WANT_IPC_PARSE_VERSION
15177e58496SPaul E. McKenney	select ARCH_WEAK_RELEASE_ACQUIRE
152d812c0e1SStephen Rothwell	select BINFMT_ELF
153a7d2475aSMichael Ellerman	select BUILDTIME_EXTABLE_SORT
154a7d2475aSMichael Ellerman	select CLONE_BACKWARDS
155a7d2475aSMichael Ellerman	select DCACHE_WORD_ACCESS		if PPC64 && CPU_LITTLE_ENDIAN
1560c0c5230SMichael Ellerman	select DYNAMIC_FTRACE			if FUNCTION_TRACER
157a7d2475aSMichael Ellerman	select EDAC_ATOMIC_SCRUB
158a7d2475aSMichael Ellerman	select EDAC_SUPPORT
159a7d2475aSMichael Ellerman	select GENERIC_ATOMIC64			if PPC32
160a7d2475aSMichael Ellerman	select GENERIC_CLOCKEVENTS
161a7d2475aSMichael Ellerman	select GENERIC_CLOCKEVENTS_BROADCAST	if SMP
162a7d2475aSMichael Ellerman	select GENERIC_CMOS_UPDATE
163a7d2475aSMichael Ellerman	select GENERIC_CPU_AUTOPROBE
164179ab1cbSMichael Ellerman	select GENERIC_CPU_VULNERABILITIES	if PPC_BARRIER_NOSPEC
165a7d2475aSMichael Ellerman	select GENERIC_IRQ_SHOW
166a7d2475aSMichael Ellerman	select GENERIC_IRQ_SHOW_LEVEL
167eb01d42aSChristoph Hellwig	select GENERIC_PCI_IOMAP		if PCI
168a7d2475aSMichael Ellerman	select GENERIC_SMP_IDLE_THREAD
169a7d2475aSMichael Ellerman	select GENERIC_STRNCPY_FROM_USER
170a7d2475aSMichael Ellerman	select GENERIC_STRNLEN_USER
171d4cfb113SPaul Mackerras	select GENERIC_TIME_VSYSCALL
172a7d2475aSMichael Ellerman	select HAVE_ARCH_AUDITSYSCALL
173a7d2475aSMichael Ellerman	select HAVE_ARCH_JUMP_LABEL
174a7d2475aSMichael Ellerman	select HAVE_ARCH_KGDB
1759fea59bdSMichael Ellerman	select HAVE_ARCH_MMAP_RND_BITS
1769fea59bdSMichael Ellerman	select HAVE_ARCH_MMAP_RND_COMPAT_BITS	if COMPAT
177a7d2475aSMichael Ellerman	select HAVE_ARCH_SECCOMP_FILTER
178a7d2475aSMichael Ellerman	select HAVE_ARCH_TRACEHOOK
179a7d2475aSMichael Ellerman	select HAVE_CBPF_JIT			if !PPC64
180bf6cbd0cSMichael Ellerman	select HAVE_STACKPROTECTOR		if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
181bf6cbd0cSMichael Ellerman	select HAVE_STACKPROTECTOR		if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
182a7d2475aSMichael Ellerman	select HAVE_CONTEXT_TRACKING		if PPC64
183a7d2475aSMichael Ellerman	select HAVE_DEBUG_KMEMLEAK
184a7d2475aSMichael Ellerman	select HAVE_DEBUG_STACKOVERFLOW
185a7d2475aSMichael Ellerman	select HAVE_DYNAMIC_FTRACE
186a7d2475aSMichael Ellerman	select HAVE_DYNAMIC_FTRACE_WITH_REGS	if MPROFILE_KERNEL
187a7d2475aSMichael Ellerman	select HAVE_EBPF_JIT			if PPC64
188a7d2475aSMichael Ellerman	select HAVE_EFFICIENT_UNALIGNED_ACCESS	if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
189a7d2475aSMichael Ellerman	select HAVE_FTRACE_MCOUNT_RECORD
1907cd01b08SNaveen N. Rao	select HAVE_FUNCTION_ERROR_INJECTION
191a7d2475aSMichael Ellerman	select HAVE_FUNCTION_GRAPH_TRACER
192a7d2475aSMichael Ellerman	select HAVE_FUNCTION_TRACER
1938034c2fbSMasahiro Yamada	select HAVE_GCC_PLUGINS			if GCC_VERSION >= 50200   # plugin support on gcc <= 5.1 is buggy on PPC
194e585513bSKirill A. Shutemov	select HAVE_GENERIC_GUP
195a7d2475aSMichael Ellerman	select HAVE_HW_BREAKPOINT		if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx)
196a7d2475aSMichael Ellerman	select HAVE_IDE
197a7d2475aSMichael Ellerman	select HAVE_IOREMAP_PROT
198a7d2475aSMichael Ellerman	select HAVE_IRQ_EXIT_ON_IRQ_STACK
199a7d2475aSMichael Ellerman	select HAVE_KERNEL_GZIP
20026064848SAaro Koskinen	select HAVE_KERNEL_XZ			if PPC_BOOK3S
201a7d2475aSMichael Ellerman	select HAVE_KPROBES
202ead514d5SNaveen N. Rao	select HAVE_KPROBES_ON_FTRACE
203a7d2475aSMichael Ellerman	select HAVE_KRETPROBES
2044c1d9bb0SNicholas Piggin	select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
205a7d2475aSMichael Ellerman	select HAVE_LIVEPATCH			if HAVE_DYNAMIC_FTRACE_WITH_REGS
206a7d2475aSMichael Ellerman	select HAVE_MEMBLOCK_NODE_MAP
207a7d2475aSMichael Ellerman	select HAVE_MOD_ARCH_SPECIFIC
2082104180aSNicholas Piggin	select HAVE_NMI				if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
2092104180aSNicholas Piggin	select HAVE_HARDLOCKUP_DETECTOR_ARCH	if (PPC64 && PPC_BOOK3S)
210a7d2475aSMichael Ellerman	select HAVE_OPROFILE
211a7d2475aSMichael Ellerman	select HAVE_OPTPROBES			if PPC64
212a7d2475aSMichael Ellerman	select HAVE_PERF_EVENTS
213a7d2475aSMichael Ellerman	select HAVE_PERF_EVENTS_NMI		if PPC64
21492e5aae4SNicholas Piggin	select HAVE_HARDLOCKUP_DETECTOR_PERF	if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
215a7d2475aSMichael Ellerman	select HAVE_PERF_REGS
216a7d2475aSMichael Ellerman	select HAVE_PERF_USER_STACK_DUMP
217a7d2475aSMichael Ellerman	select HAVE_RCU_TABLE_FREE		if SMP
218a7d2475aSMichael Ellerman	select HAVE_REGS_AND_STACK_ACCESS_API
219df78d3f6STorsten Duwe	select HAVE_RELIABLE_STACKTRACE		if PPC64 && CPU_LITTLE_ENDIAN
220a7d2475aSMichael Ellerman	select HAVE_SYSCALL_TRACEPOINTS
221a7d2475aSMichael Ellerman	select HAVE_VIRT_CPU_ACCOUNTING
222518470feSAnton Blanchard	select HAVE_IRQ_TIME_ACCOUNTING
2238a417c48SBoqun Feng	select HAVE_RSEQ
224a4ce5a48SChristoph Hellwig	select IOMMU_HELPER			if PPC64
225a7d2475aSMichael Ellerman	select IRQ_DOMAIN
226a7d2475aSMichael Ellerman	select IRQ_FORCED_THREADING
227a7d2475aSMichael Ellerman	select MODULES_USE_ELF_RELA
22806832fc0SChristoph Hellwig	select NEED_DMA_MAP_STATE		if PPC64 || NOT_COHERENT_CACHE
22986596f0aSChristoph Hellwig	select NEED_SG_DMA_LENGTH
23010f85f43SStephen Rothwell	select OF
231e6ce1324SStephen Neuendorffer	select OF_EARLY_FLATTREE
232708b7eefSMarek Szyprowski	select OF_RESERVED_MEM
233a7d2475aSMichael Ellerman	select OLD_SIGACTION			if PPC32
234a7d2475aSMichael Ellerman	select OLD_SIGSUSPEND
2352eac9c2dSChristoph Hellwig	select PCI_DOMAINS			if PCI
23620f1b79dSChristoph Hellwig	select PCI_SYSCALL			if PCI
2376e8cef38SArnd Bergmann	select RTC_LIB
238a7d2475aSMichael Ellerman	select SPARSE_IRQ
2397ac57a89SCatalin Marinas	select SYSCTL_EXCEPTION_TRACE
2404febd95aSStephen Rothwell	select VIRT_TO_BUS			if !PPC64
241a7d2475aSMichael Ellerman	#
242a7d2475aSMichael Ellerman	# Please keep this list sorted alphabetically.
243a7d2475aSMichael Ellerman	#
24414cf11afSPaul Mackerras
245179ab1cbSMichael Ellermanconfig PPC_BARRIER_NOSPEC
246179ab1cbSMichael Ellerman    bool
247179ab1cbSMichael Ellerman    default y
248ebcd1bfcSDiana Craciun    depends on PPC_BOOK3S_64 || PPC_FSL_BOOK3E
249179ab1cbSMichael Ellerman
2507a332b0cSAnton Blanchardconfig GENERIC_CSUM
251d4fde568SPaul Mackerras	def_bool n
2527a332b0cSAnton Blanchard
25314cf11afSPaul Mackerrasconfig EARLY_PRINTK
25414cf11afSPaul Mackerras	bool
25551d3082fSBenjamin Herrenschmidt	default y
25614cf11afSPaul Mackerras
257b71d47c1SJason Baronconfig PANIC_TIMEOUT
258b71d47c1SJason Baron	int
259b71d47c1SJason Baron	default 180
260b71d47c1SJason Baron
26114cf11afSPaul Mackerrasconfig COMPAT
26214cf11afSPaul Mackerras	bool
26314cf11afSPaul Mackerras	default y if PPC64
26401e31dbaSRoland McGrath	select COMPAT_BINFMT_ELF
26548b25c43SChris Metcalf	select ARCH_WANT_OLD_COMPAT_IPC
26609a4d5d0SAl Viro	select COMPAT_OLD_SIGACTION
26714cf11afSPaul Mackerras
26814cf11afSPaul Mackerrasconfig SYSVIPC_COMPAT
26914cf11afSPaul Mackerras	bool
27014cf11afSPaul Mackerras	depends on COMPAT && SYSVIPC
27114cf11afSPaul Mackerras	default y
27214cf11afSPaul Mackerras
27314cf11afSPaul Mackerras# All PPC32s use generic nvram driver through ppc_md
27414cf11afSPaul Mackerrasconfig GENERIC_NVRAM
27514cf11afSPaul Mackerras	bool
27614cf11afSPaul Mackerras	default y if PPC32
27714cf11afSPaul Mackerras
278ae1e9130SIngo Molnarconfig SCHED_OMIT_FRAME_POINTER
27914cf11afSPaul Mackerras	bool
28014cf11afSPaul Mackerras	default y
28114cf11afSPaul Mackerras
28214cf11afSPaul Mackerrasconfig ARCH_MAY_HAVE_PC_FDC
28314cf11afSPaul Mackerras	bool
2843484a31fSPranith Kumar	default PCI
28514cf11afSPaul Mackerras
28608264cbcSKumar Galaconfig PPC_UDBG_16550
28708264cbcSKumar Gala	bool
28808264cbcSKumar Gala
28908264cbcSKumar Galaconfig GENERIC_TBSYNC
29008264cbcSKumar Gala	bool
29108264cbcSKumar Gala	default y if PPC32 && SMP
29208264cbcSKumar Gala
293e65e1fc2SAl Viroconfig AUDIT_ARCH
294e65e1fc2SAl Viro	bool
295e65e1fc2SAl Viro	default y
296e65e1fc2SAl Viro
29773c9ceabSJeremy Fitzhardingeconfig GENERIC_BUG
29873c9ceabSJeremy Fitzhardinge	bool
29973c9ceabSJeremy Fitzhardinge	default y
30073c9ceabSJeremy Fitzhardinge	depends on BUG
30173c9ceabSJeremy Fitzhardinge
302b3028878SJohannes Bergconfig SYS_SUPPORTS_APM_EMULATION
30358da10bbSKumar Gala	default y if PMAC_APM_EMU
304b3028878SJohannes Berg	bool
305b3028878SJohannes Berg
3066c5b59b9SDavid Gibsonconfig EPAPR_BOOT
3076c5b59b9SDavid Gibson	bool
3086c5b59b9SDavid Gibson	help
3096c5b59b9SDavid Gibson	  Used to allow a board to specify it wants an ePAPR compliant wrapper.
3106c5b59b9SDavid Gibson
311f4fc4a5bSKumar Galaconfig DEFAULT_UIMAGE
312f4fc4a5bSKumar Gala	bool
313f4fc4a5bSKumar Gala	help
314f4fc4a5bSKumar Gala	  Used to allow a board to specify it wants a uImage built by default
315f4fc4a5bSKumar Gala
316801e4062SJohannes Bergconfig ARCH_HIBERNATION_POSSIBLE
317801e4062SJohannes Berg	bool
318543b9fd3SJohannes Berg	default y
319543b9fd3SJohannes Berg
320f4cb5700SJohannes Bergconfig ARCH_SUSPEND_POSSIBLE
321f4cb5700SJohannes Berg	def_bool y
3224ffd6952SAnton Vorontsov	depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
323d0832a75SZhao Chenhui		   (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \
324d0832a75SZhao Chenhui		   || 44x || 40x
325f4cb5700SJohannes Berg
3264c75a6f4SBenjamin Herrenschmidtconfig PPC_DCR_NATIVE
3274c75a6f4SBenjamin Herrenschmidt	bool
3284c75a6f4SBenjamin Herrenschmidt
3294c75a6f4SBenjamin Herrenschmidtconfig PPC_DCR_MMIO
3304c75a6f4SBenjamin Herrenschmidt	bool
3314c75a6f4SBenjamin Herrenschmidt
3324c75a6f4SBenjamin Herrenschmidtconfig PPC_DCR
3334c75a6f4SBenjamin Herrenschmidt	bool
3344c75a6f4SBenjamin Herrenschmidt	depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
3354c75a6f4SBenjamin Herrenschmidt	default y
3364c75a6f4SBenjamin Herrenschmidt
3374c9d2800SBenjamin Herrenschmidtconfig PPC_OF_PLATFORM_PCI
3384c9d2800SBenjamin Herrenschmidt	bool
339373a6da1SStephen Rothwell	depends on PCI
3404c9d2800SBenjamin Herrenschmidt	depends on PPC64 # not supported on 32 bits yet
3414c9d2800SBenjamin Herrenschmidt
3426a11f75bSAkinobu Mitaconfig ARCH_SUPPORTS_DEBUG_PAGEALLOC
3434e003747SMichael Ellerman	depends on PPC32 || PPC_BOOK3S_64
3446a11f75bSAkinobu Mita	def_bool y
3456a11f75bSAkinobu Mita
3468b7b80b9SAnanth N Mavinakayanahalliconfig ARCH_SUPPORTS_UPROBES
3478b7b80b9SAnanth N Mavinakayanahalli	def_bool y
3488b7b80b9SAnanth N Mavinakayanahalli
349172ae2e7SDave Kleikampconfig PPC_ADV_DEBUG_REGS
350172ae2e7SDave Kleikamp	bool
351172ae2e7SDave Kleikamp	depends on 40x || BOOKE
352172ae2e7SDave Kleikamp	default y
353172ae2e7SDave Kleikamp
354172ae2e7SDave Kleikampconfig PPC_ADV_DEBUG_IACS
355172ae2e7SDave Kleikamp	int
356172ae2e7SDave Kleikamp	depends on PPC_ADV_DEBUG_REGS
357172ae2e7SDave Kleikamp	default 4 if 44x
358172ae2e7SDave Kleikamp	default 2
359172ae2e7SDave Kleikamp
360172ae2e7SDave Kleikampconfig PPC_ADV_DEBUG_DACS
361172ae2e7SDave Kleikamp	int
362172ae2e7SDave Kleikamp	depends on PPC_ADV_DEBUG_REGS
363172ae2e7SDave Kleikamp	default 2
364172ae2e7SDave Kleikamp
365172ae2e7SDave Kleikampconfig PPC_ADV_DEBUG_DVCS
366172ae2e7SDave Kleikamp	int
367172ae2e7SDave Kleikamp	depends on PPC_ADV_DEBUG_REGS
368172ae2e7SDave Kleikamp	default 2 if 44x
369172ae2e7SDave Kleikamp	default 0
370172ae2e7SDave Kleikamp
371172ae2e7SDave Kleikampconfig PPC_ADV_DEBUG_DAC_RANGE
372172ae2e7SDave Kleikamp	bool
373172ae2e7SDave Kleikamp	depends on PPC_ADV_DEBUG_REGS && 44x
374172ae2e7SDave Kleikamp	default y
375172ae2e7SDave Kleikamp
37625078dc1SChristoph Hellwigconfig ZONE_DMA
3771c98025cSScott Wood	bool
37825078dc1SChristoph Hellwig	default y if PPC_BOOK3E_64
3791c98025cSScott Wood
38006ef42a1SKirill A. Shutemovconfig PGTABLE_LEVELS
38106ef42a1SKirill A. Shutemov	int
38206ef42a1SKirill A. Shutemov	default 2 if !PPC64
383368ced78SAneesh Kumar K.V	default 3 if PPC_64K_PAGES && !PPC_BOOK3S_64
38406ef42a1SKirill A. Shutemov	default 4
38506ef42a1SKirill A. Shutemov
386a2d2e1ecSBenjamin Herrenschmidtsource "arch/powerpc/sysdev/Kconfig"
3874330f5daSKumar Galasource "arch/powerpc/platforms/Kconfig"
38814cf11afSPaul Mackerras
38914cf11afSPaul Mackerrasmenu "Kernel options"
39014cf11afSPaul Mackerras
39114cf11afSPaul Mackerrasconfig HIGHMEM
39214cf11afSPaul Mackerras	bool "High memory support"
39314cf11afSPaul Mackerras	depends on PPC32
39414cf11afSPaul Mackerras
3958636a1f9SMasahiro Yamadasource "kernel/Kconfig.hz"
39614cf11afSPaul Mackerras
397ba72cb8cSMel Gormanconfig HUGETLB_PAGE_SIZE_VARIABLE
398ba72cb8cSMel Gorman	bool
399ba72cb8cSMel Gorman	depends on HUGETLB_PAGE
400ba72cb8cSMel Gorman	default y
401ba72cb8cSMel Gorman
40214cf11afSPaul Mackerrasconfig MATH_EMULATION
40314cf11afSPaul Mackerras	bool "Math emulation"
404968159c0SChristophe Leroy	depends on 4xx || PPC_8xx || PPC_MPC832x || BOOKE
40514cf11afSPaul Mackerras	---help---
40614cf11afSPaul Mackerras	  Some PowerPC chips designed for embedded applications do not have
40714cf11afSPaul Mackerras	  a floating-point unit and therefore do not implement the
40814cf11afSPaul Mackerras	  floating-point instructions in the PowerPC instruction set.  If you
40914cf11afSPaul Mackerras	  say Y here, the kernel will include code to emulate a floating-point
41014cf11afSPaul Mackerras	  unit, which will allow programs that use floating-point
41114cf11afSPaul Mackerras	  instructions to run.
41214cf11afSPaul Mackerras
4134e63f8edSBenjamin Herrenschmidt	  This is also useful to emulate missing (optional) instructions
4144e63f8edSBenjamin Herrenschmidt	  such as fsqrt on cores that do have an FPU but do not implement
4154e63f8edSBenjamin Herrenschmidt	  them (such as Freescale BookE).
4164e63f8edSBenjamin Herrenschmidt
417e05c0e81SKevin Haochoice
418e05c0e81SKevin Hao	prompt "Math emulation options"
419e05c0e81SKevin Hao	default MATH_EMULATION_FULL
420e05c0e81SKevin Hao	depends on MATH_EMULATION
421e05c0e81SKevin Hao
422e05c0e81SKevin Haoconfig	MATH_EMULATION_FULL
423e05c0e81SKevin Hao	bool "Emulate all the floating point instructions"
424e05c0e81SKevin Hao	---help---
425e05c0e81SKevin Hao	  Select this option will enable the kernel to support to emulate
426e05c0e81SKevin Hao	  all the floating point instructions. If your SoC doesn't have
427e05c0e81SKevin Hao	  a FPU, you should select this.
428e05c0e81SKevin Hao
429e05c0e81SKevin Haoconfig MATH_EMULATION_HW_UNIMPLEMENTED
430e05c0e81SKevin Hao	bool "Just emulate the FPU unimplemented instructions"
431e05c0e81SKevin Hao	---help---
432e05c0e81SKevin Hao	  Select this if you know there does have a hardware FPU on your
433e05c0e81SKevin Hao	  SoC, but some floating point instructions are not implemented by that.
434e05c0e81SKevin Hao
435e05c0e81SKevin Haoendchoice
436e05c0e81SKevin Hao
4373d72bbc4SMichael Neulingconfig PPC_TRANSACTIONAL_MEM
4383d72bbc4SMichael Neuling       bool "Transactional Memory support for POWERPC"
4393d72bbc4SMichael Neuling       depends on PPC_BOOK3S_64
4403d72bbc4SMichael Neuling       depends on SMP
4417b37a123SMichael Neuling       select ALTIVEC
4427b37a123SMichael Neuling       select VSX
4433d72bbc4SMichael Neuling       ---help---
4443d72bbc4SMichael Neuling         Support user-mode Transactional Memory on POWERPC.
4453d72bbc4SMichael Neuling
446951eedebSNicholas Pigginconfig LD_HEAD_STUB_CATCH
447951eedebSNicholas Piggin	bool "Reserve 256 bytes to cope with linker stubs in HEAD text" if EXPERT
448951eedebSNicholas Piggin	depends on PPC64
449951eedebSNicholas Piggin	help
450951eedebSNicholas Piggin	  Very large kernels can cause linker branch stubs to be generated by
451951eedebSNicholas Piggin	  code in head_64.S, which moves the head text sections out of their
452951eedebSNicholas Piggin	  specified location. This option can work around the problem.
453951eedebSNicholas Piggin
454951eedebSNicholas Piggin	  If unsure, say "N".
455951eedebSNicholas Piggin
4568c50b72aSTorsten Duweconfig MPROFILE_KERNEL
4578c50b72aSTorsten Duwe	depends on PPC64 && CPU_LITTLE_ENDIAN
458abba7597SNicholas Piggin	def_bool $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) -I$(srctree)/include -D__KERNEL__)
4598c50b72aSTorsten Duwe
46014cf11afSPaul Mackerrasconfig HOTPLUG_CPU
46114cf11afSPaul Mackerras	bool "Support for enabling/disabling CPUs"
46240b31360SStephen Rothwell	depends on SMP && (PPC_PSERIES || \
4632f4f1f81Schenhui zhao	PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE)
46414cf11afSPaul Mackerras	---help---
46514cf11afSPaul Mackerras	  Say Y here to be able to disable and re-enable individual
46614cf11afSPaul Mackerras	  CPUs at runtime on SMP machines.
46714cf11afSPaul Mackerras
46814cf11afSPaul Mackerras	  Say N if you are unsure.
46914cf11afSPaul Mackerras
47012633e80SNathan Fontenotconfig ARCH_CPU_PROBE_RELEASE
47112633e80SNathan Fontenot	def_bool y
47212633e80SNathan Fontenot	depends on HOTPLUG_CPU
47312633e80SNathan Fontenot
474cc57637bSYasunori Gotoconfig ARCH_ENABLE_MEMORY_HOTPLUG
475cc57637bSYasunori Goto	def_bool y
476cc57637bSYasunori Goto
477a99824f3SBadari Pulavartyconfig ARCH_HAS_WALK_MEMORY
478a99824f3SBadari Pulavarty	def_bool y
479a99824f3SBadari Pulavarty
4801482471dSBadari Pulavartyconfig ARCH_ENABLE_MEMORY_HOTREMOVE
4811482471dSBadari Pulavarty	def_bool y
4821482471dSBadari Pulavarty
483f2296a3dSMahesh Salgaonkarconfig PPC64_SUPPORTS_MEMORY_FAILURE
484f2296a3dSMahesh Salgaonkar	bool "Add support for memory hwpoison"
485f2296a3dSMahesh Salgaonkar	depends on PPC_BOOK3S_64
486f2296a3dSMahesh Salgaonkar	default "y" if PPC_POWERNV
487f2296a3dSMahesh Salgaonkar	select ARCH_SUPPORTS_MEMORY_FAILURE
488f2296a3dSMahesh Salgaonkar
48914cf11afSPaul Mackerrasconfig KEXEC
490642e56ffSKees Cook	bool "kexec system call"
49196eea642STiejun Chen	depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E
4922965faa5SDave Young	select KEXEC_CORE
49314cf11afSPaul Mackerras	help
49414cf11afSPaul Mackerras	  kexec is a system call that implements the ability to shutdown your
49514cf11afSPaul Mackerras	  current kernel, and to start another kernel.  It is like a reboot
4961f1332f7SMatt LaPlante	  but it is independent of the system firmware.   And like a reboot
49714cf11afSPaul Mackerras	  you can start any kernel with it, not just Linux.
49814cf11afSPaul Mackerras
4991f1332f7SMatt LaPlante	  The name comes from the similarity to the exec system call.
50014cf11afSPaul Mackerras
50114cf11afSPaul Mackerras	  It is an ongoing process to be certain the hardware in a machine
50214cf11afSPaul Mackerras	  is properly shutdown, so do not be surprised if this code does not
503bf220695SGeert Uytterhoeven	  initially work for you.  As of this writing the exact hardware
504bf220695SGeert Uytterhoeven	  interface is strongly in flux, so no good recommendation can be
505bf220695SGeert Uytterhoeven	  made.
50614cf11afSPaul Mackerras
50780f60e50SThiago Jung Bauermannconfig KEXEC_FILE
50880f60e50SThiago Jung Bauermann	bool "kexec file based system call"
50980f60e50SThiago Jung Bauermann	select KEXEC_CORE
510467d2782SThiago Jung Bauermann	select HAVE_IMA_KEXEC
51180f60e50SThiago Jung Bauermann	select BUILD_BIN2C
51280f60e50SThiago Jung Bauermann	depends on PPC64
51380f60e50SThiago Jung Bauermann	depends on CRYPTO=y
51480f60e50SThiago Jung Bauermann	depends on CRYPTO_SHA256=y
51580f60e50SThiago Jung Bauermann	help
51680f60e50SThiago Jung Bauermann	  This is a new version of the kexec system call. This call is
51780f60e50SThiago Jung Bauermann	  file based and takes in file descriptors as system call arguments
51880f60e50SThiago Jung Bauermann	  for kernel and initramfs as opposed to a list of segments as is the
51980f60e50SThiago Jung Bauermann	  case for the older kexec call.
52080f60e50SThiago Jung Bauermann
521b799a09fSAKASHI Takahiroconfig ARCH_HAS_KEXEC_PURGATORY
522b799a09fSAKASHI Takahiro	def_bool KEXEC_FILE
523b799a09fSAKASHI Takahiro
5244c91bd6eSKevin Haoconfig RELOCATABLE
5254c91bd6eSKevin Hao	bool "Build a relocatable kernel"
526084a275eSNicholas Piggin	depends on PPC64 || (FLATMEM && (44x || FSL_BOOKE))
5274c91bd6eSKevin Hao	select NONSTATIC_KERNEL
52871810db2SArd Biesheuvel	select MODULE_REL_CRCS if MODVERSIONS
5294c91bd6eSKevin Hao	help
5304c91bd6eSKevin Hao	  This builds a kernel image that is capable of running at the
5314c91bd6eSKevin Hao	  location the kernel is loaded at. For ppc32, there is no any
5324c91bd6eSKevin Hao	  alignment restrictions, and this feature is a superset of
5334c91bd6eSKevin Hao	  DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use
5344c91bd6eSKevin Hao	  16k-aligned base address. The kernel is linked as a
5354c91bd6eSKevin Hao	  position-independent executable (PIE) and contains dynamic relocations
5364c91bd6eSKevin Hao	  which are processed early in the bootup process.
5374c91bd6eSKevin Hao
5384c91bd6eSKevin Hao	  One use is for the kexec on panic case where the recovery kernel
5394c91bd6eSKevin Hao	  must live at a different physical address than the primary
5404c91bd6eSKevin Hao	  kernel.
5414c91bd6eSKevin Hao
5424c91bd6eSKevin Hao	  Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
5434c91bd6eSKevin Hao	  it has been loaded at and the compile time physical addresses
5444c91bd6eSKevin Hao	  CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
5454c91bd6eSKevin Hao	  setting can still be useful to bootwrappers that need to know the
5464c91bd6eSKevin Hao	  load address of the kernel (eg. u-boot/mkimage).
5474c91bd6eSKevin Hao
54870839d20SNicholas Pigginconfig RELOCATABLE_TEST
54970839d20SNicholas Piggin	bool "Test relocatable kernel"
55070839d20SNicholas Piggin	depends on (PPC64 && RELOCATABLE)
55170839d20SNicholas Piggin	help
55270839d20SNicholas Piggin	  This runs the relocatable kernel at the address it was initially
55370839d20SNicholas Piggin	  loaded at, which tends to be non-zero and therefore test the
55470839d20SNicholas Piggin	  relocation code.
55570839d20SNicholas Piggin
556e8625d46SHaren Myneniconfig CRASH_DUMP
55722bd0177SHari Bathini	bool "Build a dump capture kernel"
558be34fff0SChristophe Leroy	depends on PPC64 || PPC_BOOK3S_32 || FSL_BOOKE || (44x && !SMP)
559084a275eSNicholas Piggin	select RELOCATABLE if PPC64 || 44x || FSL_BOOKE
560e8625d46SHaren Myneni	help
56122bd0177SHari Bathini	  Build a kernel suitable for use as a dump capture kernel.
56254622f10SMohan Kumar M	  The same kernel binary can be used as production kernel and dump
56354622f10SMohan Kumar M	  capture kernel.
564e8625d46SHaren Myneni
565eb39c880SMahesh Salgaonkarconfig FA_DUMP
566eb39c880SMahesh Salgaonkar	bool "Firmware-assisted dump"
56722bd0177SHari Bathini	depends on PPC64 && PPC_RTAS
56822bd0177SHari Bathini	select CRASH_CORE
56922bd0177SHari Bathini	select CRASH_DUMP
570242f271cSManish Ahuja	help
571eb39c880SMahesh Salgaonkar	  A robust mechanism to get reliable kernel crash dump with
572eb39c880SMahesh Salgaonkar	  assistance from firmware. This approach does not use kexec,
57322bd0177SHari Bathini	  instead firmware assists in booting the capture kernel
574eb39c880SMahesh Salgaonkar	  while preserving memory contents. Firmware-assisted dump
575eb39c880SMahesh Salgaonkar	  is meant to be a kdump replacement offering robustness and
576eb39c880SMahesh Salgaonkar	  speed not possible without system firmware assistance.
577242f271cSManish Ahuja
578242f271cSManish Ahuja	  If unsure, say "N"
579242f271cSManish Ahuja
58014cf11afSPaul Mackerrasconfig IRQ_ALL_CPUS
58114cf11afSPaul Mackerras	bool "Distribute interrupts on all CPUs by default"
5826cf09b9dSPaul Bolle	depends on SMP
58314cf11afSPaul Mackerras	help
58414cf11afSPaul Mackerras	  This option gives the kernel permission to distribute IRQs across
58514cf11afSPaul Mackerras	  multiple CPUs.  Saying N here will route all IRQs to the first
58614cf11afSPaul Mackerras	  CPU.  Generally saying Y is safe, although some problems have been
58714cf11afSPaul Mackerras	  reported with SMP Power Macintoshes with this option enabled.
58814cf11afSPaul Mackerras
589ffa27b6bSAndy Whitcroftconfig NUMA
590ffa27b6bSAndy Whitcroft	bool "NUMA support"
591ffa27b6bSAndy Whitcroft	depends on PPC64
592ffa27b6bSAndy Whitcroft	default y if SMP && PPC_PSERIES
593ffa27b6bSAndy Whitcroft
594c80d79d7SYasunori Gotoconfig NODES_SHIFT
595c80d79d7SYasunori Goto	int
596ea55bf29SAnton Blanchard	default "8" if PPC64
597c80d79d7SYasunori Goto	default "4"
598c80d79d7SYasunori Goto	depends on NEED_MULTIPLE_NODES
599c80d79d7SYasunori Goto
6008c272261SNishanth Aravamudanconfig USE_PERCPU_NUMA_NODE_ID
6018c272261SNishanth Aravamudan	def_bool y
6028c272261SNishanth Aravamudan	depends on NUMA
6038c272261SNishanth Aravamudan
60464bb80d8SNishanth Aravamudanconfig HAVE_MEMORYLESS_NODES
60564bb80d8SNishanth Aravamudan	def_bool y
60664bb80d8SNishanth Aravamudan	depends on NUMA
60764bb80d8SNishanth Aravamudan
60814cf11afSPaul Mackerrasconfig ARCH_SELECT_MEMORY_MODEL
60914cf11afSPaul Mackerras	def_bool y
61014cf11afSPaul Mackerras	depends on PPC64
61114cf11afSPaul Mackerras
61214cf11afSPaul Mackerrasconfig ARCH_FLATMEM_ENABLE
61314cf11afSPaul Mackerras	def_bool y
6149100b205SAndy Whitcroft	depends on (PPC64 && !NUMA) || PPC32
61514cf11afSPaul Mackerras
61614cf11afSPaul Mackerrasconfig ARCH_SPARSEMEM_ENABLE
61714cf11afSPaul Mackerras	def_bool y
6189100b205SAndy Whitcroft	depends on PPC64
619d29eff7bSAndy Whitcroft	select SPARSEMEM_VMEMMAP_ENABLE
62045fb6ceaSAnton Blanchard
62145fb6ceaSAnton Blanchardconfig ARCH_SPARSEMEM_DEFAULT
62245fb6ceaSAnton Blanchard	def_bool y
6237b3912f4SMichael Ellerman	depends on PPC_BOOK3S_64
62414cf11afSPaul Mackerras
6255a1eb5c4SBenjamin Herrenschmidtconfig SYS_SUPPORTS_HUGETLBFS
62641151e77SBecky Bruce	bool
6275a1eb5c4SBenjamin Herrenschmidt
628f6853eb5SMichael Ellermanconfig ILLEGAL_POINTER_VALUE
629f6853eb5SMichael Ellerman	hex
630f6853eb5SMichael Ellerman	# This is roughly half way between the top of user space and the bottom
631f6853eb5SMichael Ellerman	# of kernel space, which seems about as good as we can get.
632f6853eb5SMichael Ellerman	default 0x5deadbeef0000000 if PPC64
633f6853eb5SMichael Ellerman	default 0
634f6853eb5SMichael Ellerman
6357e9191daSMike Kravetzconfig ARCH_MEMORY_PROBE
6367e9191daSMike Kravetz	def_bool y
6377e9191daSMike Kravetz	depends on MEMORY_HOTPLUG
6387e9191daSMike Kravetz
63975167957SAndy Whitcroft# Some NUMA nodes have memory ranges that span
64075167957SAndy Whitcroft# other nodes.  Even though a pfn is valid and
64175167957SAndy Whitcroft# between a node's start and end pfns, it may not
64275167957SAndy Whitcroft# reside on that node.  See memmap_init_zone()
64375167957SAndy Whitcroft# for details.
64475167957SAndy Whitcroftconfig NODES_SPAN_OTHER_NODES
64575167957SAndy Whitcroft	def_bool y
64675167957SAndy Whitcroft	depends on NEED_MULTIPLE_NODES
64775167957SAndy Whitcroft
648e1240122SYuri Tikhonovconfig STDBINUTILS
649e1240122SYuri Tikhonov	bool "Using standard binutils settings"
650e1240122SYuri Tikhonov	depends on 44x
651e1240122SYuri Tikhonov	default y
652e1240122SYuri Tikhonov	help
653e1240122SYuri Tikhonov	  Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
654e1240122SYuri Tikhonov	  Note, that kernel will be able to run only those applications,
655e1240122SYuri Tikhonov	  which had been compiled using binutils later than 2.17.50.0.3 with
656e1240122SYuri Tikhonov	  '-zmax-page-size' set to 256K (the default is 64K). Or, if using
657e1240122SYuri Tikhonov	  the older binutils, you can patch them with a trivial patch, which
658e1240122SYuri Tikhonov	  changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
659e1240122SYuri Tikhonov
660ca9153a3SIlya Yanokchoice
661ca9153a3SIlya Yanok	prompt "Page size"
662ca9153a3SIlya Yanok	default PPC_4K_PAGES
6633c726f8dSBenjamin Herrenschmidt	help
664ca9153a3SIlya Yanok	  Select the kernel logical page size. Increasing the page size
665ca9153a3SIlya Yanok	  will reduce software overhead at each page boundary, allow
666ca9153a3SIlya Yanok	  hardware prefetch mechanisms to be more effective, and allow
667ca9153a3SIlya Yanok	  larger dma transfers increasing IO efficiency and reducing
668ca9153a3SIlya Yanok	  overhead. However the utilization of memory will increase.
669ca9153a3SIlya Yanok	  For example, each cached file will using a multiple of the
670ca9153a3SIlya Yanok	  page size to hold its contents and the difference between the
671ca9153a3SIlya Yanok	  end of file and the end of page is wasted.
672ca9153a3SIlya Yanok
673ca9153a3SIlya Yanok	  Some dedicated systems, such as software raid serving with
674ca9153a3SIlya Yanok	  accelerated calculations, have shown significant increases.
675ca9153a3SIlya Yanok
676ca9153a3SIlya Yanok	  If you configure a 64 bit kernel for 64k pages but the
677ca9153a3SIlya Yanok	  processor does not support them, then the kernel will simulate
678ca9153a3SIlya Yanok	  them with 4k pages, loading them on demand, but with the
679ca9153a3SIlya Yanok	  reduced software overhead and larger internal fragmentation.
680ca9153a3SIlya Yanok	  For the 32 bit kernel, a large page option will not be offered
681ca9153a3SIlya Yanok	  unless it is supported by the configured processor.
682ca9153a3SIlya Yanok
683ca9153a3SIlya Yanok	  If unsure, choose 4K_PAGES.
684ca9153a3SIlya Yanok
685ca9153a3SIlya Yanokconfig PPC_4K_PAGES
686ca9153a3SIlya Yanok	bool "4k page size"
68719f97c98SAneesh Kumar K.V	select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
688ca9153a3SIlya Yanok
689ca9153a3SIlya Yanokconfig PPC_16K_PAGES
69055f8b5b8SMichael Ellerman	bool "16k page size"
69155c8fc3fSChristophe Leroy	depends on 44x || PPC_8xx
692ca9153a3SIlya Yanok
693ca9153a3SIlya Yanokconfig PPC_64K_PAGES
69455f8b5b8SMichael Ellerman	bool "64k page size"
6954e003747SMichael Ellerman	depends on !PPC_FSL_BOOK3E && (44x || PPC_BOOK3S_64 || PPC_BOOK3E_64)
69619f97c98SAneesh Kumar K.V	select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
697ca9153a3SIlya Yanok
698e1240122SYuri Tikhonovconfig PPC_256K_PAGES
69955f8b5b8SMichael Ellerman	bool "256k page size"
70055f8b5b8SMichael Ellerman	depends on 44x && !STDBINUTILS
701e1240122SYuri Tikhonov	help
702e1240122SYuri Tikhonov	  Make the page size 256k.
703e1240122SYuri Tikhonov
704e1240122SYuri Tikhonov	  As the ELF standard only requires alignment to support page
705e1240122SYuri Tikhonov	  sizes up to 64k, you will need to compile all of your user
706e1240122SYuri Tikhonov	  space applications with a non-standard binutils settings
707e1240122SYuri Tikhonov	  (see the STDBINUTILS description for details).
708e1240122SYuri Tikhonov
709e1240122SYuri Tikhonov	  Say N unless you know what you are doing.
710e1240122SYuri Tikhonov
711ca9153a3SIlya Yanokendchoice
7123c726f8dSBenjamin Herrenschmidt
71347613407SHamish Martinconfig THREAD_SHIFT
71447613407SHamish Martin	int "Thread shift" if EXPERT
71547613407SHamish Martin	range 13 15
71647613407SHamish Martin	default "15" if PPC_256K_PAGES
71747613407SHamish Martin	default "14" if PPC64
71847613407SHamish Martin	default "13"
71947613407SHamish Martin	help
72047613407SHamish Martin	  Used to define the stack size. The default is almost always what you
72147613407SHamish Martin	  want. Only change this if you know what you are doing.
72247613407SHamish Martin
72353bcddb9SStephen Rothwellconfig FORCE_MAX_ZONEORDER
72453bcddb9SStephen Rothwell	int "Maximum zone order"
725a7ee5395SRashmica Gupta	range 8 9 if PPC64 && PPC_64K_PAGES
726066c4b87SBenjamin Herrenschmidt	default "9" if PPC64 && PPC_64K_PAGES
727d5a1e42cSAneesh Kumar K.V	range 13 13 if PPC64 && !PPC_64K_PAGES
728066c4b87SBenjamin Herrenschmidt	default "13" if PPC64 && !PPC_64K_PAGES
729066c4b87SBenjamin Herrenschmidt	range 9 64 if PPC32 && PPC_16K_PAGES
730066c4b87SBenjamin Herrenschmidt	default "9" if PPC32 && PPC_16K_PAGES
731066c4b87SBenjamin Herrenschmidt	range 7 64 if PPC32 && PPC_64K_PAGES
732066c4b87SBenjamin Herrenschmidt	default "7" if PPC32 && PPC_64K_PAGES
733066c4b87SBenjamin Herrenschmidt	range 5 64 if PPC32 && PPC_256K_PAGES
734066c4b87SBenjamin Herrenschmidt	default "5" if PPC32 && PPC_256K_PAGES
735ebe40c5cSJohannes Berg	range 11 64
73653bcddb9SStephen Rothwell	default "11"
73753bcddb9SStephen Rothwell	help
73853bcddb9SStephen Rothwell	  The kernel memory allocator divides physically contiguous memory
73953bcddb9SStephen Rothwell	  blocks into "zones", where each zone is a power of two number of
74053bcddb9SStephen Rothwell	  pages.  This option selects the largest power of two that the kernel
74153bcddb9SStephen Rothwell	  keeps in the memory allocator.  If you need to allocate very large
74253bcddb9SStephen Rothwell	  blocks of physically contiguous memory, then you may need to
74353bcddb9SStephen Rothwell	  increase this value.
74453bcddb9SStephen Rothwell
74553bcddb9SStephen Rothwell	  This config option is actually maximum order plus one. For example,
74653bcddb9SStephen Rothwell	  a value of 11 means that the largest free memory block is 2^10 pages.
74753bcddb9SStephen Rothwell
74853bcddb9SStephen Rothwell	  The page size is not necessarily 4KB.  For example, on 64-bit
74953bcddb9SStephen Rothwell	  systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES.  Keep
75053bcddb9SStephen Rothwell	  this in mind when choosing a value for this option.
75153bcddb9SStephen Rothwell
752fa28237cSPaul Mackerrasconfig PPC_SUBPAGE_PROT
753fa28237cSPaul Mackerras	bool "Support setting protections for 4k subpages"
7544e003747SMichael Ellerman	depends on PPC_BOOK3S_64 && PPC_64K_PAGES
755fa28237cSPaul Mackerras	help
756fa28237cSPaul Mackerras	  This option adds support for a system call to allow user programs
757fa28237cSPaul Mackerras	  to set access permissions (read/write, readonly, or no access)
758fa28237cSPaul Mackerras	  on the 4k subpages of each 64k page.
759fa28237cSPaul Mackerras
760e83d0169SIan Munsieconfig PPC_COPRO_BASE
761e83d0169SIan Munsie	bool
762e83d0169SIan Munsie
76314cf11afSPaul Mackerrasconfig SCHED_SMT
76414cf11afSPaul Mackerras	bool "SMT (Hyperthreading) scheduler support"
76514cf11afSPaul Mackerras	depends on PPC64 && SMP
76614cf11afSPaul Mackerras	help
76714cf11afSPaul Mackerras	  SMT scheduler support improves the CPU scheduler's decision making
76814cf11afSPaul Mackerras	  when dealing with POWER5 cpus at a cost of slightly increased
76914cf11afSPaul Mackerras	  overhead in some places. If unsure say N here.
77014cf11afSPaul Mackerras
771b92a66a6SMichael Neulingconfig PPC_DENORMALISATION
772b92a66a6SMichael Neuling	bool "PowerPC denormalisation exception handling"
773b92a66a6SMichael Neuling	depends on PPC_BOOK3S_64
7744e90a2a7SAnton Blanchard	default "y" if PPC_POWERNV
775b92a66a6SMichael Neuling	---help---
776b92a66a6SMichael Neuling	  Add support for handling denormalisation of single precision
777b92a66a6SMichael Neuling	  values.  Useful for bare metal only.  If unsure say Y here.
778b92a66a6SMichael Neuling
77914cf11afSPaul Mackerrasconfig CMDLINE_BOOL
78014cf11afSPaul Mackerras	bool "Default bootloader kernel arguments"
78114cf11afSPaul Mackerras
78214cf11afSPaul Mackerrasconfig CMDLINE
78314cf11afSPaul Mackerras	string "Initial kernel command string"
78414cf11afSPaul Mackerras	depends on CMDLINE_BOOL
78514cf11afSPaul Mackerras	default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
78614cf11afSPaul Mackerras	help
78714cf11afSPaul Mackerras	  On some platforms, there is currently no way for the boot loader to
78814cf11afSPaul Mackerras	  pass arguments to the kernel. For these platforms, you can supply
78914cf11afSPaul Mackerras	  some command-line options at build time by entering them here.  In
79014cf11afSPaul Mackerras	  most cases you will need to specify the root device here.
79114cf11afSPaul Mackerras
792eb3b80f6SSebastian Siewiorconfig CMDLINE_FORCE
793eb3b80f6SSebastian Siewior	bool "Always use the default kernel command string"
794eb3b80f6SSebastian Siewior	depends on CMDLINE_BOOL
795eb3b80f6SSebastian Siewior	help
796eb3b80f6SSebastian Siewior	  Always use the default kernel command string, even if the boot
797eb3b80f6SSebastian Siewior	  loader passes other arguments to the kernel.
798eb3b80f6SSebastian Siewior	  This is useful if you cannot or don't want to change the
799eb3b80f6SSebastian Siewior	  command-line options your boot loader passes to the kernel.
800eb3b80f6SSebastian Siewior
801c356aa45SGrant Likelyconfig EXTRA_TARGETS
802c356aa45SGrant Likely	string "Additional default image types"
803c356aa45SGrant Likely	help
804c356aa45SGrant Likely	  List additional targets to be built by the bootwrapper here (separated
805c356aa45SGrant Likely	  by spaces).  This is useful for targets that depend of device tree
806c356aa45SGrant Likely	  files in the .dts directory.
807c356aa45SGrant Likely
808c356aa45SGrant Likely	  Targets in this list will be build as part of the default build
809c356aa45SGrant Likely	  target, or when the user does a 'make zImage' or a
810c356aa45SGrant Likely	  'make zImage.initrd'.
811c356aa45SGrant Likely
812c356aa45SGrant Likely	  If unsure, leave blank
813c356aa45SGrant Likely
814b28f5081SJohannes Bergconfig ARCH_WANTS_FREEZER_CONTROL
815b28f5081SJohannes Berg	def_bool y
816b28f5081SJohannes Berg	depends on ADB_PMU
817b28f5081SJohannes Berg
8188636a1f9SMasahiro Yamadasource "kernel/power/Kconfig"
81914cf11afSPaul Mackerras
82014cf11afSPaul Mackerrasconfig SECCOMP
82114cf11afSPaul Mackerras	bool "Enable seccomp to safely compute untrusted bytecode"
82214cf11afSPaul Mackerras	depends on PROC_FS
82314cf11afSPaul Mackerras	default y
82414cf11afSPaul Mackerras	help
82514cf11afSPaul Mackerras	  This kernel feature is useful for number crunching applications
82614cf11afSPaul Mackerras	  that may need to compute untrusted bytecode during their
82714cf11afSPaul Mackerras	  execution. By using pipes or other transports made available to
82814cf11afSPaul Mackerras	  the process as file descriptors supporting the read/write
82914cf11afSPaul Mackerras	  syscalls, it's possible to isolate those applications in
83014cf11afSPaul Mackerras	  their own address space using seccomp. Once seccomp is
83114cf11afSPaul Mackerras	  enabled via /proc/<pid>/seccomp, it cannot be disabled
83214cf11afSPaul Mackerras	  and the task is only allowed to execute a few safe syscalls
83314cf11afSPaul Mackerras	  defined by each seccomp mode.
83414cf11afSPaul Mackerras
83514cf11afSPaul Mackerras	  If unsure, say Y. Only embedded should say N here.
83614cf11afSPaul Mackerras
83792e3da3cSRam Paiconfig PPC_MEM_KEYS
83892e3da3cSRam Pai	prompt "PowerPC Memory Protection Keys"
83992e3da3cSRam Pai	def_bool y
84092e3da3cSRam Pai	depends on PPC_BOOK3S_64
84192e3da3cSRam Pai	select ARCH_USES_HIGH_VMA_FLAGS
84292e3da3cSRam Pai	select ARCH_HAS_PKEYS
84392e3da3cSRam Pai	help
84492e3da3cSRam Pai	  Memory Protection Keys provides a mechanism for enforcing
84592e3da3cSRam Pai	  page-based protections, but without requiring modification of the
84692e3da3cSRam Pai	  page tables when an application changes protection domains.
84792e3da3cSRam Pai
848ad56b738SMike Rapoport	  For details, see Documentation/vm/protection-keys.rst
84992e3da3cSRam Pai
85092e3da3cSRam Pai	  If unsure, say y.
85192e3da3cSRam Pai
85214cf11afSPaul Mackerrasendmenu
85314cf11afSPaul Mackerras
85414cf11afSPaul Mackerrasconfig ISA_DMA_API
85514cf11afSPaul Mackerras	bool
8563d066d77SStephen Rothwell	default PCI
85714cf11afSPaul Mackerras
85814cf11afSPaul Mackerrasmenu "Bus options"
85914cf11afSPaul Mackerras
86014cf11afSPaul Mackerrasconfig ISA
86114cf11afSPaul Mackerras	bool "Support for ISA-bus hardware"
862933ee711SPaul Bolle	depends on PPC_CHRP
863f9bd170aSPaul Mackerras	select PPC_I8259
86414cf11afSPaul Mackerras	help
86514cf11afSPaul Mackerras	  Find out whether you have ISA slots on your motherboard.  ISA is the
86614cf11afSPaul Mackerras	  name of a bus system, i.e. the way the CPU talks to the other stuff
86714cf11afSPaul Mackerras	  inside your box.  If you have an Apple machine, say N here; if you
868933ee711SPaul Bolle	  have an IBM RS/6000 or pSeries machine, say Y.  If you have an
869933ee711SPaul Bolle	  embedded board, consult your board documentation.
87014cf11afSPaul Mackerras
87114cf11afSPaul Mackerrasconfig GENERIC_ISA_DMA
87214cf11afSPaul Mackerras	bool
8731927445aSAnton Vorontsov	depends on ISA_DMA_API
87414cf11afSPaul Mackerras	default y
87514cf11afSPaul Mackerras
87625635c71SPaul Mackerrasconfig PPC_INDIRECT_PCI
87725635c71SPaul Mackerras	bool
87825635c71SPaul Mackerras	depends on PCI
87963dafe57SBecky Bruce	default y if 40x || 44x
88025635c71SPaul Mackerras
88114cf11afSPaul Mackerrasconfig SBUS
88214cf11afSPaul Mackerras	bool
88314cf11afSPaul Mackerras
88408264cbcSKumar Galaconfig FSL_SOC
88508264cbcSKumar Gala	bool
88608264cbcSKumar Gala
88755c44991SRoy Zangconfig FSL_PCI
88855c44991SRoy Zang 	bool
889*11ddce15SChristoph Hellwig	select ARCH_HAS_DMA_SET_MASK
89055c44991SRoy Zang	select PPC_INDIRECT_PCI
891d0839118SKumar Gala	select PCI_QUIRKS
89255c44991SRoy Zang
8934ffd6952SAnton Vorontsovconfig FSL_PMC
8944ffd6952SAnton Vorontsov	bool
8954ffd6952SAnton Vorontsov	default y
8964ffd6952SAnton Vorontsov	depends on SUSPEND && (PPC_85xx || PPC_86xx)
8974ffd6952SAnton Vorontsov	help
8984ffd6952SAnton Vorontsov	  Freescale MPC85xx/MPC86xx power management controller support
8994ffd6952SAnton Vorontsov	  (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
9004ffd6952SAnton Vorontsov
901d164f6d4SVictor Gallardoconfig PPC4xx_CPM
902d164f6d4SVictor Gallardo	bool
903d164f6d4SVictor Gallardo	default y
904d164f6d4SVictor Gallardo	depends on SUSPEND && (44x || 40x)
905d164f6d4SVictor Gallardo	help
906d164f6d4SVictor Gallardo	  PPC4xx Clock Power Management (CPM) support (suspend/resume).
907d164f6d4SVictor Gallardo	  It also enables support for two different idle states (idle-wait
908d164f6d4SVictor Gallardo	  and idle-doze).
909d164f6d4SVictor Gallardo
9102a706919SStefan Roeseconfig 4xx_SOC
9112a706919SStefan Roese	bool
9122a706919SStefan Roese
913acaa7aa3SAnton Vorontsovconfig FSL_LBC
9143ab8f2a2SRoy Zang	bool "Freescale Local Bus support"
915acaa7aa3SAnton Vorontsov	help
9163ab8f2a2SRoy Zang	  Enables reporting of errors from the Freescale local bus
9173ab8f2a2SRoy Zang	  controller.  Also contains some common code used by
9183ab8f2a2SRoy Zang	  drivers for specific local bus peripherals.
919acaa7aa3SAnton Vorontsov
92083ff9dcfSAnton Vorontsovconfig FSL_GTM
92183ff9dcfSAnton Vorontsov	bool
92283ff9dcfSAnton Vorontsov	depends on PPC_83xx || QUICC_ENGINE || CPM2
92383ff9dcfSAnton Vorontsov	help
92483ff9dcfSAnton Vorontsov	  Freescale General-purpose Timers support
92583ff9dcfSAnton Vorontsov
92614cf11afSPaul Mackerrasconfig PCI_8260
92714cf11afSPaul Mackerras	bool
92814cf11afSPaul Mackerras	depends on PCI && 8260
92925635c71SPaul Mackerras	select PPC_INDIRECT_PCI
93014cf11afSPaul Mackerras	default y
93114cf11afSPaul Mackerras
932388b78adSAlexandre Bounineconfig FSL_RIO
933388b78adSAlexandre Bounine	bool "Freescale Embedded SRIO Controller support"
9341753d50cSChristoph Hellwig	depends on RAPIDIO = y && HAVE_RAPIDIO
935388b78adSAlexandre Bounine	default "n"
936388b78adSAlexandre Bounine	---help---
937388b78adSAlexandre Bounine	  Include support for RapidIO controller on Freescale embedded
938388b78adSAlexandre Bounine	  processors (MPC8548, MPC8641, etc).
939388b78adSAlexandre Bounine
94014cf11afSPaul Mackerrasendmenu
94114cf11afSPaul Mackerras
9420f890c8dSSuzuki Pouloseconfig NONSTATIC_KERNEL
9430f890c8dSSuzuki Poulose	bool
9440f890c8dSSuzuki Poulose
94514cf11afSPaul Mackerrasmenu "Advanced setup"
94614cf11afSPaul Mackerras	depends on PPC32
94714cf11afSPaul Mackerras
94814cf11afSPaul Mackerrasconfig ADVANCED_OPTIONS
94914cf11afSPaul Mackerras	bool "Prompt for advanced kernel configuration options"
95014cf11afSPaul Mackerras	help
95114cf11afSPaul Mackerras	  This option will enable prompting for a variety of advanced kernel
95214cf11afSPaul Mackerras	  configuration options.  These options can cause the kernel to not
95314cf11afSPaul Mackerras	  work if they are set incorrectly, but can be used to optimize certain
95414cf11afSPaul Mackerras	  aspects of kernel memory management.
95514cf11afSPaul Mackerras
95614cf11afSPaul Mackerras	  Unless you know what you are doing, say N here.
95714cf11afSPaul Mackerras
95814cf11afSPaul Mackerrascomment "Default settings for advanced configuration options are used"
95914cf11afSPaul Mackerras	depends on !ADVANCED_OPTIONS
96014cf11afSPaul Mackerras
96114cf11afSPaul Mackerrasconfig LOWMEM_SIZE_BOOL
96214cf11afSPaul Mackerras	bool "Set maximum low memory"
96314cf11afSPaul Mackerras	depends on ADVANCED_OPTIONS
96414cf11afSPaul Mackerras	help
96514cf11afSPaul Mackerras	  This option allows you to set the maximum amount of memory which
96614cf11afSPaul Mackerras	  will be used as "low memory", that is, memory which the kernel can
96714cf11afSPaul Mackerras	  access directly, without having to set up a kernel virtual mapping.
96814cf11afSPaul Mackerras	  This can be useful in optimizing the layout of kernel virtual
96914cf11afSPaul Mackerras	  memory.
97014cf11afSPaul Mackerras
97114cf11afSPaul Mackerras	  Say N here unless you know what you are doing.
97214cf11afSPaul Mackerras
97314cf11afSPaul Mackerrasconfig LOWMEM_SIZE
97414cf11afSPaul Mackerras	hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
97514cf11afSPaul Mackerras	default "0x30000000"
97614cf11afSPaul Mackerras
97796051465STrent Piephoconfig LOWMEM_CAM_NUM_BOOL
97896051465STrent Piepho	bool "Set number of CAMs to use to map low memory"
97996051465STrent Piepho	depends on ADVANCED_OPTIONS && FSL_BOOKE
98096051465STrent Piepho	help
98196051465STrent Piepho	  This option allows you to set the maximum number of CAM slots that
98296051465STrent Piepho	  will be used to map low memory.  There are a limited number of slots
98396051465STrent Piepho	  available and even more limited number that will fit in the L1 MMU.
98496051465STrent Piepho	  However, using more entries will allow mapping more low memory.  This
98596051465STrent Piepho	  can be useful in optimizing the layout of kernel virtual memory.
98696051465STrent Piepho
98796051465STrent Piepho	  Say N here unless you know what you are doing.
98896051465STrent Piepho
98996051465STrent Piephoconfig LOWMEM_CAM_NUM
9909b71dbd3SJosh Boyer	depends on FSL_BOOKE
99196051465STrent Piepho	int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
99296051465STrent Piepho	default 3
99396051465STrent Piepho
9940f890c8dSSuzuki Pouloseconfig DYNAMIC_MEMSTART
995642e56ffSKees Cook	bool "Enable page aligned dynamic load address for kernel"
996642e56ffSKees Cook	depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
9970f890c8dSSuzuki Poulose	select NONSTATIC_KERNEL
99837dd2badSKumar Gala	help
9990f890c8dSSuzuki Poulose	  This option enables the kernel to be loaded at any page aligned
10000f890c8dSSuzuki Poulose	  physical address. The kernel creates a mapping from KERNELBASE to
10010f890c8dSSuzuki Poulose	  the address where the kernel is loaded. The page size here implies
10020f890c8dSSuzuki Poulose	  the TLB page size of the mapping for kernel on the particular platform.
10030f890c8dSSuzuki Poulose	  Please refer to the init code for finding the TLB page size.
100437dd2badSKumar Gala
10050f890c8dSSuzuki Poulose	  DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
10060f890c8dSSuzuki Poulose	  kernel image, where the only restriction is the page aligned kernel
10070f890c8dSSuzuki Poulose	  load address. When this option is enabled, the compile time physical
10080f890c8dSSuzuki Poulose	  address CONFIG_PHYSICAL_START is ignored.
100937dd2badSKumar Gala
10109c5f7d39SSuzuki Poulose	  This option is overridden by CONFIG_RELOCATABLE
10119c5f7d39SSuzuki Poulose
101237dd2badSKumar Galaconfig PAGE_OFFSET_BOOL
101337dd2badSKumar Gala	bool "Set custom page offset address"
101437dd2badSKumar Gala	depends on ADVANCED_OPTIONS
101537dd2badSKumar Gala	help
101637dd2badSKumar Gala	  This option allows you to set the kernel virtual address at which
101737dd2badSKumar Gala	  the kernel will map low memory.  This can be useful in optimizing
101837dd2badSKumar Gala	  the virtual memory layout of the system.
101937dd2badSKumar Gala
102037dd2badSKumar Gala	  Say N here unless you know what you are doing.
102137dd2badSKumar Gala
102237dd2badSKumar Galaconfig PAGE_OFFSET
102337dd2badSKumar Gala	hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
102437dd2badSKumar Gala	default "0xc0000000"
102537dd2badSKumar Gala
102614cf11afSPaul Mackerrasconfig KERNEL_START_BOOL
102714cf11afSPaul Mackerras	bool "Set custom kernel base address"
102814cf11afSPaul Mackerras	depends on ADVANCED_OPTIONS
102914cf11afSPaul Mackerras	help
103014cf11afSPaul Mackerras	  This option allows you to set the kernel virtual address at which
103137dd2badSKumar Gala	  the kernel will be loaded.  Normally this should match PAGE_OFFSET
103237dd2badSKumar Gala	  however there are times (like kdump) that one might not want them
103337dd2badSKumar Gala	  to be the same.
103414cf11afSPaul Mackerras
103514cf11afSPaul Mackerras	  Say N here unless you know what you are doing.
103614cf11afSPaul Mackerras
103714cf11afSPaul Mackerrasconfig KERNEL_START
103814cf11afSPaul Mackerras	hex "Virtual address of kernel base" if KERNEL_START_BOOL
103937dd2badSKumar Gala	default PAGE_OFFSET if PAGE_OFFSET_BOOL
10400f890c8dSSuzuki Poulose	default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
104114cf11afSPaul Mackerras	default "0xc0000000"
104214cf11afSPaul Mackerras
104337dd2badSKumar Galaconfig PHYSICAL_START_BOOL
104437dd2badSKumar Gala	bool "Set physical address where the kernel is loaded"
104537dd2badSKumar Gala	depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
104637dd2badSKumar Gala	help
104737dd2badSKumar Gala	  This gives the physical address where the kernel is loaded.
104837dd2badSKumar Gala
104937dd2badSKumar Gala	  Say N here unless you know what you are doing.
105037dd2badSKumar Gala
105137dd2badSKumar Galaconfig PHYSICAL_START
105237dd2badSKumar Gala	hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
105326598f28SChristophe Leroy	default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL
105437dd2badSKumar Gala	default "0x00000000"
105537dd2badSKumar Gala
105637dd2badSKumar Galaconfig PHYSICAL_ALIGN
105737dd2badSKumar Gala	hex
1058c8f3570bSTrent Piepho	default "0x04000000" if FSL_BOOKE
105937dd2badSKumar Gala	help
106037dd2badSKumar Gala	  This value puts the alignment restrictions on physical address
106137dd2badSKumar Gala	  where kernel is loaded and run from. Kernel is compiled for an
106237dd2badSKumar Gala	  address which meets above alignment restriction.
106337dd2badSKumar Gala
106414cf11afSPaul Mackerrasconfig TASK_SIZE_BOOL
106514cf11afSPaul Mackerras	bool "Set custom user task size"
106614cf11afSPaul Mackerras	depends on ADVANCED_OPTIONS
106714cf11afSPaul Mackerras	help
106814cf11afSPaul Mackerras	  This option allows you to set the amount of virtual address space
106914cf11afSPaul Mackerras	  allocated to user tasks.  This can be useful in optimizing the
107014cf11afSPaul Mackerras	  virtual memory layout of the system.
107114cf11afSPaul Mackerras
107214cf11afSPaul Mackerras	  Say N here unless you know what you are doing.
107314cf11afSPaul Mackerras
107414cf11afSPaul Mackerrasconfig TASK_SIZE
107514cf11afSPaul Mackerras	hex "Size of user task space" if TASK_SIZE_BOOL
1076933ee711SPaul Bolle	default "0x80000000" if PPC_8xx
10774d9e5510SKumar Gala	default "0xc0000000"
107814cf11afSPaul Mackerras
107984532a0fSBenjamin Herrenschmidtconfig CONSISTENT_SIZE_BOOL
108084532a0fSBenjamin Herrenschmidt	bool "Set custom consistent memory pool size"
108184532a0fSBenjamin Herrenschmidt	depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
108284532a0fSBenjamin Herrenschmidt	help
108384532a0fSBenjamin Herrenschmidt	  This option allows you to set the size of the
108484532a0fSBenjamin Herrenschmidt	  consistent memory pool.  This pool of virtual memory
108584532a0fSBenjamin Herrenschmidt	  is used to make consistent memory allocations.
108684532a0fSBenjamin Herrenschmidt
108784532a0fSBenjamin Herrenschmidtconfig CONSISTENT_SIZE
108884532a0fSBenjamin Herrenschmidt	hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
108984532a0fSBenjamin Herrenschmidt	default "0x00200000" if NOT_COHERENT_CACHE
109084532a0fSBenjamin Herrenschmidt
109114cf11afSPaul Mackerrasconfig PIN_TLB
109214cf11afSPaul Mackerras	bool "Pinned Kernel TLBs (860 ONLY)"
109387be3e2dSChristophe Leroy	depends on ADVANCED_OPTIONS && PPC_8xx && \
109487be3e2dSChristophe Leroy		   !DEBUG_PAGEALLOC && !STRICT_KERNEL_RWX
109562f64b49SChristophe Leroy
1096a3059b0cSChristophe Leroyconfig PIN_TLB_DATA
1097a3059b0cSChristophe Leroy	bool "Pinned TLB for DATA"
1098a3059b0cSChristophe Leroy	depends on PIN_TLB
1099a3059b0cSChristophe Leroy	default y
110062f64b49SChristophe Leroy
110162f64b49SChristophe Leroyconfig PIN_TLB_IMMR
110262f64b49SChristophe Leroy	bool "Pinned TLB for IMMR"
110396d19d70SChristophe Leroy	depends on PIN_TLB || PPC_EARLY_DEBUG_CPM
110462f64b49SChristophe Leroy	default y
1105a3059b0cSChristophe Leroy
1106a3059b0cSChristophe Leroyconfig PIN_TLB_TEXT
1107a3059b0cSChristophe Leroy	bool "Pinned TLB for TEXT"
1108a3059b0cSChristophe Leroy	depends on PIN_TLB
1109a3059b0cSChristophe Leroy	default y
111014cf11afSPaul Mackerrasendmenu
111114cf11afSPaul Mackerras
1112cabb5587SStephen Rothwellif PPC64
1113bdbc29c1SPaul Mackerras# This value must have zeroes in the bottom 60 bits otherwise lots will break
111437dd2badSKumar Galaconfig PAGE_OFFSET
1115cabb5587SStephen Rothwell	hex
1116eeb2d218SStephen Rothwell	default "0xc000000000000000"
111737dd2badSKumar Galaconfig KERNEL_START
111837dd2badSKumar Gala	hex
111937dd2badSKumar Gala	default "0xc000000000000000"
112037dd2badSKumar Galaconfig PHYSICAL_START
112137dd2badSKumar Gala	hex
112237dd2badSKumar Gala	default "0x00000000"
1123cabb5587SStephen Rothwellendif
1124cabb5587SStephen Rothwell
1125a4da0d50SMichael Ellermanconfig	ARCH_RANDOM
1126a4da0d50SMichael Ellerman	def_bool n
1127a4da0d50SMichael Ellerman
11281088a209SSylvain Munautconfig PPC_LIB_RHEAP
11291088a209SSylvain Munaut	bool
11301088a209SSylvain Munaut
1131bbf45ba5SHollis Blanchardsource "arch/powerpc/kvm/Kconfig"
113285baa095SMichael Ellerman
113385baa095SMichael Ellermansource "kernel/livepatch/Kconfig"
1134