blob: 9e03991dc878ea808b14779787974ab07af28478 [file] [log] [blame]
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001# 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
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +10007source "arch/powerpc/platforms/Kconfig.cputype"
Johannes Berg17e638b2007-03-19 11:53:53 +01008
Paul Mackerras14cf11a2005-09-26 16:04:21 +10009config PPC32
10 bool
11 default y if !PPC64
12
13config 64BIT
14 bool
15 default y if PPC64
16
Stephen Rothwell2578bfa2007-09-21 10:16:20 +100017config WORD_SIZE
18 int
19 default 64 if PPC64
20 default 32 if !PPC64
21
Jeremy Fitzhardinge600715d2008-09-11 01:31:45 -070022config ARCH_PHYS_ADDR_T_64BIT
23 def_bool PPC64 || PHYS_64BIT
24
Paul Mackerras14cf11a2005-09-26 16:04:21 +100025config MMU
26 bool
27 default y
28
Tony Breedsaa3be5f2007-09-21 13:26:02 +100029config GENERIC_CMOS_UPDATE
30 def_bool y
31
Tony Breeds4a4cfe32007-09-22 07:35:52 +100032config GENERIC_TIME
33 def_bool y
34
35config GENERIC_TIME_VSYSCALL
36 def_bool y
37
Tony Breedsd831d0b2007-09-21 13:26:03 +100038config GENERIC_CLOCKEVENTS
39 def_bool y
40
Paul Mackerras14cf11a2005-09-26 16:04:21 +100041config GENERIC_HARDIRQS
42 bool
43 default y
44
Michael Ellerman8e27f4d2009-04-22 15:31:45 +000045config GENERIC_HARDIRQS_NO__DO_IRQ
46 bool
47 default y
48
travis@sgi.com988c3882008-01-30 23:27:58 +010049config HAVE_SETUP_PER_CPU_AREA
travis@sgi.comb32ef632008-01-30 13:32:51 +010050 def_bool PPC64
51
Ingo Molnar0d7012a2006-06-29 02:24:43 -070052config IRQ_PER_CPU
53 bool
54 default y
55
Christoph Hellwigfd3e0bb2008-04-17 14:35:00 +100056config STACKTRACE_SUPPORT
57 bool
58 default y
59
Arnd Bergmann01f4b8b2008-07-11 00:08:18 +100060config HAVE_LATENCYTOP_SUPPORT
61 def_bool y
62
Benjamin Herrenschmidt945feb12008-04-17 14:35:01 +100063config TRACE_IRQFLAGS_SUPPORT
64 bool
Benjamin Herrenschmidt945feb12008-04-17 14:35:01 +100065 default y
66
67config LOCKDEP_SUPPORT
68 bool
69 default y
70
Paul Mackerras14cf11a2005-09-26 16:04:21 +100071config RWSEM_GENERIC_SPINLOCK
72 bool
73
74config RWSEM_XCHGADD_ALGORITHM
75 bool
76 default y
77
Nick Piggin95c354f2008-01-30 13:31:20 +010078config GENERIC_LOCKBREAK
79 bool
80 default y
81 depends on SMP && PREEMPT
82
David Howellsf0d1b0b2006-12-08 02:37:49 -080083config ARCH_HAS_ILOG2_U32
84 bool
David Howellsef55d532006-12-08 02:37:53 -080085 default y
David Howellsf0d1b0b2006-12-08 02:37:49 -080086
87config ARCH_HAS_ILOG2_U64
88 bool
David Howellsef55d532006-12-08 02:37:53 -080089 default y if 64BIT
David Howellsf0d1b0b2006-12-08 02:37:49 -080090
Akinobu Mitae779b2f2006-03-26 01:39:33 -080091config GENERIC_HWEIGHT
92 bool
93 default y
94
Jon Mason0a9cb462006-05-19 15:35:32 -050095config GENERIC_FIND_NEXT_BIT
96 bool
97 default y
98
Anton Vorontsovb7ce3412008-04-11 23:06:36 +100099config GENERIC_GPIO
100 bool
101 help
102 Generic GPIO API support
103
Stephen Rothwellf057eac2007-07-15 23:40:05 -0700104config ARCH_NO_VIRT_TO_BUS
105 def_bool PPC64
106
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000107config PPC
108 bool
109 default y
Steven Rostedt2b79d692009-01-06 18:49:17 +0000110 select HAVE_FTRACE_MCOUNT_RECORD
111 select HAVE_DYNAMIC_FTRACE
Steven Rostedt606576c2008-10-06 19:06:12 -0400112 select HAVE_FUNCTION_TRACER
Steven Rostedt60ce8f72009-02-11 20:06:43 -0500113 select HAVE_FUNCTION_GRAPH_TRACER
Michael Buesch7444a722008-07-25 01:46:11 -0700114 select ARCH_WANT_OPTIONAL_GPIOLIB
Sam Ravnborgec7748b2008-02-09 10:46:40 +0100115 select HAVE_IDE
Benjamin Herrenschmidta1f242f2008-07-23 21:27:08 -0700116 select HAVE_IOREMAP_PROT
Johannes Berg58340a02008-07-25 01:45:33 -0700117 select HAVE_EFFICIENT_UNALIGNED_ACCESS
Mathieu Desnoyers3f550092008-02-02 15:10:35 -0500118 select HAVE_KPROBES
Jason Wessel17ce4522008-07-23 11:30:15 -0500119 select HAVE_ARCH_KGDB
Ananth N Mavinakayanahalli9edddaa2008-03-04 14:28:37 -0800120 select HAVE_KRETPROBES
Roland McGrathdec2b0d2008-07-27 16:53:20 +1000121 select HAVE_ARCH_TRACEHOOK
David S. Millerd9b2b2a2008-02-13 16:56:49 -0800122 select HAVE_LMB
FUJITA Tomonori46bab4e2009-08-04 19:08:26 +0000123 select HAVE_DMA_ATTRS
FUJITA Tomonori80d3e8a2009-08-04 19:08:28 +0000124 select HAVE_DMA_API_DEBUG
Jens Axboeb7d7a242008-06-26 11:22:13 +0200125 select USE_GENERIC_SMP_HELPERS if SMP
Steven Rostedt4e491d12008-05-14 23:49:44 -0400126 select HAVE_OPROFILE
Benjamin Herrenschmidtee6a0932009-01-14 14:14:00 +0100127 select HAVE_SYSCALL_WRAPPERS if PPC64
Paul Mackerrasc2e95c62009-06-12 21:10:41 +0000128 select GENERIC_ATOMIC64 if PPC32
Paul Mackerras105988c2009-06-17 21:50:04 +1000129 select HAVE_PERF_COUNTERS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000130
131config EARLY_PRINTK
132 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +1100133 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000134
135config COMPAT
136 bool
137 default y if PPC64
Roland McGrath01e31db2008-01-02 17:03:11 -0800138 select COMPAT_BINFMT_ELF
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000139
140config SYSVIPC_COMPAT
141 bool
142 depends on COMPAT && SYSVIPC
143 default y
144
145# All PPC32s use generic nvram driver through ppc_md
146config GENERIC_NVRAM
147 bool
148 default y if PPC32
149
Ingo Molnarae1e9132008-11-11 09:05:16 +0100150config SCHED_OMIT_FRAME_POINTER
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000151 bool
152 default y
153
154config ARCH_MAY_HAVE_PC_FDC
155 bool
Stephen Rothwellbed59272007-03-04 17:04:44 +1100156 default !PPC_PSERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000157
Kumar Gala08264cb2006-01-10 21:43:56 -0600158config PPC_OF
159 def_bool y
160
Stephen Rothwell97e873e2007-05-01 16:26:07 +1000161config OF
162 def_bool y
163
Kumar Gala08264cb2006-01-10 21:43:56 -0600164config PPC_UDBG_16550
165 bool
166 default n
167
Kumar Gala08264cb2006-01-10 21:43:56 -0600168config GENERIC_TBSYNC
169 bool
170 default y if PPC32 && SMP
171 default n
172
Al Viroe65e1fc2006-09-12 03:04:40 -0400173config AUDIT_ARCH
174 bool
175 default y
176
Jeremy Fitzhardinge73c9cea2006-12-08 03:30:41 -0800177config GENERIC_BUG
178 bool
179 default y
180 depends on BUG
181
Johannes Bergb3028872007-03-20 05:18:02 +1100182config SYS_SUPPORTS_APM_EMULATION
Kumar Gala58da10b2007-05-23 09:51:46 -0500183 default y if PMAC_APM_EMU
Johannes Bergb3028872007-03-20 05:18:02 +1100184 bool
185
David Gibson9fffb552009-04-30 15:25:53 +1000186config DTC
187 bool
188 default y
189
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600190config DEFAULT_UIMAGE
191 bool
192 help
193 Used to allow a board to specify it wants a uImage built by default
194 default n
195
Scott Woodb09c1642008-01-17 16:31:40 -0600196config REDBOOT
197 bool
198
Johannes Berg801e4062007-12-08 02:12:39 +0100199config HIBERNATE_32
Johannes Berg543b9fd2007-05-03 22:31:38 +1000200 bool
Johannes Berg801e4062007-12-08 02:12:39 +0100201 depends on (PPC_PMAC && !SMP) || BROKEN
202 default y
203
204config HIBERNATE_64
205 bool
206 depends on BROKEN || (PPC_PMAC64 && EXPERIMENTAL)
207 default y
208
209config ARCH_HIBERNATION_POSSIBLE
210 bool
211 depends on (PPC64 && HIBERNATE_64) || (PPC32 && HIBERNATE_32)
Johannes Berg543b9fd2007-05-03 22:31:38 +1000212 default y
213
Johannes Bergf4cb5702007-12-08 02:14:00 +0100214config ARCH_SUSPEND_POSSIBLE
215 def_bool y
Scott Woodd49747b2007-10-09 12:37:13 -0500216 depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx
Johannes Bergf4cb5702007-12-08 02:14:00 +0100217
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100218config PPC_DCR_NATIVE
219 bool
220 default n
221
222config PPC_DCR_MMIO
223 bool
224 default n
225
226config PPC_DCR
227 bool
228 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
229 default y
230
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100231config PPC_OF_PLATFORM_PCI
232 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100233 depends on PCI
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100234 depends on PPC64 # not supported on 32 bits yet
235 default n
236
Akinobu Mita6a11f752009-03-31 15:23:17 -0700237config ARCH_SUPPORTS_DEBUG_PAGEALLOC
238 def_bool y
239
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000240source "init/Kconfig"
241
Matt Helsleydc52ddc2008-10-18 20:27:21 -0700242source "kernel/Kconfig.freezer"
243
Benjamin Herrenschmidta2d2e1e2007-12-21 15:39:24 +1100244source "arch/powerpc/sysdev/Kconfig"
Kumar Gala4330f5d2007-03-16 09:32:17 -0500245source "arch/powerpc/platforms/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000246
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000247menu "Kernel options"
248
249config HIGHMEM
250 bool "High memory support"
251 depends on PPC32
252
Tony Breeds1ad74992007-09-21 13:26:03 +1000253source kernel/time/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000254source kernel/Kconfig.hz
255source kernel/Kconfig.preempt
256source "fs/Kconfig.binfmt"
257
Mel Gormanba72cb82007-11-28 16:21:13 -0800258config HUGETLB_PAGE_SIZE_VARIABLE
259 bool
260 depends on HUGETLB_PAGE
261 default y
262
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000263config MATH_EMULATION
264 bool "Math emulation"
Kumar Gala4d527192007-01-26 00:23:34 -0600265 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000266 ---help---
267 Some PowerPC chips designed for embedded applications do not have
268 a floating-point unit and therefore do not implement the
269 floating-point instructions in the PowerPC instruction set. If you
270 say Y here, the kernel will include code to emulate a floating-point
271 unit, which will allow programs that use floating-point
272 instructions to run.
273
Scott Wood5dd57a12007-09-18 15:29:35 -0500274config 8XX_MINIMAL_FPEMU
275 bool "Minimal math emulation for 8xx"
276 depends on 8xx && !MATH_EMULATION
277 help
278 Older arch/ppc kernels still emulated a few floating point
279 instructions such as load and store, even when full math
280 emulation is disabled. Say "Y" here if you want to preserve
281 this behavior.
282
283 It is recommended that you build a soft-float userspace instead.
284
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000285config IOMMU_VMERGE
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000286 bool "Enable IOMMU virtual merging"
287 depends on PPC64
288 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000289 help
290 Cause IO segments sent to a device for DMA to be merged virtually
291 by the IOMMU when they happen to have been allocated contiguously.
292 This doesn't add pressure to the IOMMU allocator. However, some
293 drivers don't support getting large merged segments coming back
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000294 from *_map_sg().
295
296 Most drivers don't have this problem; it is safe to say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000297
FUJITA Tomonorifb3475e2008-02-04 22:28:08 -0800298config IOMMU_HELPER
299 def_bool PPC64
300
Becky Bruceec3cf2e2009-05-14 12:42:28 +0000301config SWIOTLB
302 bool "SWIOTLB support"
303 default n
304 select IOMMU_HELPER
305 ---help---
306 Support for IO bounce buffering for systems without an IOMMU.
307 This allows us to DMA to the full physical address space on
308 platforms where the size of a physical address is larger
309 than the bus address. Not all platforms support this.
310
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000311config HOTPLUG_CPU
312 bool "Support for enabling/disabling CPUs"
313 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
314 ---help---
315 Say Y here to be able to disable and re-enable individual
316 CPUs at runtime on SMP machines.
317
318 Say N if you are unsure.
319
Yasunori Gotocc576372006-06-29 02:24:27 -0700320config ARCH_ENABLE_MEMORY_HOTPLUG
321 def_bool y
322
Badari Pulavartya99824f2008-02-05 00:10:18 -0800323config ARCH_HAS_WALK_MEMORY
324 def_bool y
325
Badari Pulavarty14824712008-02-05 00:10:17 -0800326config ARCH_ENABLE_MEMORY_HOTREMOVE
327 def_bool y
328
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000329config KEXEC
330 bool "kexec system call (EXPERIMENTAL)"
Geert Uytterhoevencb93d562009-04-02 06:25:41 +0000331 depends on PPC_BOOK3S && EXPERIMENTAL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000332 help
333 kexec is a system call that implements the ability to shutdown your
334 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400335 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000336 you can start any kernel with it, not just Linux.
337
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400338 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000339
340 It is an ongoing process to be certain the hardware in a machine
341 is properly shutdown, so do not be surprised if this code does not
342 initially work for you. It may help to enable device hotplugging
343 support. As of this writing the exact hardware interface is
344 strongly in flux, so no good recommendation can be made.
345
Haren Mynenie8625d462006-01-14 13:48:25 -0800346config CRASH_DUMP
Bernhard Walle3420b5d2008-06-27 03:02:15 +1000347 bool "Build a kdump crash kernel"
Mohan Kumar Mc6ac71a2009-01-06 00:23:01 +0000348 depends on PPC64 || 6xx
349 select RELOCATABLE if PPC64
Haren Mynenie8625d462006-01-14 13:48:25 -0800350 help
351 Build a kernel suitable for use as a kdump capture kernel.
Mohan Kumar M54622f12008-10-21 17:38:10 +0000352 The same kernel binary can be used as production kernel and dump
353 capture kernel.
Haren Mynenie8625d462006-01-14 13:48:25 -0800354
Manish Ahuja242f2712008-03-22 10:50:50 +1100355config PHYP_DUMP
356 bool "Hypervisor-assisted dump (EXPERIMENTAL)"
357 depends on PPC_PSERIES && EXPERIMENTAL
358 help
359 Hypervisor-assisted dump is meant to be a kdump replacement
360 offering robustness and speed not possible without system
Matt LaPlante692105b2009-01-26 11:12:25 +0100361 hypervisor assistance.
Manish Ahuja242f2712008-03-22 10:50:50 +1100362
363 If unsure, say "N"
364
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000365config PPCBUG_NVRAM
366 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
367 default y if PPC_PREP
368
369config IRQ_ALL_CPUS
370 bool "Distribute interrupts on all CPUs by default"
371 depends on SMP && !MV64360
372 help
373 This option gives the kernel permission to distribute IRQs across
374 multiple CPUs. Saying N here will route all IRQs to the first
375 CPU. Generally saying Y is safe, although some problems have been
376 reported with SMP Power Macintoshes with this option enabled.
377
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700378config NUMA
379 bool "NUMA support"
380 depends on PPC64
381 default y if SMP && PPC_PSERIES
382
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700383config NODES_SHIFT
384 int
385 default "4"
386 depends on NEED_MULTIPLE_NODES
387
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000388config ARCH_SELECT_MEMORY_MODEL
389 def_bool y
390 depends on PPC64
391
392config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000393 def_bool y
394 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000395
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000396config ARCH_SPARSEMEM_ENABLE
397 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000398 depends on PPC64
Andy Whitcroftd29eff72007-10-16 01:24:17 -0700399 select SPARSEMEM_VMEMMAP_ENABLE
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100400
401config ARCH_SPARSEMEM_DEFAULT
402 def_bool y
Benjamin Herrenschmidt78bde532007-02-13 11:46:06 +1100403 depends on (SMP && PPC_PSERIES) || PPC_PS3
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000404
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700405config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000406 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700407
408source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000409
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800410config ARCH_MEMORY_PROBE
411 def_bool y
412 depends on MEMORY_HOTPLUG
413
Andy Whitcroft75167952006-10-21 10:24:14 -0700414# Some NUMA nodes have memory ranges that span
415# other nodes. Even though a pfn is valid and
416# between a node's start and end pfns, it may not
417# reside on that node. See memmap_init_zone()
418# for details.
419config NODES_SPAN_OTHER_NODES
420 def_bool y
421 depends on NEED_MULTIPLE_NODES
422
Benjamin Herrenschmidt16c2d472007-05-08 16:27:28 +1000423config PPC_HAS_HASH_64K
424 bool
425 depends on PPC64
426 default n
427
Yuri Tikhonove1240122009-01-29 01:40:44 +0000428config STDBINUTILS
429 bool "Using standard binutils settings"
430 depends on 44x
431 default y
432 help
433 Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
434 Note, that kernel will be able to run only those applications,
435 which had been compiled using binutils later than 2.17.50.0.3 with
436 '-zmax-page-size' set to 256K (the default is 64K). Or, if using
437 the older binutils, you can patch them with a trivial patch, which
438 changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
439
Ilya Yanokca9153a2008-12-11 04:55:41 +0300440choice
441 prompt "Page size"
442 default PPC_4K_PAGES
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100443 help
Ilya Yanokca9153a2008-12-11 04:55:41 +0300444 Select the kernel logical page size. Increasing the page size
445 will reduce software overhead at each page boundary, allow
446 hardware prefetch mechanisms to be more effective, and allow
447 larger dma transfers increasing IO efficiency and reducing
448 overhead. However the utilization of memory will increase.
449 For example, each cached file will using a multiple of the
450 page size to hold its contents and the difference between the
451 end of file and the end of page is wasted.
452
453 Some dedicated systems, such as software raid serving with
454 accelerated calculations, have shown significant increases.
455
456 If you configure a 64 bit kernel for 64k pages but the
457 processor does not support them, then the kernel will simulate
458 them with 4k pages, loading them on demand, but with the
459 reduced software overhead and larger internal fragmentation.
460 For the 32 bit kernel, a large page option will not be offered
461 unless it is supported by the configured processor.
462
463 If unsure, choose 4K_PAGES.
464
465config PPC_4K_PAGES
466 bool "4k page size"
467
468config PPC_16K_PAGES
469 bool "16k page size" if 44x
470
471config PPC_64K_PAGES
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +0000472 bool "64k page size" if 44x || PPC_STD_MMU_64 || PPC_BOOK3E_64
Ilya Yanokca9153a2008-12-11 04:55:41 +0300473 select PPC_HAS_HASH_64K if PPC_STD_MMU_64
474
Yuri Tikhonove1240122009-01-29 01:40:44 +0000475config PPC_256K_PAGES
476 bool "256k page size" if 44x
Hugh Dickinsadf213c2009-04-06 11:01:15 +0000477 depends on !STDBINUTILS
Yuri Tikhonove1240122009-01-29 01:40:44 +0000478 help
479 Make the page size 256k.
480
481 As the ELF standard only requires alignment to support page
482 sizes up to 64k, you will need to compile all of your user
483 space applications with a non-standard binutils settings
484 (see the STDBINUTILS description for details).
485
486 Say N unless you know what you are doing.
487
Ilya Yanokca9153a2008-12-11 04:55:41 +0300488endchoice
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100489
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000490config FORCE_MAX_ZONEORDER
491 int "Maximum zone order"
Benjamin Herrenschmidt066c4b82009-07-21 15:25:53 +0000492 range 9 64 if PPC64 && PPC_64K_PAGES
493 default "9" if PPC64 && PPC_64K_PAGES
494 range 13 64 if PPC64 && !PPC_64K_PAGES
495 default "13" if PPC64 && !PPC_64K_PAGES
496 range 9 64 if PPC32 && PPC_16K_PAGES
497 default "9" if PPC32 && PPC_16K_PAGES
498 range 7 64 if PPC32 && PPC_64K_PAGES
499 default "7" if PPC32 && PPC_64K_PAGES
500 range 5 64 if PPC32 && PPC_256K_PAGES
501 default "5" if PPC32 && PPC_256K_PAGES
Johannes Bergebe40c52008-09-24 04:29:08 +0000502 range 11 64
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000503 default "11"
504 help
505 The kernel memory allocator divides physically contiguous memory
506 blocks into "zones", where each zone is a power of two number of
507 pages. This option selects the largest power of two that the kernel
508 keeps in the memory allocator. If you need to allocate very large
509 blocks of physically contiguous memory, then you may need to
510 increase this value.
511
512 This config option is actually maximum order plus one. For example,
513 a value of 11 means that the largest free memory block is 2^10 pages.
514
515 The page size is not necessarily 4KB. For example, on 64-bit
516 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
517 this in mind when choosing a value for this option.
518
Paul Mackerrasfa282372008-01-24 08:35:13 +1100519config PPC_SUBPAGE_PROT
520 bool "Support setting protections for 4k subpages"
Ilya Yanokca9153a2008-12-11 04:55:41 +0300521 depends on PPC_STD_MMU_64 && PPC_64K_PAGES
Paul Mackerrasfa282372008-01-24 08:35:13 +1100522 help
523 This option adds support for a system call to allow user programs
524 to set access permissions (read/write, readonly, or no access)
525 on the 4k subpages of each 64k page.
526
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000527config SCHED_SMT
528 bool "SMT (Hyperthreading) scheduler support"
529 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000530 help
531 SMT scheduler support improves the CPU scheduler's decision making
532 when dealing with POWER5 cpus at a cost of slightly increased
533 overhead in some places. If unsure say N here.
534
535config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000536 bool "Support for device tree in /proc"
537 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000538 help
539 This option adds a device-tree directory under /proc which contains
540 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000541 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000542
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000543config CMDLINE_BOOL
544 bool "Default bootloader kernel arguments"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000545
546config CMDLINE
547 string "Initial kernel command string"
548 depends on CMDLINE_BOOL
549 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
550 help
551 On some platforms, there is currently no way for the boot loader to
552 pass arguments to the kernel. For these platforms, you can supply
553 some command-line options at build time by entering them here. In
554 most cases you will need to specify the root device here.
555
Grant Likelyc356aa42008-07-09 09:41:52 -0600556config EXTRA_TARGETS
557 string "Additional default image types"
558 help
559 List additional targets to be built by the bootwrapper here (separated
560 by spaces). This is useful for targets that depend of device tree
561 files in the .dts directory.
562
563 Targets in this list will be build as part of the default build
564 target, or when the user does a 'make zImage' or a
565 'make zImage.initrd'.
566
567 If unsure, leave blank
568
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000569if !44x || BROKEN
Johannes Bergb28f5082008-01-15 23:17:00 -0500570config ARCH_WANTS_FREEZER_CONTROL
571 def_bool y
572 depends on ADB_PMU
573
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000574source kernel/power/Kconfig
575endif
576
577config SECCOMP
578 bool "Enable seccomp to safely compute untrusted bytecode"
579 depends on PROC_FS
580 default y
581 help
582 This kernel feature is useful for number crunching applications
583 that may need to compute untrusted bytecode during their
584 execution. By using pipes or other transports made available to
585 the process as file descriptors supporting the read/write
586 syscalls, it's possible to isolate those applications in
587 their own address space using seccomp. Once seccomp is
588 enabled via /proc/<pid>/seccomp, it cannot be disabled
589 and the task is only allowed to execute a few safe syscalls
590 defined by each seccomp mode.
591
592 If unsure, say Y. Only embedded should say N here.
593
594endmenu
595
596config ISA_DMA_API
597 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100598 default !PPC_ISERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000599
600menu "Bus options"
601
602config ISA
603 bool "Support for ISA-bus hardware"
604 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000605 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000606 help
607 Find out whether you have ISA slots on your motherboard. ISA is the
608 name of a bus system, i.e. the way the CPU talks to the other stuff
609 inside your box. If you have an Apple machine, say N here; if you
610 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
611 you have an embedded board, consult your board documentation.
612
Christoph Lameter5ac6da62007-02-10 01:43:14 -0800613config ZONE_DMA
614 bool
615 default y
616
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000617config GENERIC_ISA_DMA
618 bool
619 depends on PPC64 || POWER4 || 6xx && !CPM2
620 default y
621
Paul Mackerras25635c72005-10-26 16:36:55 +1000622config PPC_INDIRECT_PCI
623 bool
624 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600625 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000626 default n
627
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000628config EISA
629 bool
630
631config SBUS
632 bool
633
Kumar Gala08264cb2006-01-10 21:43:56 -0600634config FSL_SOC
635 bool
636
Roy Zang55c44992007-07-10 18:44:34 +0800637config FSL_PCI
638 bool
639 select PPC_INDIRECT_PCI
Kumar Galad0839112009-01-28 13:25:29 -0600640 select PCI_QUIRKS
Roy Zang55c44992007-07-10 18:44:34 +0800641
Stefan Roese2a706912008-03-26 22:39:50 +1100642config 4xx_SOC
643 bool
644
Anton Vorontsovacaa7aa2008-04-11 21:03:40 +0400645config FSL_LBC
646 bool
647 help
648 Freescale Localbus support
649
Anton Vorontsov83ff9dc2008-05-23 20:38:54 +0400650config FSL_GTM
651 bool
652 depends on PPC_83xx || QUICC_ENGINE || CPM2
653 help
654 Freescale General-purpose Timers support
655
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000656# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
657config MCA
658 bool
659
John Rigbyb5005632008-06-26 11:07:56 -0600660# Platforms that what PCI turned unconditionally just do select PCI
661# in their config node. Platforms that want to choose at config
662# time should select PPC_PCI_CHOICE
663config PPC_PCI_CHOICE
664 bool
665
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000666config PCI
John Rigbyb5005632008-06-26 11:07:56 -0600667 bool "PCI support" if PPC_PCI_CHOICE
668 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
Jon Loeliger53158622006-08-09 10:37:28 -0500669 && !PPC_85xx && !PPC_86xx
David Gibsonf21f49e2007-06-13 14:52:54 +1000670 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000671 default PCI_QSPAN if !4xx && !CPM2 && 8xx
Michael Ellermandf87ef52007-05-08 12:58:34 +1000672 select ARCH_SUPPORTS_MSI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000673 help
674 Find out whether your system includes a PCI bus. PCI is the name of
675 a bus system, i.e. the way the CPU talks to the other stuff inside
676 your box. If you say Y here, the kernel will include drivers and
677 infrastructure code to support PCI bus devices.
678
679config PCI_DOMAINS
Matthew Wilcox36e23592007-07-10 10:54:40 -0600680 def_bool PCI
681
682config PCI_SYSCALL
683 def_bool PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000684
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000685config PCI_QSPAN
686 bool "QSpan PCI"
687 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000688 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000689 help
690 Say Y here if you have a system based on a Motorola 8xx-series
691 embedded processor with a QSPAN PCI interface, otherwise say N.
692
693config PCI_8260
694 bool
695 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000696 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000697 default y
698
699config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700700 bool "Enable workaround for MPC826x erratum PCI 9"
Scott Woode00c5492007-09-14 15:41:56 -0500701 depends on PCI_8260 && !8272
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000702 default y
703
704choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700705 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000706 depends on 8260_PCI9
707
708config 8260_PCI9_IDMA1
709 bool "IDMA1"
710
711config 8260_PCI9_IDMA2
712 bool "IDMA2"
713
714config 8260_PCI9_IDMA3
715 bool "IDMA3"
716
717config 8260_PCI9_IDMA4
718 bool "IDMA4"
719
720endchoice
721
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500722source "drivers/pci/pcie/Kconfig"
723
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000724source "drivers/pci/Kconfig"
725
726source "drivers/pcmcia/Kconfig"
727
728source "drivers/pci/hotplug/Kconfig"
729
Zhang Weif1f389d2008-04-18 13:33:39 -0700730config HAS_RAPIDIO
731 bool
732 default n
733
734config RAPIDIO
735 bool "RapidIO support"
736 depends on HAS_RAPIDIO
737 help
738 If you say Y here, the kernel will include drivers and
739 infrastructure code to support RapidIO interconnect devices.
740
741source "drivers/rapidio/Kconfig"
742
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000743endmenu
744
745menu "Advanced setup"
746 depends on PPC32
747
748config ADVANCED_OPTIONS
749 bool "Prompt for advanced kernel configuration options"
750 help
751 This option will enable prompting for a variety of advanced kernel
752 configuration options. These options can cause the kernel to not
753 work if they are set incorrectly, but can be used to optimize certain
754 aspects of kernel memory management.
755
756 Unless you know what you are doing, say N here.
757
758comment "Default settings for advanced configuration options are used"
759 depends on !ADVANCED_OPTIONS
760
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000761config LOWMEM_SIZE_BOOL
762 bool "Set maximum low memory"
763 depends on ADVANCED_OPTIONS
764 help
765 This option allows you to set the maximum amount of memory which
766 will be used as "low memory", that is, memory which the kernel can
767 access directly, without having to set up a kernel virtual mapping.
768 This can be useful in optimizing the layout of kernel virtual
769 memory.
770
771 Say N here unless you know what you are doing.
772
773config LOWMEM_SIZE
774 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
775 default "0x30000000"
776
Trent Piepho96051462008-12-08 19:34:58 -0800777config LOWMEM_CAM_NUM_BOOL
778 bool "Set number of CAMs to use to map low memory"
779 depends on ADVANCED_OPTIONS && FSL_BOOKE
780 help
781 This option allows you to set the maximum number of CAM slots that
782 will be used to map low memory. There are a limited number of slots
783 available and even more limited number that will fit in the L1 MMU.
784 However, using more entries will allow mapping more low memory. This
785 can be useful in optimizing the layout of kernel virtual memory.
786
787 Say N here unless you know what you are doing.
788
789config LOWMEM_CAM_NUM
Josh Boyer9b71dbd2009-03-31 08:05:50 -0400790 depends on FSL_BOOKE
Trent Piepho96051462008-12-08 19:34:58 -0800791 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
792 default 3
793
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000794config RELOCATABLE
795 bool "Build a relocatable kernel (EXPERIMENTAL)"
796 depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
797 help
798 This builds a kernel image that is capable of running at the
799 location the kernel is loaded at (some alignment restrictions may
800 exist).
801
802 One use is for the kexec on panic case where the recovery kernel
803 must live at a different physical address than the primary
804 kernel.
805
806 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
807 it has been loaded at and the compile time physical addresses
808 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
809 setting can still be useful to bootwrappers that need to know the
810 load location of the kernel (eg. u-boot/mkimage).
811
812config PAGE_OFFSET_BOOL
813 bool "Set custom page offset address"
814 depends on ADVANCED_OPTIONS
815 help
816 This option allows you to set the kernel virtual address at which
817 the kernel will map low memory. This can be useful in optimizing
818 the virtual memory layout of the system.
819
820 Say N here unless you know what you are doing.
821
822config PAGE_OFFSET
823 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
824 default "0xc0000000"
825
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000826config KERNEL_START_BOOL
827 bool "Set custom kernel base address"
828 depends on ADVANCED_OPTIONS
829 help
830 This option allows you to set the kernel virtual address at which
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000831 the kernel will be loaded. Normally this should match PAGE_OFFSET
832 however there are times (like kdump) that one might not want them
833 to be the same.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000834
835 Say N here unless you know what you are doing.
836
837config KERNEL_START
838 hex "Virtual address of kernel base" if KERNEL_START_BOOL
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000839 default PAGE_OFFSET if PAGE_OFFSET_BOOL
840 default "0xc2000000" if CRASH_DUMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000841 default "0xc0000000"
842
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000843config PHYSICAL_START_BOOL
844 bool "Set physical address where the kernel is loaded"
845 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
846 help
847 This gives the physical address where the kernel is loaded.
848
849 Say N here unless you know what you are doing.
850
851config PHYSICAL_START
852 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
853 default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
854 default "0x00000000"
855
856config PHYSICAL_ALIGN
857 hex
Trent Piephoc8f35702008-12-08 19:34:59 -0800858 default "0x04000000" if FSL_BOOKE
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000859 help
860 This value puts the alignment restrictions on physical address
861 where kernel is loaded and run from. Kernel is compiled for an
862 address which meets above alignment restriction.
863
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000864config TASK_SIZE_BOOL
865 bool "Set custom user task size"
866 depends on ADVANCED_OPTIONS
867 help
868 This option allows you to set the amount of virtual address space
869 allocated to user tasks. This can be useful in optimizing the
870 virtual memory layout of the system.
871
872 Say N here unless you know what you are doing.
873
874config TASK_SIZE
875 hex "Size of user task space" if TASK_SIZE_BOOL
Kumar Gala4d9e55102007-10-11 13:40:21 -0500876 default "0x80000000" if PPC_PREP || PPC_8xx
877 default "0xc0000000"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000878
Benjamin Herrenschmidt84532a02009-05-27 13:33:14 +1000879config CONSISTENT_SIZE_BOOL
880 bool "Set custom consistent memory pool size"
881 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
882 help
883 This option allows you to set the size of the
884 consistent memory pool. This pool of virtual memory
885 is used to make consistent memory allocations.
886
887config CONSISTENT_SIZE
888 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
889 default "0x00200000" if NOT_COHERENT_CACHE
890
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000891config PIN_TLB
892 bool "Pinned Kernel TLBs (860 ONLY)"
893 depends on ADVANCED_OPTIONS && 8xx
894endmenu
895
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000896if PPC64
Paul Mackerras549e8152008-08-30 11:43:47 +1000897config RELOCATABLE
898 bool "Build a relocatable kernel"
899 help
900 This builds a kernel image that is capable of running anywhere
901 in the RMA (real memory area) at any 16k-aligned base address.
902 The kernel is linked as a position-independent executable (PIE)
903 and contains dynamic relocations which are processed early
904 in the bootup process.
905
906 One use is for the kexec on panic case where the recovery kernel
907 must live at a different physical address than the primary
908 kernel.
909
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000910config PAGE_OFFSET
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000911 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000912 default "0xc000000000000000"
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000913config KERNEL_START
914 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000915 default "0xc000000000000000"
916config PHYSICAL_START
917 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000918 default "0x00000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000919endif
920
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000921source "net/Kconfig"
922
923source "drivers/Kconfig"
924
925source "fs/Kconfig"
926
Li Yang98658532006-10-03 23:10:46 -0500927source "arch/powerpc/sysdev/qe_lib/Kconfig"
928
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000929source "lib/Kconfig"
930
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000931source "arch/powerpc/Kconfig.debug"
932
933source "security/Kconfig"
934
935config KEYS_COMPAT
936 bool
937 depends on COMPAT && KEYS
938 default y
939
940source "crypto/Kconfig"
Domen Puncer6f668282007-09-21 00:00:11 +1000941
942config PPC_CLOCK
943 bool
944 default n
David Brownell9483a572008-07-23 21:26:48 -0700945 select HAVE_CLK
Sylvain Munaut1088a202007-09-16 20:53:25 +1000946
947config PPC_LIB_RHEAP
948 bool
949
Hollis Blanchardbbf45ba2008-04-16 23:28:09 -0500950source "arch/powerpc/kvm/Kconfig"