]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/powerpc/Kconfig
Split out common parts of prom.h
[mirror_ubuntu-artful-kernel.git] / arch / powerpc / Kconfig
CommitLineData
14cf11af
PM
1# For a description of the syntax of this configuration file,
2# see Documentation/kbuild/kconfig-language.txt.
3#
4
5mainmenu "Linux/PowerPC Kernel Configuration"
6
a0ae9c7c 7source "arch/powerpc/platforms/Kconfig.cputype"
17e638bc 8
14cf11af
PM
9config PPC32
10 bool
11 default y if !PPC64
12
13config 64BIT
14 bool
15 default y if PPC64
16
17config PPC_MERGE
18 def_bool y
19
20config MMU
21 bool
22 default y
23
14cf11af
PM
24config GENERIC_HARDIRQS
25 bool
26 default y
27
0d7012a9
IM
28config IRQ_PER_CPU
29 bool
30 default y
31
14cf11af
PM
32config RWSEM_GENERIC_SPINLOCK
33 bool
34
35config RWSEM_XCHGADD_ALGORITHM
36 bool
37 default y
38
f0d1b0b3
DH
39config ARCH_HAS_ILOG2_U32
40 bool
ef55d53c 41 default y
f0d1b0b3
DH
42
43config ARCH_HAS_ILOG2_U64
44 bool
ef55d53c 45 default y if 64BIT
f0d1b0b3 46
e779b2f9
AM
47config GENERIC_HWEIGHT
48 bool
49 default y
50
14cf11af
PM
51config GENERIC_CALIBRATE_DELAY
52 bool
53 default y
54
0a9cb46a
JM
55config GENERIC_FIND_NEXT_BIT
56 bool
57 default y
58
f057eac0
SR
59config ARCH_NO_VIRT_TO_BUS
60 def_bool PPC64
61
14cf11af
PM
62config PPC
63 bool
64 default y
65
66config EARLY_PRINTK
67 bool
51d3082f 68 default y
14cf11af
PM
69
70config COMPAT
71 bool
72 default y if PPC64
73
74config SYSVIPC_COMPAT
75 bool
76 depends on COMPAT && SYSVIPC
77 default y
78
79# All PPC32s use generic nvram driver through ppc_md
80config GENERIC_NVRAM
81 bool
82 default y if PPC32
83
84config SCHED_NO_NO_OMIT_FRAME_POINTER
85 bool
86 default y
87
88config ARCH_MAY_HAVE_PC_FDC
89 bool
bed59275 90 default !PPC_PSERIES || PCI
14cf11af 91
08264cbc
KG
92config PPC_OF
93 def_bool y
94
95config PPC_UDBG_16550
96 bool
97 default n
98
08264cbc
KG
99config GENERIC_TBSYNC
100 bool
101 default y if PPC32 && SMP
102 default n
103
e65e1fc2
AV
104config AUDIT_ARCH
105 bool
106 default y
107
73c9ceab
JF
108config GENERIC_BUG
109 bool
110 default y
111 depends on BUG
112
b3028878 113config SYS_SUPPORTS_APM_EMULATION
58da10bb 114 default y if PMAC_APM_EMU
b3028878
JB
115 bool
116
f4fc4a5b
KG
117config DEFAULT_UIMAGE
118 bool
119 help
120 Used to allow a board to specify it wants a uImage built by default
121 default n
122
543b9fd3
JB
123config PPC64_SWSUSP
124 bool
125 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
126 default y
127
4c75a6f4
BH
128config PPC_DCR_NATIVE
129 bool
130 default n
131
132config PPC_DCR_MMIO
133 bool
134 default n
135
136config PPC_DCR
137 bool
138 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
139 default y
140
4c9d2800
BH
141config PPC_OF_PLATFORM_PCI
142 bool
143 depends on PPC64 # not supported on 32 bits yet
144 default n
145
14cf11af
PM
146source "init/Kconfig"
147
4330f5da 148source "arch/powerpc/platforms/Kconfig"
14cf11af 149
14cf11af
PM
150menu "Kernel options"
151
152config HIGHMEM
153 bool "High memory support"
154 depends on PPC32
155
156source kernel/Kconfig.hz
157source kernel/Kconfig.preempt
158source "fs/Kconfig.binfmt"
159
160# We optimistically allocate largepages from the VM, so make the limit
161# large enough (16MB). This badly named config option is actually
162# max order + 1
163config FORCE_MAX_ZONEORDER
164 int
165 depends on PPC64
02864867 166 default "9" if PPC_64K_PAGES
14cf11af
PM
167 default "13"
168
169config MATH_EMULATION
170 bool "Math emulation"
4d52719a 171 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
14cf11af
PM
172 ---help---
173 Some PowerPC chips designed for embedded applications do not have
174 a floating-point unit and therefore do not implement the
175 floating-point instructions in the PowerPC instruction set. If you
176 say Y here, the kernel will include code to emulate a floating-point
177 unit, which will allow programs that use floating-point
178 instructions to run.
179
180config IOMMU_VMERGE
181 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
182 depends on EXPERIMENTAL && PPC64
183 default n
184 help
185 Cause IO segments sent to a device for DMA to be merged virtually
186 by the IOMMU when they happen to have been allocated contiguously.
187 This doesn't add pressure to the IOMMU allocator. However, some
188 drivers don't support getting large merged segments coming back
189 from *_map_sg(). Say Y if you know the drivers you are using are
190 properly handling this case.
191
192config HOTPLUG_CPU
193 bool "Support for enabling/disabling CPUs"
194 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
195 ---help---
196 Say Y here to be able to disable and re-enable individual
197 CPUs at runtime on SMP machines.
198
199 Say N if you are unsure.
200
cc57637b
YG
201config ARCH_ENABLE_MEMORY_HOTPLUG
202 def_bool y
203
14cf11af
PM
204config KEXEC
205 bool "kexec system call (EXPERIMENTAL)"
fd4ba7e2 206 depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
14cf11af
PM
207 help
208 kexec is a system call that implements the ability to shutdown your
209 current kernel, and to start another kernel. It is like a reboot
1f1332f7 210 but it is independent of the system firmware. And like a reboot
14cf11af
PM
211 you can start any kernel with it, not just Linux.
212
1f1332f7 213 The name comes from the similarity to the exec system call.
14cf11af
PM
214
215 It is an ongoing process to be certain the hardware in a machine
216 is properly shutdown, so do not be surprised if this code does not
217 initially work for you. It may help to enable device hotplugging
218 support. As of this writing the exact hardware interface is
219 strongly in flux, so no good recommendation can be made.
220
e8625d46 221config CRASH_DUMP
cd9c99d7 222 bool "Build a kdump crash kernel (EXPERIMENTAL)"
e8625d46
HM
223 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
224 help
225 Build a kernel suitable for use as a kdump capture kernel.
226 The kernel will be linked at a different address than normal, and
227 so can only be used for Kdump.
228
229 Don't change this unless you know what you are doing.
230
14cf11af
PM
231config PPCBUG_NVRAM
232 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
233 default y if PPC_PREP
234
235config IRQ_ALL_CPUS
236 bool "Distribute interrupts on all CPUs by default"
237 depends on SMP && !MV64360
238 help
239 This option gives the kernel permission to distribute IRQs across
240 multiple CPUs. Saying N here will route all IRQs to the first
241 CPU. Generally saying Y is safe, although some problems have been
242 reported with SMP Power Macintoshes with this option enabled.
243
ffa27b6b
AW
244config NUMA
245 bool "NUMA support"
246 depends on PPC64
247 default y if SMP && PPC_PSERIES
248
c80d79d7
YG
249config NODES_SHIFT
250 int
251 default "4"
252 depends on NEED_MULTIPLE_NODES
253
14cf11af
PM
254config ARCH_SELECT_MEMORY_MODEL
255 def_bool y
256 depends on PPC64
257
258config ARCH_FLATMEM_ENABLE
9100b205
AW
259 def_bool y
260 depends on (PPC64 && !NUMA) || PPC32
14cf11af 261
45fb6cea 262config ARCH_SPARSEMEM_ENABLE
14cf11af 263 def_bool y
9100b205 264 depends on PPC64
14cf11af 265
45fb6cea 266config ARCH_SPARSEMEM_DEFAULT
14cf11af 267 def_bool y
78bde53e 268 depends on (SMP && PPC_PSERIES) || PPC_PS3
14cf11af 269
c67c3cb4 270config ARCH_POPULATES_NODE_MAP
14cf11af 271 def_bool y
c67c3cb4
MG
272
273source "mm/Kconfig"
14cf11af 274
7e9191da
MK
275config ARCH_MEMORY_PROBE
276 def_bool y
277 depends on MEMORY_HOTPLUG
278
75167957
AW
279# Some NUMA nodes have memory ranges that span
280# other nodes. Even though a pfn is valid and
281# between a node's start and end pfns, it may not
282# reside on that node. See memmap_init_zone()
283# for details.
284config NODES_SPAN_OTHER_NODES
285 def_bool y
286 depends on NEED_MULTIPLE_NODES
287
16c2d476
BH
288config PPC_HAS_HASH_64K
289 bool
290 depends on PPC64
291 default n
292
3c726f8d
BH
293config PPC_64K_PAGES
294 bool "64k page size"
863c84b9 295 depends on PPC64
16c2d476 296 select PPC_HAS_HASH_64K
3c726f8d
BH
297 help
298 This option changes the kernel logical page size to 64k. On machines
98750261
KG
299 without processor support for 64k pages, the kernel will simulate
300 them by loading each individual 4k page on demand transparently,
301 while on hardware with such support, it will be used to map
302 normal application pages.
3c726f8d 303
14cf11af
PM
304config SCHED_SMT
305 bool "SMT (Hyperthreading) scheduler support"
306 depends on PPC64 && SMP
14cf11af
PM
307 help
308 SMT scheduler support improves the CPU scheduler's decision making
309 when dealing with POWER5 cpus at a cost of slightly increased
310 overhead in some places. If unsure say N here.
311
312config PROC_DEVICETREE
5f296755
PM
313 bool "Support for device tree in /proc"
314 depends on PROC_FS
14cf11af
PM
315 help
316 This option adds a device-tree directory under /proc which contains
317 an image of the device tree that the kernel copies from Open
5f296755 318 Firmware or other boot firmware. If unsure, say Y here.
14cf11af 319
14cf11af
PM
320config CMDLINE_BOOL
321 bool "Default bootloader kernel arguments"
14cf11af
PM
322
323config CMDLINE
324 string "Initial kernel command string"
325 depends on CMDLINE_BOOL
326 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
327 help
328 On some platforms, there is currently no way for the boot loader to
329 pass arguments to the kernel. For these platforms, you can supply
330 some command-line options at build time by entering them here. In
331 most cases you will need to specify the root device here.
332
333if !44x || BROKEN
334source kernel/power/Kconfig
335endif
336
337config SECCOMP
338 bool "Enable seccomp to safely compute untrusted bytecode"
339 depends on PROC_FS
340 default y
341 help
342 This kernel feature is useful for number crunching applications
343 that may need to compute untrusted bytecode during their
344 execution. By using pipes or other transports made available to
345 the process as file descriptors supporting the read/write
346 syscalls, it's possible to isolate those applications in
347 their own address space using seccomp. Once seccomp is
348 enabled via /proc/<pid>/seccomp, it cannot be disabled
349 and the task is only allowed to execute a few safe syscalls
350 defined by each seccomp mode.
351
352 If unsure, say Y. Only embedded should say N here.
353
270429ba
SW
354config WANT_DEVICE_TREE
355 bool
356 default n
357
358config DEVICE_TREE
359 string "Static device tree source file"
360 depends on WANT_DEVICE_TREE
361 help
362 This specifies the device tree source (.dts) file to be
363 compiled and included when building the bootwrapper. If a
364 relative filename is given, then it will be relative to
365 arch/powerpc/boot/dts. If you are not using the bootwrapper,
366 or do not need to build a dts into the bootwrapper, this
367 field is ignored.
368
369 For example, this is required when building a cuImage target
370 for an older U-Boot, which cannot pass a device tree itself.
371 Such a kernel will not work with a newer U-Boot that tries to
372 pass a device tree (unless you tell it not to). If your U-Boot
373 does not mention a device tree in "help bootm", then use the
374 cuImage target and specify a device tree here. Otherwise, use
375 the uImage target and leave this field blank.
376
14cf11af
PM
377endmenu
378
379config ISA_DMA_API
380 bool
381 default y
382
383menu "Bus options"
384
385config ISA
386 bool "Support for ISA-bus hardware"
387 depends on PPC_PREP || PPC_CHRP
f9bd170a 388 select PPC_I8259
14cf11af
PM
389 help
390 Find out whether you have ISA slots on your motherboard. ISA is the
391 name of a bus system, i.e. the way the CPU talks to the other stuff
392 inside your box. If you have an Apple machine, say N here; if you
393 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
394 you have an embedded board, consult your board documentation.
395
5ac6da66
CL
396config ZONE_DMA
397 bool
398 default y
399
14cf11af
PM
400config GENERIC_ISA_DMA
401 bool
402 depends on PPC64 || POWER4 || 6xx && !CPM2
403 default y
404
25635c71
PM
405config PPC_INDIRECT_PCI
406 bool
407 depends on PCI
63dafe57 408 default y if 40x || 44x
25635c71
PM
409 default n
410
4a89f7fa
KG
411config PPC_INDIRECT_PCI_BE
412 bool
413 depends PPC_INDIRECT_PCI
414 default n
415
14cf11af
PM
416config EISA
417 bool
418
419config SBUS
420 bool
421
08264cbc
KG
422config FSL_SOC
423 bool
424
14cf11af
PM
425# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
426config MCA
427 bool
428
429config PCI
53158620 430 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
bed59275 431 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
d3c7ffab 432 || PPC_PS3
f21f49ea 433 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
53158620 434 && !PPC_85xx && !PPC_86xx
f21f49ea 435 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
14cf11af 436 default PCI_QSPAN if !4xx && !CPM2 && 8xx
df87ef55 437 select ARCH_SUPPORTS_MSI
14cf11af
PM
438 help
439 Find out whether your system includes a PCI bus. PCI is the name of
440 a bus system, i.e. the way the CPU talks to the other stuff inside
441 your box. If you say Y here, the kernel will include drivers and
442 infrastructure code to support PCI bus devices.
443
444config PCI_DOMAINS
36e23590
MW
445 def_bool PCI
446
447config PCI_SYSCALL
448 def_bool PCI
14cf11af 449
14cf11af
PM
450config PCI_QSPAN
451 bool "QSpan PCI"
452 depends on !4xx && !CPM2 && 8xx
f9bd170a 453 select PPC_I8259
14cf11af
PM
454 help
455 Say Y here if you have a system based on a Motorola 8xx-series
456 embedded processor with a QSPAN PCI interface, otherwise say N.
457
458config PCI_8260
459 bool
460 depends on PCI && 8260
25635c71 461 select PPC_INDIRECT_PCI
14cf11af
PM
462 default y
463
464config 8260_PCI9
4a3ecc62 465 bool "Enable workaround for MPC826x erratum PCI 9"
14cf11af
PM
466 depends on PCI_8260 && !ADS8272
467 default y
468
469choice
4a3ecc62 470 prompt "IDMA channel for PCI 9 workaround"
14cf11af
PM
471 depends on 8260_PCI9
472
473config 8260_PCI9_IDMA1
474 bool "IDMA1"
475
476config 8260_PCI9_IDMA2
477 bool "IDMA2"
478
479config 8260_PCI9_IDMA3
480 bool "IDMA3"
481
482config 8260_PCI9_IDMA4
483 bool "IDMA4"
484
485endchoice
486
bb53bb3d
JM
487source "drivers/pci/pcie/Kconfig"
488
14cf11af
PM
489source "drivers/pci/Kconfig"
490
491source "drivers/pcmcia/Kconfig"
492
493source "drivers/pci/hotplug/Kconfig"
494
495endmenu
496
497menu "Advanced setup"
498 depends on PPC32
499
500config ADVANCED_OPTIONS
501 bool "Prompt for advanced kernel configuration options"
502 help
503 This option will enable prompting for a variety of advanced kernel
504 configuration options. These options can cause the kernel to not
505 work if they are set incorrectly, but can be used to optimize certain
506 aspects of kernel memory management.
507
508 Unless you know what you are doing, say N here.
509
510comment "Default settings for advanced configuration options are used"
511 depends on !ADVANCED_OPTIONS
512
513config HIGHMEM_START_BOOL
514 bool "Set high memory pool address"
515 depends on ADVANCED_OPTIONS && HIGHMEM
516 help
517 This option allows you to set the base address of the kernel virtual
518 area used to map high memory pages. This can be useful in
519 optimizing the layout of kernel virtual memory.
520
521 Say N here unless you know what you are doing.
522
523config HIGHMEM_START
524 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
525 default "0xfe000000"
526
527config LOWMEM_SIZE_BOOL
528 bool "Set maximum low memory"
529 depends on ADVANCED_OPTIONS
530 help
531 This option allows you to set the maximum amount of memory which
532 will be used as "low memory", that is, memory which the kernel can
533 access directly, without having to set up a kernel virtual mapping.
534 This can be useful in optimizing the layout of kernel virtual
535 memory.
536
537 Say N here unless you know what you are doing.
538
539config LOWMEM_SIZE
540 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
541 default "0x30000000"
542
543config KERNEL_START_BOOL
544 bool "Set custom kernel base address"
545 depends on ADVANCED_OPTIONS
546 help
547 This option allows you to set the kernel virtual address at which
548 the kernel will map low memory (the kernel image will be linked at
549 this address). This can be useful in optimizing the virtual memory
550 layout of the system.
551
552 Say N here unless you know what you are doing.
553
554config KERNEL_START
555 hex "Virtual address of kernel base" if KERNEL_START_BOOL
556 default "0xc0000000"
557
558config TASK_SIZE_BOOL
559 bool "Set custom user task size"
560 depends on ADVANCED_OPTIONS
561 help
562 This option allows you to set the amount of virtual address space
563 allocated to user tasks. This can be useful in optimizing the
564 virtual memory layout of the system.
565
566 Say N here unless you know what you are doing.
567
568config TASK_SIZE
569 hex "Size of user task space" if TASK_SIZE_BOOL
570 default "0x80000000"
571
572config CONSISTENT_START_BOOL
573 bool "Set custom consistent memory pool address"
574 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
575 help
576 This option allows you to set the base virtual address
4b3f686d 577 of the consistent memory pool. This pool of virtual
14cf11af
PM
578 memory is used to make consistent memory allocations.
579
580config CONSISTENT_START
581 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
582 default "0xff100000" if NOT_COHERENT_CACHE
583
584config CONSISTENT_SIZE_BOOL
585 bool "Set custom consistent memory pool size"
586 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
587 help
4b3f686d 588 This option allows you to set the size of the
14cf11af
PM
589 consistent memory pool. This pool of virtual memory
590 is used to make consistent memory allocations.
591
592config CONSISTENT_SIZE
593 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
594 default "0x00200000" if NOT_COHERENT_CACHE
595
596config BOOT_LOAD_BOOL
597 bool "Set the boot link/load address"
598 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
599 help
600 This option allows you to set the initial load address of the zImage
601 or zImage.initrd file. This can be useful if you are on a board
602 which has a small amount of memory.
603
604 Say N here unless you know what you are doing.
605
606config BOOT_LOAD
607 hex "Link/load address for booting" if BOOT_LOAD_BOOL
608 default "0x00400000" if 40x || 8xx || 8260
609 default "0x01000000" if 44x
610 default "0x00800000"
611
612config PIN_TLB
613 bool "Pinned Kernel TLBs (860 ONLY)"
614 depends on ADVANCED_OPTIONS && 8xx
615endmenu
616
cabb5587
SR
617if PPC64
618config KERNEL_START
619 hex
eeb2d218 620 default "0xc000000000000000"
cabb5587
SR
621endif
622
14cf11af
PM
623source "net/Kconfig"
624
625source "drivers/Kconfig"
626
627source "fs/Kconfig"
628
629# XXX source "arch/ppc/8xx_io/Kconfig"
630
631# XXX source "arch/ppc/8260_io/Kconfig"
632
98658538
LY
633source "arch/powerpc/sysdev/qe_lib/Kconfig"
634
14cf11af
PM
635source "lib/Kconfig"
636
cd6b0762 637menu "Instrumentation Support"
98750261 638 depends on EXPERIMENTAL
cd6b0762 639
14cf11af
PM
640source "arch/powerpc/oprofile/Kconfig"
641
cd6b0762 642config KPROBES
87a7defb
AM
643 bool "Kprobes"
644 depends on !BOOKE && !4xx && KALLSYMS && MODULES
cd6b0762
PP
645 help
646 Kprobes allows you to trap at almost any kernel address and
647 execute a callback function. register_kprobe() establishes
648 a probepoint and specifies the callback. Kprobes is useful
649 for kernel debugging, non-intrusive instrumentation and testing.
650 If in doubt, say "N".
651endmenu
652
14cf11af
PM
653source "arch/powerpc/Kconfig.debug"
654
655source "security/Kconfig"
656
657config KEYS_COMPAT
658 bool
659 depends on COMPAT && KEYS
660 default y
661
662source "crypto/Kconfig"