powerpc/kconfig: make _etext and data areas alignment configurable on 8xx
[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 724config ETEXT_SHIFT_BOOL
8f54a6f7
CL
725 bool "Set custom etext alignment" if STRICT_KERNEL_RWX && \
726 (PPC_BOOK3S_32 || PPC_8xx)
0f4a9041
CL
727 depends on ADVANCED_OPTIONS
728 help
729 This option allows you to set the kernel end of text alignment. When
730 RAM is mapped by blocks, the alignment needs to fit the size and
731 number of possible blocks. The default should be OK for most configs.
732
733 Say N here unless you know what you are doing.
734
166d97d9 735config ETEXT_SHIFT
0f4a9041
CL
736 int "_etext shift" if ETEXT_SHIFT_BOOL
737 range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
8f54a6f7 738 range 19 23 if STRICT_KERNEL_RWX && PPC_8xx
63b2bc61 739 default 17 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
d5f17ee9 740 default 19 if STRICT_KERNEL_RWX && PPC_8xx
166d97d9 741 default PPC_PAGE_SHIFT
0f4a9041
CL
742 help
743 On Book3S 32 (603+), IBATs are used to map kernel text.
744 Smaller is the alignment, greater is the number of necessary IBATs.
745
8f54a6f7
CL
746 On 8xx, large pages (512kb or 8M) are used to map kernel linear
747 memory. Aligning to 8M reduces TLB misses as only 8M pages are used
748 in that case.
749
0f4a9041 750config DATA_SHIFT_BOOL
8f54a6f7
CL
751 bool "Set custom data alignment" if STRICT_KERNEL_RWX && \
752 (PPC_BOOK3S_32 || PPC_8xx)
0f4a9041
CL
753 depends on ADVANCED_OPTIONS
754 help
755 This option allows you to set the kernel data alignment. When
756 RAM is mapped by blocks, the alignment needs to fit the size and
757 number of possible blocks. The default should be OK for most configs.
758
759 Say N here unless you know what you are doing.
166d97d9
CL
760
761config DATA_SHIFT
0f4a9041 762 int "Data shift" if DATA_SHIFT_BOOL
166d97d9 763 default 24 if STRICT_KERNEL_RWX && PPC64
0f4a9041 764 range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
8f54a6f7 765 range 19 23 if STRICT_KERNEL_RWX && PPC_8xx
63b2bc61 766 default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
8f54a6f7 767 default 23 if STRICT_KERNEL_RWX && PPC_8xx
166d97d9 768 default PPC_PAGE_SHIFT
0f4a9041
CL
769 help
770 On Book3S 32 (603+), DBATs are used to map kernel text and rodata RO.
771 Smaller is the alignment, greater is the number of necessary DBATs.
166d97d9 772
8f54a6f7
CL
773 On 8xx, large pages (512kb or 8M) are used to map kernel linear
774 memory. Aligning to 8M reduces TLB misses as only 8M pages are used
775 in that case.
776
53bcddb9
SR
777config FORCE_MAX_ZONEORDER
778 int "Maximum zone order"
a7ee5395 779 range 8 9 if PPC64 && PPC_64K_PAGES
066c4b87 780 default "9" if PPC64 && PPC_64K_PAGES
d5a1e42c 781 range 13 13 if PPC64 && !PPC_64K_PAGES
066c4b87
BH
782 default "13" if PPC64 && !PPC_64K_PAGES
783 range 9 64 if PPC32 && PPC_16K_PAGES
784 default "9" if PPC32 && PPC_16K_PAGES
785 range 7 64 if PPC32 && PPC_64K_PAGES
786 default "7" if PPC32 && PPC_64K_PAGES
787 range 5 64 if PPC32 && PPC_256K_PAGES
788 default "5" if PPC32 && PPC_256K_PAGES
ebe40c5c 789 range 11 64
53bcddb9
SR
790 default "11"
791 help
792 The kernel memory allocator divides physically contiguous memory
793 blocks into "zones", where each zone is a power of two number of
794 pages. This option selects the largest power of two that the kernel
795 keeps in the memory allocator. If you need to allocate very large
796 blocks of physically contiguous memory, then you may need to
797 increase this value.
798
799 This config option is actually maximum order plus one. For example,
800 a value of 11 means that the largest free memory block is 2^10 pages.
801
802 The page size is not necessarily 4KB. For example, on 64-bit
803 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
804 this in mind when choosing a value for this option.
805
fa28237c
PM
806config PPC_SUBPAGE_PROT
807 bool "Support setting protections for 4k subpages"
4e003747 808 depends on PPC_BOOK3S_64 && PPC_64K_PAGES
fa28237c
PM
809 help
810 This option adds support for a system call to allow user programs
811 to set access permissions (read/write, readonly, or no access)
812 on the 4k subpages of each 64k page.
813
e83d0169
IM
814config PPC_COPRO_BASE
815 bool
e83d0169 816
14cf11af
PM
817config SCHED_SMT
818 bool "SMT (Hyperthreading) scheduler support"
819 depends on PPC64 && SMP
14cf11af
PM
820 help
821 SMT scheduler support improves the CPU scheduler's decision making
822 when dealing with POWER5 cpus at a cost of slightly increased
823 overhead in some places. If unsure say N here.
824
b92a66a6
MN
825config PPC_DENORMALISATION
826 bool "PowerPC denormalisation exception handling"
827 depends on PPC_BOOK3S_64
4e90a2a7 828 default "y" if PPC_POWERNV
b92a66a6
MN
829 ---help---
830 Add support for handling denormalisation of single precision
831 values. Useful for bare metal only. If unsure say Y here.
832
14cf11af
PM
833config CMDLINE_BOOL
834 bool "Default bootloader kernel arguments"
14cf11af
PM
835
836config CMDLINE
837 string "Initial kernel command string"
838 depends on CMDLINE_BOOL
839 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
840 help
841 On some platforms, there is currently no way for the boot loader to
842 pass arguments to the kernel. For these platforms, you can supply
843 some command-line options at build time by entering them here. In
844 most cases you will need to specify the root device here.
845
eb3b80f6
SS
846config CMDLINE_FORCE
847 bool "Always use the default kernel command string"
848 depends on CMDLINE_BOOL
849 help
850 Always use the default kernel command string, even if the boot
851 loader passes other arguments to the kernel.
852 This is useful if you cannot or don't want to change the
853 command-line options your boot loader passes to the kernel.
854
c356aa45
GL
855config EXTRA_TARGETS
856 string "Additional default image types"
857 help
858 List additional targets to be built by the bootwrapper here (separated
859 by spaces). This is useful for targets that depend of device tree
860 files in the .dts directory.
861
862 Targets in this list will be build as part of the default build
863 target, or when the user does a 'make zImage' or a
864 'make zImage.initrd'.
865
866 If unsure, leave blank
867
b28f5081
JB
868config ARCH_WANTS_FREEZER_CONTROL
869 def_bool y
870 depends on ADB_PMU
871
8636a1f9 872source "kernel/power/Kconfig"
14cf11af
PM
873
874config SECCOMP
875 bool "Enable seccomp to safely compute untrusted bytecode"
876 depends on PROC_FS
877 default y
878 help
879 This kernel feature is useful for number crunching applications
880 that may need to compute untrusted bytecode during their
881 execution. By using pipes or other transports made available to
882 the process as file descriptors supporting the read/write
883 syscalls, it's possible to isolate those applications in
884 their own address space using seccomp. Once seccomp is
885 enabled via /proc/<pid>/seccomp, it cannot be disabled
886 and the task is only allowed to execute a few safe syscalls
887 defined by each seccomp mode.
888
889 If unsure, say Y. Only embedded should say N here.
890
92e3da3c
RP
891config PPC_MEM_KEYS
892 prompt "PowerPC Memory Protection Keys"
893 def_bool y
894 depends on PPC_BOOK3S_64
895 select ARCH_USES_HIGH_VMA_FLAGS
896 select ARCH_HAS_PKEYS
897 help
898 Memory Protection Keys provides a mechanism for enforcing
899 page-based protections, but without requiring modification of the
900 page tables when an application changes protection domains.
901
ad56b738 902 For details, see Documentation/vm/protection-keys.rst
92e3da3c
RP
903
904 If unsure, say y.
905
14cf11af
PM
906endmenu
907
908config ISA_DMA_API
909 bool
3d066d77 910 default PCI
14cf11af
PM
911
912menu "Bus options"
913
914config ISA
915 bool "Support for ISA-bus hardware"
933ee711 916 depends on PPC_CHRP
f9bd170a 917 select PPC_I8259
14cf11af
PM
918 help
919 Find out whether you have ISA slots on your motherboard. ISA is the
920 name of a bus system, i.e. the way the CPU talks to the other stuff
921 inside your box. If you have an Apple machine, say N here; if you
933ee711
PB
922 have an IBM RS/6000 or pSeries machine, say Y. If you have an
923 embedded board, consult your board documentation.
14cf11af
PM
924
925config GENERIC_ISA_DMA
926 bool
1927445a 927 depends on ISA_DMA_API
14cf11af
PM
928 default y
929
25635c71
PM
930config PPC_INDIRECT_PCI
931 bool
932 depends on PCI
63dafe57 933 default y if 40x || 44x
25635c71 934
14cf11af
PM
935config SBUS
936 bool
937
08264cbc
KG
938config FSL_SOC
939 bool
940
55c44991
RZ
941config FSL_PCI
942 bool
11ddce15 943 select ARCH_HAS_DMA_SET_MASK
55c44991 944 select PPC_INDIRECT_PCI
d0839118 945 select PCI_QUIRKS
55c44991 946
4ffd6952
AV
947config FSL_PMC
948 bool
949 default y
950 depends on SUSPEND && (PPC_85xx || PPC_86xx)
951 help
952 Freescale MPC85xx/MPC86xx power management controller support
953 (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
954
d164f6d4
VG
955config PPC4xx_CPM
956 bool
957 default y
958 depends on SUSPEND && (44x || 40x)
959 help
960 PPC4xx Clock Power Management (CPM) support (suspend/resume).
961 It also enables support for two different idle states (idle-wait
962 and idle-doze).
963
2a706919
SR
964config 4xx_SOC
965 bool
966
acaa7aa3 967config FSL_LBC
3ab8f2a2 968 bool "Freescale Local Bus support"
acaa7aa3 969 help
3ab8f2a2
RZ
970 Enables reporting of errors from the Freescale local bus
971 controller. Also contains some common code used by
972 drivers for specific local bus peripherals.
acaa7aa3 973
83ff9dcf
AV
974config FSL_GTM
975 bool
976 depends on PPC_83xx || QUICC_ENGINE || CPM2
977 help
978 Freescale General-purpose Timers support
979
14cf11af
PM
980config PCI_8260
981 bool
982 depends on PCI && 8260
25635c71 983 select PPC_INDIRECT_PCI
14cf11af
PM
984 default y
985
388b78ad
AB
986config FSL_RIO
987 bool "Freescale Embedded SRIO Controller support"
1753d50c 988 depends on RAPIDIO = y && HAVE_RAPIDIO
388b78ad
AB
989 default "n"
990 ---help---
991 Include support for RapidIO controller on Freescale embedded
992 processors (MPC8548, MPC8641, etc).
993
14cf11af
PM
994endmenu
995
0f890c8d
SP
996config NONSTATIC_KERNEL
997 bool
0f890c8d 998
14cf11af
PM
999menu "Advanced setup"
1000 depends on PPC32
1001
1002config ADVANCED_OPTIONS
1003 bool "Prompt for advanced kernel configuration options"
1004 help
1005 This option will enable prompting for a variety of advanced kernel
1006 configuration options. These options can cause the kernel to not
1007 work if they are set incorrectly, but can be used to optimize certain
1008 aspects of kernel memory management.
1009
1010 Unless you know what you are doing, say N here.
1011
1012comment "Default settings for advanced configuration options are used"
1013 depends on !ADVANCED_OPTIONS
1014
14cf11af
PM
1015config LOWMEM_SIZE_BOOL
1016 bool "Set maximum low memory"
1017 depends on ADVANCED_OPTIONS
1018 help
1019 This option allows you to set the maximum amount of memory which
1020 will be used as "low memory", that is, memory which the kernel can
1021 access directly, without having to set up a kernel virtual mapping.
1022 This can be useful in optimizing the layout of kernel virtual
1023 memory.
1024
1025 Say N here unless you know what you are doing.
1026
1027config LOWMEM_SIZE
1028 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1029 default "0x30000000"
1030
96051465
TP
1031config LOWMEM_CAM_NUM_BOOL
1032 bool "Set number of CAMs to use to map low memory"
1033 depends on ADVANCED_OPTIONS && FSL_BOOKE
1034 help
1035 This option allows you to set the maximum number of CAM slots that
1036 will be used to map low memory. There are a limited number of slots
1037 available and even more limited number that will fit in the L1 MMU.
1038 However, using more entries will allow mapping more low memory. This
1039 can be useful in optimizing the layout of kernel virtual memory.
1040
1041 Say N here unless you know what you are doing.
1042
1043config LOWMEM_CAM_NUM
9b71dbd3 1044 depends on FSL_BOOKE
96051465
TP
1045 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
1046 default 3
1047
0f890c8d 1048config DYNAMIC_MEMSTART
642e56ff
KC
1049 bool "Enable page aligned dynamic load address for kernel"
1050 depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
0f890c8d
SP
1051 select NONSTATIC_KERNEL
1052 help
1053 This option enables the kernel to be loaded at any page aligned
1054 physical address. The kernel creates a mapping from KERNELBASE to
1055 the address where the kernel is loaded. The page size here implies
1056 the TLB page size of the mapping for kernel on the particular platform.
1057 Please refer to the init code for finding the TLB page size.
1058
1059 DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
1060 kernel image, where the only restriction is the page aligned kernel
1061 load address. When this option is enabled, the compile time physical
1062 address CONFIG_PHYSICAL_START is ignored.
1063
9c5f7d39
SP
1064 This option is overridden by CONFIG_RELOCATABLE
1065
37dd2bad
KG
1066config PAGE_OFFSET_BOOL
1067 bool "Set custom page offset address"
1068 depends on ADVANCED_OPTIONS
1069 help
1070 This option allows you to set the kernel virtual address at which
1071 the kernel will map low memory. This can be useful in optimizing
1072 the virtual memory layout of the system.
1073
1074 Say N here unless you know what you are doing.
1075
1076config PAGE_OFFSET
1077 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
1078 default "0xc0000000"
1079
14cf11af
PM
1080config KERNEL_START_BOOL
1081 bool "Set custom kernel base address"
1082 depends on ADVANCED_OPTIONS
1083 help
1084 This option allows you to set the kernel virtual address at which
37dd2bad
KG
1085 the kernel will be loaded. Normally this should match PAGE_OFFSET
1086 however there are times (like kdump) that one might not want them
1087 to be the same.
14cf11af
PM
1088
1089 Say N here unless you know what you are doing.
1090
1091config KERNEL_START
1092 hex "Virtual address of kernel base" if KERNEL_START_BOOL
37dd2bad 1093 default PAGE_OFFSET if PAGE_OFFSET_BOOL
0f890c8d 1094 default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
14cf11af
PM
1095 default "0xc0000000"
1096
37dd2bad
KG
1097config PHYSICAL_START_BOOL
1098 bool "Set physical address where the kernel is loaded"
1099 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
1100 help
1101 This gives the physical address where the kernel is loaded.
1102
1103 Say N here unless you know what you are doing.
1104
1105config PHYSICAL_START
1106 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
26598f28 1107 default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL
37dd2bad
KG
1108 default "0x00000000"
1109
1110config PHYSICAL_ALIGN
1111 hex
c8f3570b 1112 default "0x04000000" if FSL_BOOKE
37dd2bad
KG
1113 help
1114 This value puts the alignment restrictions on physical address
1115 where kernel is loaded and run from. Kernel is compiled for an
1116 address which meets above alignment restriction.
1117
14cf11af
PM
1118config TASK_SIZE_BOOL
1119 bool "Set custom user task size"
1120 depends on ADVANCED_OPTIONS
1121 help
1122 This option allows you to set the amount of virtual address space
1123 allocated to user tasks. This can be useful in optimizing the
1124 virtual memory layout of the system.
1125
1126 Say N here unless you know what you are doing.
1127
1128config TASK_SIZE
1129 hex "Size of user task space" if TASK_SIZE_BOOL
933ee711 1130 default "0x80000000" if PPC_8xx
4d9e5510 1131 default "0xc0000000"
14cf11af 1132
84532a0f
BH
1133config CONSISTENT_SIZE_BOOL
1134 bool "Set custom consistent memory pool size"
1135 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1136 help
1137 This option allows you to set the size of the
1138 consistent memory pool. This pool of virtual memory
1139 is used to make consistent memory allocations.
1140
1141config CONSISTENT_SIZE
1142 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1143 default "0x00200000" if NOT_COHERENT_CACHE
1144
14cf11af
PM
1145config PIN_TLB
1146 bool "Pinned Kernel TLBs (860 ONLY)"
87be3e2d
CL
1147 depends on ADVANCED_OPTIONS && PPC_8xx && \
1148 !DEBUG_PAGEALLOC && !STRICT_KERNEL_RWX
62f64b49 1149
a3059b0c
CL
1150config PIN_TLB_DATA
1151 bool "Pinned TLB for DATA"
1152 depends on PIN_TLB
1153 default y
62f64b49
CL
1154
1155config PIN_TLB_IMMR
1156 bool "Pinned TLB for IMMR"
96d19d70 1157 depends on PIN_TLB || PPC_EARLY_DEBUG_CPM
62f64b49 1158 default y
a3059b0c
CL
1159
1160config PIN_TLB_TEXT
1161 bool "Pinned TLB for TEXT"
1162 depends on PIN_TLB
1163 default y
14cf11af
PM
1164endmenu
1165
cabb5587 1166if PPC64
bdbc29c1 1167# This value must have zeroes in the bottom 60 bits otherwise lots will break
37dd2bad
KG
1168config PAGE_OFFSET
1169 hex
1170 default "0xc000000000000000"
cabb5587
SR
1171config KERNEL_START
1172 hex
eeb2d218 1173 default "0xc000000000000000"
37dd2bad
KG
1174config PHYSICAL_START
1175 hex
37dd2bad 1176 default "0x00000000"
cabb5587
SR
1177endif
1178
a4da0d50
ME
1179config ARCH_RANDOM
1180 def_bool n
1181
1088a209
SM
1182config PPC_LIB_RHEAP
1183 bool
1184
bbf45ba5 1185source "arch/powerpc/kvm/Kconfig"
85baa095
ME
1186
1187source "kernel/livepatch/Kconfig"