powerpc/8xx: don't disable large TLBs with CONFIG_STRICT_KERNEL_RWX
[linux-2.6-block.git] / arch / powerpc / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
a0ae9c7c 2source "arch/powerpc/platforms/Kconfig.cputype"
17e638bc 3
14cf11af
PM
4config PPC32
5 bool
6 default y if !PPC64
7
234a71a7 8config 32BIT
9 bool
10 default y if PPC32
11
14cf11af
PM
12config 64BIT
13 bool
14 default y if PPC64
15
14cf11af
PM
16config MMU
17 bool
18 default y
19
9fea59bd
ME
20config ARCH_MMAP_RND_BITS_MAX
21 # On Book3S 64, the default virtual address space for 64-bit processes
22 # is 2^47 (128TB). As a maximum, allow randomisation to consume up to
23 # 32T of address space (2^45), which should ensure a reasonable gap
24 # between bottom-up and top-down allocations for applications that
25 # consume "normal" amounts of address space. Book3S 64 only supports 64K
26 # and 4K page sizes.
27 default 29 if PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K)
28 default 33 if PPC_BOOK3S_64 # 33 = 45 (32T) - 12 (4K)
29 #
30 # On all other 64-bit platforms (currently only Book3E), the virtual
31 # address space is 2^46 (64TB). Allow randomisation to consume up to 16T
32 # of address space (2^44). Only 4K page sizes are supported.
33 default 32 if 64BIT # 32 = 44 (16T) - 12 (4K)
34 #
35 # For 32-bit, use the compat values, as they're the same.
36 default ARCH_MMAP_RND_COMPAT_BITS_MAX
37
38config ARCH_MMAP_RND_BITS_MIN
39 # Allow randomisation to consume up to 1GB of address space (2^30).
40 default 14 if 64BIT && PPC_64K_PAGES # 14 = 30 (1GB) - 16 (64K)
41 default 18 if 64BIT # 18 = 30 (1GB) - 12 (4K)
42 #
43 # For 32-bit, use the compat values, as they're the same.
44 default ARCH_MMAP_RND_COMPAT_BITS_MIN
45
46config ARCH_MMAP_RND_COMPAT_BITS_MAX
47 # Total virtual address space for 32-bit processes is 2^31 (2GB).
48 # Allow randomisation to consume up to 512MB of address space (2^29).
49 default 11 if PPC_256K_PAGES # 11 = 29 (512MB) - 18 (256K)
50 default 13 if PPC_64K_PAGES # 13 = 29 (512MB) - 16 (64K)
51 default 15 if PPC_16K_PAGES # 15 = 29 (512MB) - 14 (16K)
52 default 17 # 17 = 29 (512MB) - 12 (4K)
53
54config ARCH_MMAP_RND_COMPAT_BITS_MIN
55 # Total virtual address space for 32-bit processes is 2^31 (2GB).
56 # Allow randomisation to consume up to 8MB of address space (2^23).
57 default 5 if PPC_256K_PAGES # 5 = 23 (8MB) - 18 (256K)
58 default 7 if PPC_64K_PAGES # 7 = 23 (8MB) - 16 (64K)
59 default 9 if PPC_16K_PAGES # 9 = 23 (8MB) - 14 (16K)
60 default 11 # 11 = 23 (8MB) - 12 (4K)
61
c2a7e818 62config HAVE_SETUP_PER_CPU_AREA
e74e3962
TH
63 def_bool PPC64
64
c2a7e818 65config NEED_PER_CPU_EMBED_FIRST_CHUNK
b32ef636 66 def_bool PPC64
67
551b81f2
ME
68config NR_IRQS
69 int "Number of virtual interrupt numbers"
859aefc5 70 range 32 32768
551b81f2
ME
71 default "512"
72 help
73 This defines the number of virtual interrupt numbers the kernel
74 can manage. Virtual interrupt numbers are what you see in
75 /proc/interrupts. If you configure your system to have too few,
76 drivers will fail to load or worse - handle with care.
77
ddd703ca
NP
78config NMI_IPI
79 bool
2104180a 80 depends on SMP && (DEBUGGER || KEXEC_CORE || HARDLOCKUP_DETECTOR)
ddd703ca
NP
81 default y
82
75eb767e
NP
83config PPC_WATCHDOG
84 bool
85 depends on HARDLOCKUP_DETECTOR
86 depends on HAVE_HARDLOCKUP_DETECTOR_ARCH
87 default y
88 help
89 This is a placeholder when the powerpc hardlockup detector
90 watchdog is selected (arch/powerpc/kernel/watchdog.c). It is
91 seleted via the generic lockup detector menu which is why we
92 have no standalone config option for it here.
93
fd3e0bbc
CH
94config STACKTRACE_SUPPORT
95 bool
96 default y
97
945feb17
BH
98config TRACE_IRQFLAGS_SUPPORT
99 bool
945feb17
BH
100 default y
101
102config LOCKDEP_SUPPORT
103 bool
104 default y
105
14cf11af
PM
106config RWSEM_GENERIC_SPINLOCK
107 bool
108
109config RWSEM_XCHGADD_ALGORITHM
110 bool
111 default y
112
95c354fe
NP
113config GENERIC_LOCKBREAK
114 bool
115 default y
116 depends on SMP && PREEMPT
117
e779b2f9
AM
118config GENERIC_HWEIGHT
119 bool
120 default y
121
14cf11af
PM
122config PPC
123 bool
124 default y
a7d2475a
ME
125 #
126 # Please keep this list sorted alphabetically.
127 #
6bf752da 128 select ARCH_HAS_DEBUG_VIRTUAL
a7d2475a 129 select ARCH_HAS_DEVMEM_IS_ALLOWED
a7d2475a 130 select ARCH_HAS_ELF_RANDOMIZE
6974f0c4 131 select ARCH_HAS_FORTIFY_SOURCE
a7d2475a 132 select ARCH_HAS_GCOV_PROFILE_ALL
ea8c64ac 133 select ARCH_HAS_PHYS_TO_DMA
32ce3862 134 select ARCH_HAS_PMEM_API if PPC64
3010a5ea 135 select ARCH_HAS_PTE_SPECIAL
3ccfebed 136 select ARCH_HAS_MEMBARRIER_CALLBACKS
abcff86d 137 select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64
4ec591e5 138 select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
a7d2475a 139 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
6c44741d 140 select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64
a7d2475a 141 select ARCH_HAS_UBSAN_SANITIZE_ALL
c0742441 142 select ARCH_HAS_ZONE_DEVICE if PPC_BOOK3S_64
a7d2475a 143 select ARCH_HAVE_NMI_SAFE_CMPXCHG
b7e7c37b 144 select ARCH_MIGHT_HAVE_PC_PARPORT
c74e6d3d 145 select ARCH_MIGHT_HAVE_PC_SERIO
4ec591e5 146 select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
a7d2475a 147 select ARCH_SUPPORTS_ATOMIC_RMW
a7d2475a
ME
148 select ARCH_USE_BUILTIN_BSWAP
149 select ARCH_USE_CMPXCHG_LOCKREF if PPC64
150 select ARCH_WANT_IPC_PARSE_VERSION
77e58496 151 select ARCH_WEAK_RELEASE_ACQUIRE
d812c0e1 152 select BINFMT_ELF
a7d2475a
ME
153 select BUILDTIME_EXTABLE_SORT
154 select CLONE_BACKWARDS
155 select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN
0c0c5230 156 select DYNAMIC_FTRACE if FUNCTION_TRACER
a7d2475a
ME
157 select EDAC_ATOMIC_SCRUB
158 select EDAC_SUPPORT
159 select GENERIC_ATOMIC64 if PPC32
160 select GENERIC_CLOCKEVENTS
161 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
162 select GENERIC_CMOS_UPDATE
163 select GENERIC_CPU_AUTOPROBE
179ab1cb 164 select GENERIC_CPU_VULNERABILITIES if PPC_BARRIER_NOSPEC
a7d2475a
ME
165 select GENERIC_IRQ_SHOW
166 select GENERIC_IRQ_SHOW_LEVEL
eb01d42a 167 select GENERIC_PCI_IOMAP if PCI
a7d2475a
ME
168 select GENERIC_SMP_IDLE_THREAD
169 select GENERIC_STRNCPY_FROM_USER
170 select GENERIC_STRNLEN_USER
d4cfb113 171 select GENERIC_TIME_VSYSCALL
a7d2475a 172 select HAVE_ARCH_AUDITSYSCALL
a7d2475a
ME
173 select HAVE_ARCH_JUMP_LABEL
174 select HAVE_ARCH_KGDB
9fea59bd
ME
175 select HAVE_ARCH_MMAP_RND_BITS
176 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
a7d2475a
ME
177 select HAVE_ARCH_SECCOMP_FILTER
178 select HAVE_ARCH_TRACEHOOK
179 select HAVE_CBPF_JIT if !PPC64
bf6cbd0c
ME
180 select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
181 select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
a7d2475a
ME
182 select HAVE_CONTEXT_TRACKING if PPC64
183 select HAVE_DEBUG_KMEMLEAK
184 select HAVE_DEBUG_STACKOVERFLOW
2b79d696 185 select HAVE_DYNAMIC_FTRACE
a7d2475a
ME
186 select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL
187 select HAVE_EBPF_JIT if PPC64
188 select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
189 select HAVE_FTRACE_MCOUNT_RECORD
7cd01b08 190 select HAVE_FUNCTION_ERROR_INJECTION
60ce8f72 191 select HAVE_FUNCTION_GRAPH_TRACER
a7d2475a 192 select HAVE_FUNCTION_TRACER
8034c2fb 193 select HAVE_GCC_PLUGINS if GCC_VERSION >= 50200 # plugin support on gcc <= 5.1 is buggy on PPC
e585513b 194 select HAVE_GENERIC_GUP
a7d2475a 195 select HAVE_HW_BREAKPOINT if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx)
ec7748b5 196 select HAVE_IDE
a1f242ff 197 select HAVE_IOREMAP_PROT
a7d2475a
ME
198 select HAVE_IRQ_EXIT_ON_IRQ_STACK
199 select HAVE_KERNEL_GZIP
423bfc69 200 select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
3f550096 201 select HAVE_KPROBES
ead514d5 202 select HAVE_KPROBES_ON_FTRACE
9edddaa2 203 select HAVE_KRETPROBES
4c1d9bb0 204 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
a7d2475a 205 select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
1d7cfe18 206 select HAVE_MEMBLOCK_NODE_MAP
a7d2475a 207 select HAVE_MOD_ARCH_SPECIFIC
2104180a
NP
208 select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
209 select HAVE_HARDLOCKUP_DETECTOR_ARCH if (PPC64 && PPC_BOOK3S)
4e491d14 210 select HAVE_OPROFILE
a7d2475a 211 select HAVE_OPTPROBES if PPC64
cdd6c482 212 select HAVE_PERF_EVENTS
a7d2475a 213 select HAVE_PERF_EVENTS_NMI if PPC64
92e5aae4 214 select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
ed4a4ef8 215 select HAVE_PERF_REGS
17ed7c38 216 select HAVE_PERF_USER_STACK_DUMP
a7d2475a 217 select HAVE_RCU_TABLE_FREE if SMP
359e4284 218 select HAVE_REGS_AND_STACK_ACCESS_API
a50d3250 219 select HAVE_RELIABLE_STACKTRACE if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
a7d2475a
ME
220 select HAVE_SYSCALL_TRACEPOINTS
221 select HAVE_VIRT_CPU_ACCOUNTING
518470fe 222 select HAVE_IRQ_TIME_ACCOUNTING
8a417c48 223 select HAVE_RSEQ
a4ce5a48 224 select IOMMU_HELPER if PPC64
cc79ca69 225 select IRQ_DOMAIN
e8d2c473 226 select IRQ_FORCED_THREADING
786d35d4 227 select MODULES_USE_ELF_RELA
06832fc0 228 select NEED_DMA_MAP_STATE if PPC64 || NOT_COHERENT_CACHE
86596f0a 229 select NEED_SG_DMA_LENGTH
a7d2475a
ME
230 select OF
231 select OF_EARLY_FLATTREE
232 select OF_RESERVED_MEM
233 select OLD_SIGACTION if PPC32
234 select OLD_SIGSUSPEND
2eac9c2d 235 select PCI_DOMAINS if PCI
20f1b79d 236 select PCI_SYSCALL if PCI
6e8cef38 237 select RTC_LIB
a7d2475a
ME
238 select SPARSE_IRQ
239 select SYSCTL_EXCEPTION_TRACE
240 select VIRT_TO_BUS if !PPC64
241 #
242 # Please keep this list sorted alphabetically.
243 #
14cf11af 244
179ab1cb
ME
245config PPC_BARRIER_NOSPEC
246 bool
247 default y
ebcd1bfc 248 depends on PPC_BOOK3S_64 || PPC_FSL_BOOK3E
179ab1cb 249
14cf11af
PM
250config EARLY_PRINTK
251 bool
51d3082f 252 default y
14cf11af 253
b71d47c1
JB
254config PANIC_TIMEOUT
255 int
256 default 180
257
14cf11af
PM
258config COMPAT
259 bool
260 default y if PPC64
01e31dba 261 select COMPAT_BINFMT_ELF
48b25c43 262 select ARCH_WANT_OLD_COMPAT_IPC
09a4d5d0 263 select COMPAT_OLD_SIGACTION
14cf11af
PM
264
265config SYSVIPC_COMPAT
266 bool
267 depends on COMPAT && SYSVIPC
268 default y
269
270# All PPC32s use generic nvram driver through ppc_md
271config GENERIC_NVRAM
272 bool
273 default y if PPC32
274
ae1e9130 275config SCHED_OMIT_FRAME_POINTER
14cf11af
PM
276 bool
277 default y
278
279config ARCH_MAY_HAVE_PC_FDC
280 bool
3484a31f 281 default PCI
14cf11af 282
08264cbc
KG
283config PPC_UDBG_16550
284 bool
08264cbc 285
08264cbc
KG
286config GENERIC_TBSYNC
287 bool
288 default y if PPC32 && SMP
08264cbc 289
e65e1fc2
AV
290config AUDIT_ARCH
291 bool
292 default y
293
73c9ceab
JF
294config GENERIC_BUG
295 bool
296 default y
297 depends on BUG
298
b3028878 299config SYS_SUPPORTS_APM_EMULATION
58da10bb 300 default y if PMAC_APM_EMU
b3028878
JB
301 bool
302
6c5b59b9
DG
303config EPAPR_BOOT
304 bool
305 help
306 Used to allow a board to specify it wants an ePAPR compliant wrapper.
6c5b59b9 307
f4fc4a5b
KG
308config DEFAULT_UIMAGE
309 bool
310 help
311 Used to allow a board to specify it wants a uImage built by default
f4fc4a5b 312
801e4062
JB
313config ARCH_HIBERNATION_POSSIBLE
314 bool
543b9fd3
JB
315 default y
316
f4cb5700
JB
317config ARCH_SUSPEND_POSSIBLE
318 def_bool y
4ffd6952 319 depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
d0832a75
ZC
320 (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \
321 || 44x || 40x
f4cb5700 322
4c75a6f4
BH
323config PPC_DCR_NATIVE
324 bool
4c75a6f4
BH
325
326config PPC_DCR_MMIO
327 bool
4c75a6f4
BH
328
329config PPC_DCR
330 bool
331 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
332 default y
333
4c9d2800
BH
334config PPC_OF_PLATFORM_PCI
335 bool
373a6da1 336 depends on PCI
4c9d2800 337 depends on PPC64 # not supported on 32 bits yet
4c9d2800 338
6a11f75b 339config ARCH_SUPPORTS_DEBUG_PAGEALLOC
4e003747 340 depends on PPC32 || PPC_BOOK3S_64
6a11f75b
AM
341 def_bool y
342
8b7b80b9
AM
343config ARCH_SUPPORTS_UPROBES
344 def_bool y
345
172ae2e7
DK
346config PPC_ADV_DEBUG_REGS
347 bool
348 depends on 40x || BOOKE
349 default y
350
351config PPC_ADV_DEBUG_IACS
352 int
353 depends on PPC_ADV_DEBUG_REGS
354 default 4 if 44x
355 default 2
356
357config PPC_ADV_DEBUG_DACS
358 int
359 depends on PPC_ADV_DEBUG_REGS
360 default 2
361
362config PPC_ADV_DEBUG_DVCS
363 int
364 depends on PPC_ADV_DEBUG_REGS
365 default 2 if 44x
366 default 0
367
368config PPC_ADV_DEBUG_DAC_RANGE
369 bool
370 depends on PPC_ADV_DEBUG_REGS && 44x
371 default y
372
25078dc1 373config ZONE_DMA
1c98025c 374 bool
25078dc1 375 default y if PPC_BOOK3E_64
1c98025c 376
06ef42a1
KS
377config PGTABLE_LEVELS
378 int
379 default 2 if !PPC64
368ced78 380 default 3 if PPC_64K_PAGES && !PPC_BOOK3S_64
06ef42a1
KS
381 default 4
382
a2d2e1ec 383source "arch/powerpc/sysdev/Kconfig"
4330f5da 384source "arch/powerpc/platforms/Kconfig"
14cf11af 385
14cf11af
PM
386menu "Kernel options"
387
388config HIGHMEM
389 bool "High memory support"
390 depends on PPC32
391
8636a1f9 392source "kernel/Kconfig.hz"
14cf11af 393
ba72cb8c
MG
394config HUGETLB_PAGE_SIZE_VARIABLE
395 bool
396 depends on HUGETLB_PAGE
397 default y
398
14cf11af
PM
399config MATH_EMULATION
400 bool "Math emulation"
968159c0 401 depends on 4xx || PPC_8xx || PPC_MPC832x || BOOKE
14cf11af
PM
402 ---help---
403 Some PowerPC chips designed for embedded applications do not have
404 a floating-point unit and therefore do not implement the
405 floating-point instructions in the PowerPC instruction set. If you
406 say Y here, the kernel will include code to emulate a floating-point
407 unit, which will allow programs that use floating-point
408 instructions to run.
409
4e63f8ed
BH
410 This is also useful to emulate missing (optional) instructions
411 such as fsqrt on cores that do have an FPU but do not implement
412 them (such as Freescale BookE).
413
e05c0e81
KH
414choice
415 prompt "Math emulation options"
416 default MATH_EMULATION_FULL
417 depends on MATH_EMULATION
418
419config MATH_EMULATION_FULL
420 bool "Emulate all the floating point instructions"
421 ---help---
422 Select this option will enable the kernel to support to emulate
423 all the floating point instructions. If your SoC doesn't have
424 a FPU, you should select this.
425
426config MATH_EMULATION_HW_UNIMPLEMENTED
427 bool "Just emulate the FPU unimplemented instructions"
428 ---help---
429 Select this if you know there does have a hardware FPU on your
430 SoC, but some floating point instructions are not implemented by that.
431
432endchoice
433
3d72bbc4
MN
434config PPC_TRANSACTIONAL_MEM
435 bool "Transactional Memory support for POWERPC"
436 depends on PPC_BOOK3S_64
437 depends on SMP
7b37a123
MN
438 select ALTIVEC
439 select VSX
3d72bbc4
MN
440 ---help---
441 Support user-mode Transactional Memory on POWERPC.
442
951eedeb
NP
443config LD_HEAD_STUB_CATCH
444 bool "Reserve 256 bytes to cope with linker stubs in HEAD text" if EXPERT
445 depends on PPC64
951eedeb
NP
446 help
447 Very large kernels can cause linker branch stubs to be generated by
448 code in head_64.S, which moves the head text sections out of their
449 specified location. This option can work around the problem.
450
451 If unsure, say "N".
452
8c50b72a
TD
453config MPROFILE_KERNEL
454 depends on PPC64 && CPU_LITTLE_ENDIAN
abba7597 455 def_bool $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) -I$(srctree)/include -D__KERNEL__)
8c50b72a 456
14cf11af
PM
457config HOTPLUG_CPU
458 bool "Support for enabling/disabling CPUs"
40b31360 459 depends on SMP && (PPC_PSERIES || \
2f4f1f81 460 PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE)
14cf11af
PM
461 ---help---
462 Say Y here to be able to disable and re-enable individual
463 CPUs at runtime on SMP machines.
464
465 Say N if you are unsure.
466
12633e80
NF
467config ARCH_CPU_PROBE_RELEASE
468 def_bool y
469 depends on HOTPLUG_CPU
470
cc57637b
YG
471config ARCH_ENABLE_MEMORY_HOTPLUG
472 def_bool y
473
1482471d
BP
474config ARCH_ENABLE_MEMORY_HOTREMOVE
475 def_bool y
476
f2296a3d
MS
477config PPC64_SUPPORTS_MEMORY_FAILURE
478 bool "Add support for memory hwpoison"
479 depends on PPC_BOOK3S_64
480 default "y" if PPC_POWERNV
481 select ARCH_SUPPORTS_MEMORY_FAILURE
482
14cf11af 483config KEXEC
642e56ff 484 bool "kexec system call"
96eea642 485 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E
2965faa5 486 select KEXEC_CORE
14cf11af
PM
487 help
488 kexec is a system call that implements the ability to shutdown your
489 current kernel, and to start another kernel. It is like a reboot
1f1332f7 490 but it is independent of the system firmware. And like a reboot
14cf11af
PM
491 you can start any kernel with it, not just Linux.
492
1f1332f7 493 The name comes from the similarity to the exec system call.
14cf11af
PM
494
495 It is an ongoing process to be certain the hardware in a machine
496 is properly shutdown, so do not be surprised if this code does not
bf220695
GU
497 initially work for you. As of this writing the exact hardware
498 interface is strongly in flux, so no good recommendation can be
499 made.
14cf11af 500
80f60e50
TJB
501config KEXEC_FILE
502 bool "kexec file based system call"
503 select KEXEC_CORE
467d2782 504 select HAVE_IMA_KEXEC
80f60e50
TJB
505 select BUILD_BIN2C
506 depends on PPC64
507 depends on CRYPTO=y
508 depends on CRYPTO_SHA256=y
509 help
510 This is a new version of the kexec system call. This call is
511 file based and takes in file descriptors as system call arguments
512 for kernel and initramfs as opposed to a list of segments as is the
513 case for the older kexec call.
514
b799a09f
AT
515config ARCH_HAS_KEXEC_PURGATORY
516 def_bool KEXEC_FILE
517
4c91bd6e
KH
518config RELOCATABLE
519 bool "Build a relocatable kernel"
084a275e 520 depends on PPC64 || (FLATMEM && (44x || FSL_BOOKE))
4c91bd6e 521 select NONSTATIC_KERNEL
71810db2 522 select MODULE_REL_CRCS if MODVERSIONS
4c91bd6e
KH
523 help
524 This builds a kernel image that is capable of running at the
525 location the kernel is loaded at. For ppc32, there is no any
526 alignment restrictions, and this feature is a superset of
527 DYNAMIC_MEMSTART and hence overrides it. For ppc64, we should use
528 16k-aligned base address. The kernel is linked as a
529 position-independent executable (PIE) and contains dynamic relocations
530 which are processed early in the bootup process.
531
532 One use is for the kexec on panic case where the recovery kernel
533 must live at a different physical address than the primary
534 kernel.
535
536 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
537 it has been loaded at and the compile time physical addresses
538 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
539 setting can still be useful to bootwrappers that need to know the
540 load address of the kernel (eg. u-boot/mkimage).
541
70839d20
NP
542config RELOCATABLE_TEST
543 bool "Test relocatable kernel"
544 depends on (PPC64 && RELOCATABLE)
70839d20
NP
545 help
546 This runs the relocatable kernel at the address it was initially
547 loaded at, which tends to be non-zero and therefore test the
548 relocation code.
549
e8625d46 550config CRASH_DUMP
22bd0177 551 bool "Build a dump capture kernel"
be34fff0 552 depends on PPC64 || PPC_BOOK3S_32 || FSL_BOOKE || (44x && !SMP)
084a275e 553 select RELOCATABLE if PPC64 || 44x || FSL_BOOKE
e8625d46 554 help
22bd0177 555 Build a kernel suitable for use as a dump capture kernel.
54622f10
MK
556 The same kernel binary can be used as production kernel and dump
557 capture kernel.
e8625d46 558
eb39c880
MS
559config FA_DUMP
560 bool "Firmware-assisted dump"
22bd0177
HB
561 depends on PPC64 && PPC_RTAS
562 select CRASH_CORE
563 select CRASH_DUMP
242f271c 564 help
eb39c880
MS
565 A robust mechanism to get reliable kernel crash dump with
566 assistance from firmware. This approach does not use kexec,
22bd0177 567 instead firmware assists in booting the capture kernel
eb39c880
MS
568 while preserving memory contents. Firmware-assisted dump
569 is meant to be a kdump replacement offering robustness and
570 speed not possible without system firmware assistance.
242f271c
MA
571
572 If unsure, say "N"
573
14cf11af
PM
574config IRQ_ALL_CPUS
575 bool "Distribute interrupts on all CPUs by default"
6cf09b9d 576 depends on SMP
14cf11af
PM
577 help
578 This option gives the kernel permission to distribute IRQs across
579 multiple CPUs. Saying N here will route all IRQs to the first
580 CPU. Generally saying Y is safe, although some problems have been
581 reported with SMP Power Macintoshes with this option enabled.
582
ffa27b6b
AW
583config NUMA
584 bool "NUMA support"
585 depends on PPC64
586 default y if SMP && PPC_PSERIES
587
c80d79d7
YG
588config NODES_SHIFT
589 int
ea55bf29 590 default "8" if PPC64
c80d79d7
YG
591 default "4"
592 depends on NEED_MULTIPLE_NODES
593
8c272261
NA
594config USE_PERCPU_NUMA_NODE_ID
595 def_bool y
596 depends on NUMA
597
64bb80d8
NA
598config HAVE_MEMORYLESS_NODES
599 def_bool y
600 depends on NUMA
601
14cf11af
PM
602config ARCH_SELECT_MEMORY_MODEL
603 def_bool y
604 depends on PPC64
605
606config ARCH_FLATMEM_ENABLE
9100b205
AW
607 def_bool y
608 depends on (PPC64 && !NUMA) || PPC32
14cf11af 609
45fb6cea 610config ARCH_SPARSEMEM_ENABLE
14cf11af 611 def_bool y
9100b205 612 depends on PPC64
d29eff7b 613 select SPARSEMEM_VMEMMAP_ENABLE
14cf11af 614
45fb6cea 615config ARCH_SPARSEMEM_DEFAULT
14cf11af 616 def_bool y
7b3912f4 617 depends on PPC_BOOK3S_64
14cf11af 618
5a1eb5c4 619config SYS_SUPPORTS_HUGETLBFS
41151e77 620 bool
5a1eb5c4 621
f6853eb5
ME
622config ILLEGAL_POINTER_VALUE
623 hex
624 # This is roughly half way between the top of user space and the bottom
625 # of kernel space, which seems about as good as we can get.
626 default 0x5deadbeef0000000 if PPC64
627 default 0
628
7e9191da
MK
629config ARCH_MEMORY_PROBE
630 def_bool y
631 depends on MEMORY_HOTPLUG
632
75167957
AW
633# Some NUMA nodes have memory ranges that span
634# other nodes. Even though a pfn is valid and
635# between a node's start and end pfns, it may not
636# reside on that node. See memmap_init_zone()
637# for details.
638config NODES_SPAN_OTHER_NODES
639 def_bool y
640 depends on NEED_MULTIPLE_NODES
641
e1240122
YT
642config STDBINUTILS
643 bool "Using standard binutils settings"
644 depends on 44x
645 default y
646 help
647 Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
648 Note, that kernel will be able to run only those applications,
649 which had been compiled using binutils later than 2.17.50.0.3 with
650 '-zmax-page-size' set to 256K (the default is 64K). Or, if using
651 the older binutils, you can patch them with a trivial patch, which
652 changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
653
ca9153a3
IY
654choice
655 prompt "Page size"
656 default PPC_4K_PAGES
3c726f8d 657 help
ca9153a3
IY
658 Select the kernel logical page size. Increasing the page size
659 will reduce software overhead at each page boundary, allow
660 hardware prefetch mechanisms to be more effective, and allow
661 larger dma transfers increasing IO efficiency and reducing
662 overhead. However the utilization of memory will increase.
663 For example, each cached file will using a multiple of the
664 page size to hold its contents and the difference between the
665 end of file and the end of page is wasted.
666
667 Some dedicated systems, such as software raid serving with
668 accelerated calculations, have shown significant increases.
669
670 If you configure a 64 bit kernel for 64k pages but the
671 processor does not support them, then the kernel will simulate
672 them with 4k pages, loading them on demand, but with the
673 reduced software overhead and larger internal fragmentation.
674 For the 32 bit kernel, a large page option will not be offered
675 unless it is supported by the configured processor.
676
677 If unsure, choose 4K_PAGES.
678
679config PPC_4K_PAGES
680 bool "4k page size"
19f97c98 681 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
ca9153a3
IY
682
683config PPC_16K_PAGES
55f8b5b8 684 bool "16k page size"
55c8fc3f 685 depends on 44x || PPC_8xx
ca9153a3
IY
686
687config PPC_64K_PAGES
55f8b5b8 688 bool "64k page size"
bba43630 689 depends on 44x || PPC_BOOK3S_64
19f97c98 690 select HAVE_ARCH_SOFT_DIRTY if PPC_BOOK3S_64
ca9153a3 691
e1240122 692config PPC_256K_PAGES
55f8b5b8
ME
693 bool "256k page size"
694 depends on 44x && !STDBINUTILS
e1240122
YT
695 help
696 Make the page size 256k.
697
698 As the ELF standard only requires alignment to support page
699 sizes up to 64k, you will need to compile all of your user
700 space applications with a non-standard binutils settings
701 (see the STDBINUTILS description for details).
702
703 Say N unless you know what you are doing.
704
ca9153a3 705endchoice
3c726f8d 706
555f4fdb
CL
707config PPC_PAGE_SHIFT
708 int
709 default 18 if PPC_256K_PAGES
710 default 16 if PPC_64K_PAGES
711 default 14 if PPC_16K_PAGES
712 default 12
713
47613407
HM
714config THREAD_SHIFT
715 int "Thread shift" if EXPERT
716 range 13 15
717 default "15" if PPC_256K_PAGES
718 default "14" if PPC64
719 default "13"
720 help
721 Used to define the stack size. The default is almost always what you
722 want. Only change this if you know what you are doing.
723
0f4a9041
CL
724config ETEXT_SHIFT_BOOL
725 bool "Set custom etext alignment" if STRICT_KERNEL_RWX && PPC_BOOK3S_32
726 depends on ADVANCED_OPTIONS
727 help
728 This option allows you to set the kernel end of text alignment. When
729 RAM is mapped by blocks, the alignment needs to fit the size and
730 number of possible blocks. The default should be OK for most configs.
731
732 Say N here unless you know what you are doing.
733
166d97d9 734config ETEXT_SHIFT
0f4a9041
CL
735 int "_etext shift" if ETEXT_SHIFT_BOOL
736 range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
63b2bc61 737 default 17 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
d5f17ee9 738 default 19 if STRICT_KERNEL_RWX && PPC_8xx
166d97d9 739 default PPC_PAGE_SHIFT
0f4a9041
CL
740 help
741 On Book3S 32 (603+), IBATs are used to map kernel text.
742 Smaller is the alignment, greater is the number of necessary IBATs.
743
744config DATA_SHIFT_BOOL
745 bool "Set custom data alignment" if STRICT_KERNEL_RWX && PPC_BOOK3S_32
746 depends on ADVANCED_OPTIONS
747 help
748 This option allows you to set the kernel data alignment. When
749 RAM is mapped by blocks, the alignment needs to fit the size and
750 number of possible blocks. The default should be OK for most configs.
751
752 Say N here unless you know what you are doing.
166d97d9
CL
753
754config DATA_SHIFT
0f4a9041 755 int "Data shift" if DATA_SHIFT_BOOL
166d97d9 756 default 24 if STRICT_KERNEL_RWX && PPC64
0f4a9041 757 range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
63b2bc61 758 default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
d5f17ee9 759 default 19 if STRICT_KERNEL_RWX && PPC_8xx
166d97d9 760 default PPC_PAGE_SHIFT
0f4a9041
CL
761 help
762 On Book3S 32 (603+), DBATs are used to map kernel text and rodata RO.
763 Smaller is the alignment, greater is the number of necessary DBATs.
166d97d9 764
53bcddb9
SR
765config FORCE_MAX_ZONEORDER
766 int "Maximum zone order"
a7ee5395 767 range 8 9 if PPC64 && PPC_64K_PAGES
066c4b87 768 default "9" if PPC64 && PPC_64K_PAGES
d5a1e42c 769 range 13 13 if PPC64 && !PPC_64K_PAGES
066c4b87
BH
770 default "13" if PPC64 && !PPC_64K_PAGES
771 range 9 64 if PPC32 && PPC_16K_PAGES
772 default "9" if PPC32 && PPC_16K_PAGES
773 range 7 64 if PPC32 && PPC_64K_PAGES
774 default "7" if PPC32 && PPC_64K_PAGES
775 range 5 64 if PPC32 && PPC_256K_PAGES
776 default "5" if PPC32 && PPC_256K_PAGES
ebe40c5c 777 range 11 64
53bcddb9
SR
778 default "11"
779 help
780 The kernel memory allocator divides physically contiguous memory
781 blocks into "zones", where each zone is a power of two number of
782 pages. This option selects the largest power of two that the kernel
783 keeps in the memory allocator. If you need to allocate very large
784 blocks of physically contiguous memory, then you may need to
785 increase this value.
786
787 This config option is actually maximum order plus one. For example,
788 a value of 11 means that the largest free memory block is 2^10 pages.
789
790 The page size is not necessarily 4KB. For example, on 64-bit
791 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
792 this in mind when choosing a value for this option.
793
fa28237c
PM
794config PPC_SUBPAGE_PROT
795 bool "Support setting protections for 4k subpages"
4e003747 796 depends on PPC_BOOK3S_64 && PPC_64K_PAGES
fa28237c
PM
797 help
798 This option adds support for a system call to allow user programs
799 to set access permissions (read/write, readonly, or no access)
800 on the 4k subpages of each 64k page.
801
e83d0169
IM
802config PPC_COPRO_BASE
803 bool
e83d0169 804
14cf11af
PM
805config SCHED_SMT
806 bool "SMT (Hyperthreading) scheduler support"
807 depends on PPC64 && SMP
14cf11af
PM
808 help
809 SMT scheduler support improves the CPU scheduler's decision making
810 when dealing with POWER5 cpus at a cost of slightly increased
811 overhead in some places. If unsure say N here.
812
b92a66a6
MN
813config PPC_DENORMALISATION
814 bool "PowerPC denormalisation exception handling"
815 depends on PPC_BOOK3S_64
4e90a2a7 816 default "y" if PPC_POWERNV
b92a66a6
MN
817 ---help---
818 Add support for handling denormalisation of single precision
819 values. Useful for bare metal only. If unsure say Y here.
820
14cf11af
PM
821config CMDLINE_BOOL
822 bool "Default bootloader kernel arguments"
14cf11af
PM
823
824config CMDLINE
825 string "Initial kernel command string"
826 depends on CMDLINE_BOOL
827 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
828 help
829 On some platforms, there is currently no way for the boot loader to
830 pass arguments to the kernel. For these platforms, you can supply
831 some command-line options at build time by entering them here. In
832 most cases you will need to specify the root device here.
833
eb3b80f6
SS
834config CMDLINE_FORCE
835 bool "Always use the default kernel command string"
836 depends on CMDLINE_BOOL
837 help
838 Always use the default kernel command string, even if the boot
839 loader passes other arguments to the kernel.
840 This is useful if you cannot or don't want to change the
841 command-line options your boot loader passes to the kernel.
842
c356aa45
GL
843config EXTRA_TARGETS
844 string "Additional default image types"
845 help
846 List additional targets to be built by the bootwrapper here (separated
847 by spaces). This is useful for targets that depend of device tree
848 files in the .dts directory.
849
850 Targets in this list will be build as part of the default build
851 target, or when the user does a 'make zImage' or a
852 'make zImage.initrd'.
853
854 If unsure, leave blank
855
b28f5081
JB
856config ARCH_WANTS_FREEZER_CONTROL
857 def_bool y
858 depends on ADB_PMU
859
8636a1f9 860source "kernel/power/Kconfig"
14cf11af
PM
861
862config SECCOMP
863 bool "Enable seccomp to safely compute untrusted bytecode"
864 depends on PROC_FS
865 default y
866 help
867 This kernel feature is useful for number crunching applications
868 that may need to compute untrusted bytecode during their
869 execution. By using pipes or other transports made available to
870 the process as file descriptors supporting the read/write
871 syscalls, it's possible to isolate those applications in
872 their own address space using seccomp. Once seccomp is
873 enabled via /proc/<pid>/seccomp, it cannot be disabled
874 and the task is only allowed to execute a few safe syscalls
875 defined by each seccomp mode.
876
877 If unsure, say Y. Only embedded should say N here.
878
92e3da3c
RP
879config PPC_MEM_KEYS
880 prompt "PowerPC Memory Protection Keys"
881 def_bool y
882 depends on PPC_BOOK3S_64
883 select ARCH_USES_HIGH_VMA_FLAGS
884 select ARCH_HAS_PKEYS
885 help
886 Memory Protection Keys provides a mechanism for enforcing
887 page-based protections, but without requiring modification of the
888 page tables when an application changes protection domains.
889
ad56b738 890 For details, see Documentation/vm/protection-keys.rst
92e3da3c
RP
891
892 If unsure, say y.
893
14cf11af
PM
894endmenu
895
896config ISA_DMA_API
897 bool
3d066d77 898 default PCI
14cf11af
PM
899
900menu "Bus options"
901
902config ISA
903 bool "Support for ISA-bus hardware"
933ee711 904 depends on PPC_CHRP
f9bd170a 905 select PPC_I8259
14cf11af
PM
906 help
907 Find out whether you have ISA slots on your motherboard. ISA is the
908 name of a bus system, i.e. the way the CPU talks to the other stuff
909 inside your box. If you have an Apple machine, say N here; if you
933ee711
PB
910 have an IBM RS/6000 or pSeries machine, say Y. If you have an
911 embedded board, consult your board documentation.
14cf11af
PM
912
913config GENERIC_ISA_DMA
914 bool
1927445a 915 depends on ISA_DMA_API
14cf11af
PM
916 default y
917
25635c71
PM
918config PPC_INDIRECT_PCI
919 bool
920 depends on PCI
63dafe57 921 default y if 40x || 44x
25635c71 922
14cf11af
PM
923config SBUS
924 bool
925
08264cbc
KG
926config FSL_SOC
927 bool
928
55c44991
RZ
929config FSL_PCI
930 bool
11ddce15 931 select ARCH_HAS_DMA_SET_MASK
55c44991 932 select PPC_INDIRECT_PCI
d0839118 933 select PCI_QUIRKS
55c44991 934
4ffd6952
AV
935config FSL_PMC
936 bool
937 default y
938 depends on SUSPEND && (PPC_85xx || PPC_86xx)
939 help
940 Freescale MPC85xx/MPC86xx power management controller support
941 (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
942
d164f6d4
VG
943config PPC4xx_CPM
944 bool
945 default y
946 depends on SUSPEND && (44x || 40x)
947 help
948 PPC4xx Clock Power Management (CPM) support (suspend/resume).
949 It also enables support for two different idle states (idle-wait
950 and idle-doze).
951
2a706919
SR
952config 4xx_SOC
953 bool
954
acaa7aa3 955config FSL_LBC
3ab8f2a2 956 bool "Freescale Local Bus support"
acaa7aa3 957 help
3ab8f2a2
RZ
958 Enables reporting of errors from the Freescale local bus
959 controller. Also contains some common code used by
960 drivers for specific local bus peripherals.
acaa7aa3 961
83ff9dcf
AV
962config FSL_GTM
963 bool
964 depends on PPC_83xx || QUICC_ENGINE || CPM2
965 help
966 Freescale General-purpose Timers support
967
14cf11af
PM
968config PCI_8260
969 bool
970 depends on PCI && 8260
25635c71 971 select PPC_INDIRECT_PCI
14cf11af
PM
972 default y
973
388b78ad
AB
974config FSL_RIO
975 bool "Freescale Embedded SRIO Controller support"
1753d50c 976 depends on RAPIDIO = y && HAVE_RAPIDIO
388b78ad
AB
977 default "n"
978 ---help---
979 Include support for RapidIO controller on Freescale embedded
980 processors (MPC8548, MPC8641, etc).
981
14cf11af
PM
982endmenu
983
0f890c8d
SP
984config NONSTATIC_KERNEL
985 bool
0f890c8d 986
14cf11af
PM
987menu "Advanced setup"
988 depends on PPC32
989
990config ADVANCED_OPTIONS
991 bool "Prompt for advanced kernel configuration options"
992 help
993 This option will enable prompting for a variety of advanced kernel
994 configuration options. These options can cause the kernel to not
995 work if they are set incorrectly, but can be used to optimize certain
996 aspects of kernel memory management.
997
998 Unless you know what you are doing, say N here.
999
1000comment "Default settings for advanced configuration options are used"
1001 depends on !ADVANCED_OPTIONS
1002
14cf11af
PM
1003config LOWMEM_SIZE_BOOL
1004 bool "Set maximum low memory"
1005 depends on ADVANCED_OPTIONS
1006 help
1007 This option allows you to set the maximum amount of memory which
1008 will be used as "low memory", that is, memory which the kernel can
1009 access directly, without having to set up a kernel virtual mapping.
1010 This can be useful in optimizing the layout of kernel virtual
1011 memory.
1012
1013 Say N here unless you know what you are doing.
1014
1015config LOWMEM_SIZE
1016 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1017 default "0x30000000"
1018
96051465
TP
1019config LOWMEM_CAM_NUM_BOOL
1020 bool "Set number of CAMs to use to map low memory"
1021 depends on ADVANCED_OPTIONS && FSL_BOOKE
1022 help
1023 This option allows you to set the maximum number of CAM slots that
1024 will be used to map low memory. There are a limited number of slots
1025 available and even more limited number that will fit in the L1 MMU.
1026 However, using more entries will allow mapping more low memory. This
1027 can be useful in optimizing the layout of kernel virtual memory.
1028
1029 Say N here unless you know what you are doing.
1030
1031config LOWMEM_CAM_NUM
9b71dbd3 1032 depends on FSL_BOOKE
96051465
TP
1033 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
1034 default 3
1035
0f890c8d 1036config DYNAMIC_MEMSTART
642e56ff
KC
1037 bool "Enable page aligned dynamic load address for kernel"
1038 depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
0f890c8d
SP
1039 select NONSTATIC_KERNEL
1040 help
1041 This option enables the kernel to be loaded at any page aligned
1042 physical address. The kernel creates a mapping from KERNELBASE to
1043 the address where the kernel is loaded. The page size here implies
1044 the TLB page size of the mapping for kernel on the particular platform.
1045 Please refer to the init code for finding the TLB page size.
1046
1047 DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
1048 kernel image, where the only restriction is the page aligned kernel
1049 load address. When this option is enabled, the compile time physical
1050 address CONFIG_PHYSICAL_START is ignored.
1051
9c5f7d39
SP
1052 This option is overridden by CONFIG_RELOCATABLE
1053
37dd2bad
KG
1054config PAGE_OFFSET_BOOL
1055 bool "Set custom page offset address"
1056 depends on ADVANCED_OPTIONS
1057 help
1058 This option allows you to set the kernel virtual address at which
1059 the kernel will map low memory. This can be useful in optimizing
1060 the virtual memory layout of the system.
1061
1062 Say N here unless you know what you are doing.
1063
1064config PAGE_OFFSET
1065 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
1066 default "0xc0000000"
1067
14cf11af
PM
1068config KERNEL_START_BOOL
1069 bool "Set custom kernel base address"
1070 depends on ADVANCED_OPTIONS
1071 help
1072 This option allows you to set the kernel virtual address at which
37dd2bad
KG
1073 the kernel will be loaded. Normally this should match PAGE_OFFSET
1074 however there are times (like kdump) that one might not want them
1075 to be the same.
14cf11af
PM
1076
1077 Say N here unless you know what you are doing.
1078
1079config KERNEL_START
1080 hex "Virtual address of kernel base" if KERNEL_START_BOOL
37dd2bad 1081 default PAGE_OFFSET if PAGE_OFFSET_BOOL
0f890c8d 1082 default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
14cf11af
PM
1083 default "0xc0000000"
1084
37dd2bad
KG
1085config PHYSICAL_START_BOOL
1086 bool "Set physical address where the kernel is loaded"
1087 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
1088 help
1089 This gives the physical address where the kernel is loaded.
1090
1091 Say N here unless you know what you are doing.
1092
1093config PHYSICAL_START
1094 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
26598f28 1095 default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL
37dd2bad
KG
1096 default "0x00000000"
1097
1098config PHYSICAL_ALIGN
1099 hex
c8f3570b 1100 default "0x04000000" if FSL_BOOKE
37dd2bad
KG
1101 help
1102 This value puts the alignment restrictions on physical address
1103 where kernel is loaded and run from. Kernel is compiled for an
1104 address which meets above alignment restriction.
1105
14cf11af
PM
1106config TASK_SIZE_BOOL
1107 bool "Set custom user task size"
1108 depends on ADVANCED_OPTIONS
1109 help
1110 This option allows you to set the amount of virtual address space
1111 allocated to user tasks. This can be useful in optimizing the
1112 virtual memory layout of the system.
1113
1114 Say N here unless you know what you are doing.
1115
1116config TASK_SIZE
1117 hex "Size of user task space" if TASK_SIZE_BOOL
933ee711 1118 default "0x80000000" if PPC_8xx
4d9e5510 1119 default "0xc0000000"
14cf11af 1120
84532a0f
BH
1121config CONSISTENT_SIZE_BOOL
1122 bool "Set custom consistent memory pool size"
1123 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1124 help
1125 This option allows you to set the size of the
1126 consistent memory pool. This pool of virtual memory
1127 is used to make consistent memory allocations.
1128
1129config CONSISTENT_SIZE
1130 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1131 default "0x00200000" if NOT_COHERENT_CACHE
1132
14cf11af
PM
1133config PIN_TLB
1134 bool "Pinned Kernel TLBs (860 ONLY)"
87be3e2d
CL
1135 depends on ADVANCED_OPTIONS && PPC_8xx && \
1136 !DEBUG_PAGEALLOC && !STRICT_KERNEL_RWX
62f64b49 1137
a3059b0c
CL
1138config PIN_TLB_DATA
1139 bool "Pinned TLB for DATA"
1140 depends on PIN_TLB
1141 default y
62f64b49
CL
1142
1143config PIN_TLB_IMMR
1144 bool "Pinned TLB for IMMR"
96d19d70 1145 depends on PIN_TLB || PPC_EARLY_DEBUG_CPM
62f64b49 1146 default y
a3059b0c
CL
1147
1148config PIN_TLB_TEXT
1149 bool "Pinned TLB for TEXT"
1150 depends on PIN_TLB
1151 default y
14cf11af
PM
1152endmenu
1153
cabb5587 1154if PPC64
bdbc29c1 1155# This value must have zeroes in the bottom 60 bits otherwise lots will break
37dd2bad
KG
1156config PAGE_OFFSET
1157 hex
1158 default "0xc000000000000000"
cabb5587
SR
1159config KERNEL_START
1160 hex
eeb2d218 1161 default "0xc000000000000000"
37dd2bad
KG
1162config PHYSICAL_START
1163 hex
37dd2bad 1164 default "0x00000000"
cabb5587
SR
1165endif
1166
a4da0d50
ME
1167config ARCH_RANDOM
1168 def_bool n
1169
1088a209
SM
1170config PPC_LIB_RHEAP
1171 bool
1172
bbf45ba5 1173source "arch/powerpc/kvm/Kconfig"
85baa095
ME
1174
1175source "kernel/livepatch/Kconfig"