blob: acda55199f550483ef9faa31c5fdd1f3d9ff6a10 [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
travis@sgi.com988c3882008-01-30 23:27:58 +010045config HAVE_SETUP_PER_CPU_AREA
travis@sgi.comb32ef632008-01-30 13:32:51 +010046 def_bool PPC64
47
Ingo Molnar0d7012a2006-06-29 02:24:43 -070048config IRQ_PER_CPU
49 bool
50 default y
51
Christoph Hellwigfd3e0bb2008-04-17 14:35:00 +100052config STACKTRACE_SUPPORT
53 bool
54 default y
55
Arnd Bergmann01f4b8b2008-07-11 00:08:18 +100056config HAVE_LATENCYTOP_SUPPORT
57 def_bool y
58
Benjamin Herrenschmidt945feb12008-04-17 14:35:01 +100059config TRACE_IRQFLAGS_SUPPORT
60 bool
61 depends on PPC64
62 default y
63
64config LOCKDEP_SUPPORT
65 bool
66 default y
67
Paul Mackerras14cf11a2005-09-26 16:04:21 +100068config RWSEM_GENERIC_SPINLOCK
69 bool
70
71config RWSEM_XCHGADD_ALGORITHM
72 bool
73 default y
74
Nick Piggin95c354f2008-01-30 13:31:20 +010075config GENERIC_LOCKBREAK
76 bool
77 default y
78 depends on SMP && PREEMPT
79
David Howellsf0d1b0b2006-12-08 02:37:49 -080080config ARCH_HAS_ILOG2_U32
81 bool
David Howellsef55d532006-12-08 02:37:53 -080082 default y
David Howellsf0d1b0b2006-12-08 02:37:49 -080083
84config ARCH_HAS_ILOG2_U64
85 bool
David Howellsef55d532006-12-08 02:37:53 -080086 default y if 64BIT
David Howellsf0d1b0b2006-12-08 02:37:49 -080087
Akinobu Mitae779b2f2006-03-26 01:39:33 -080088config GENERIC_HWEIGHT
89 bool
90 default y
91
Paul Mackerras14cf11a2005-09-26 16:04:21 +100092config GENERIC_CALIBRATE_DELAY
93 bool
94 default y
95
Jon Mason0a9cb462006-05-19 15:35:32 -050096config GENERIC_FIND_NEXT_BIT
97 bool
98 default y
99
Anton Vorontsovb7ce3412008-04-11 23:06:36 +1000100config GENERIC_GPIO
101 bool
102 help
103 Generic GPIO API support
104
Stephen Rothwellf057eac2007-07-15 23:40:05 -0700105config ARCH_NO_VIRT_TO_BUS
106 def_bool PPC64
107
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000108config PPC
109 bool
110 default y
Steven Rostedt606576c2008-10-06 19:06:12 -0400111 select HAVE_FUNCTION_TRACER
Michael Buesch7444a722008-07-25 01:46:11 -0700112 select ARCH_WANT_OPTIONAL_GPIOLIB
Sam Ravnborgec7748b2008-02-09 10:46:40 +0100113 select HAVE_IDE
Benjamin Herrenschmidta1f242f2008-07-23 21:27:08 -0700114 select HAVE_IOREMAP_PROT
Johannes Berg58340a02008-07-25 01:45:33 -0700115 select HAVE_EFFICIENT_UNALIGNED_ACCESS
Mathieu Desnoyers3f550092008-02-02 15:10:35 -0500116 select HAVE_KPROBES
Jason Wessel17ce4522008-07-23 11:30:15 -0500117 select HAVE_ARCH_KGDB
Ananth N Mavinakayanahalli9edddaa2008-03-04 14:28:37 -0800118 select HAVE_KRETPROBES
Roland McGrathdec2b0d2008-07-27 16:53:20 +1000119 select HAVE_ARCH_TRACEHOOK
David S. Millerd9b2b2a2008-02-13 16:56:49 -0800120 select HAVE_LMB
Takashi Iwai7ff86b02008-07-16 02:20:11 +0200121 select HAVE_DMA_ATTRS if PPC64
Jens Axboeb7d7a242008-06-26 11:22:13 +0200122 select USE_GENERIC_SMP_HELPERS if SMP
Steven Rostedt4e491d12008-05-14 23:49:44 -0400123 select HAVE_OPROFILE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000124
125config EARLY_PRINTK
126 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +1100127 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000128
129config COMPAT
130 bool
131 default y if PPC64
Roland McGrath01e31db2008-01-02 17:03:11 -0800132 select COMPAT_BINFMT_ELF
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000133
134config SYSVIPC_COMPAT
135 bool
136 depends on COMPAT && SYSVIPC
137 default y
138
139# All PPC32s use generic nvram driver through ppc_md
140config GENERIC_NVRAM
141 bool
142 default y if PPC32
143
Ingo Molnarae1e9132008-11-11 09:05:16 +0100144config SCHED_OMIT_FRAME_POINTER
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000145 bool
146 default y
147
148config ARCH_MAY_HAVE_PC_FDC
149 bool
Stephen Rothwellbed59272007-03-04 17:04:44 +1100150 default !PPC_PSERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000151
Kumar Gala08264cb2006-01-10 21:43:56 -0600152config PPC_OF
153 def_bool y
154
Stephen Rothwell97e873e2007-05-01 16:26:07 +1000155config OF
156 def_bool y
157
Kumar Gala08264cb2006-01-10 21:43:56 -0600158config PPC_UDBG_16550
159 bool
160 default n
161
Kumar Gala08264cb2006-01-10 21:43:56 -0600162config GENERIC_TBSYNC
163 bool
164 default y if PPC32 && SMP
165 default n
166
Al Viroe65e1fc2006-09-12 03:04:40 -0400167config AUDIT_ARCH
168 bool
169 default y
170
Jeremy Fitzhardinge73c9cea2006-12-08 03:30:41 -0800171config GENERIC_BUG
172 bool
173 default y
174 depends on BUG
175
Johannes Bergb3028872007-03-20 05:18:02 +1100176config SYS_SUPPORTS_APM_EMULATION
Kumar Gala58da10b2007-05-23 09:51:46 -0500177 default y if PMAC_APM_EMU
Johannes Bergb3028872007-03-20 05:18:02 +1100178 bool
179
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600180config DEFAULT_UIMAGE
181 bool
182 help
183 Used to allow a board to specify it wants a uImage built by default
184 default n
185
Scott Woodb09c1642008-01-17 16:31:40 -0600186config REDBOOT
187 bool
188
Johannes Berg801e4062007-12-08 02:12:39 +0100189config HIBERNATE_32
Johannes Berg543b9fd2007-05-03 22:31:38 +1000190 bool
Johannes Berg801e4062007-12-08 02:12:39 +0100191 depends on (PPC_PMAC && !SMP) || BROKEN
192 default y
193
194config HIBERNATE_64
195 bool
196 depends on BROKEN || (PPC_PMAC64 && EXPERIMENTAL)
197 default y
198
199config ARCH_HIBERNATION_POSSIBLE
200 bool
201 depends on (PPC64 && HIBERNATE_64) || (PPC32 && HIBERNATE_32)
Johannes Berg543b9fd2007-05-03 22:31:38 +1000202 default y
203
Johannes Bergf4cb5702007-12-08 02:14:00 +0100204config ARCH_SUSPEND_POSSIBLE
205 def_bool y
Scott Woodd49747b2007-10-09 12:37:13 -0500206 depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx
Johannes Bergf4cb5702007-12-08 02:14:00 +0100207
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100208config PPC_DCR_NATIVE
209 bool
210 default n
211
212config PPC_DCR_MMIO
213 bool
214 default n
215
216config PPC_DCR
217 bool
218 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
219 default y
220
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100221config PPC_OF_PLATFORM_PCI
222 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100223 depends on PCI
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100224 depends on PPC64 # not supported on 32 bits yet
225 default n
226
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000227source "init/Kconfig"
228
Matt Helsleydc52ddc2008-10-18 20:27:21 -0700229source "kernel/Kconfig.freezer"
230
Benjamin Herrenschmidta2d2e1e2007-12-21 15:39:24 +1100231source "arch/powerpc/sysdev/Kconfig"
Kumar Gala4330f5d2007-03-16 09:32:17 -0500232source "arch/powerpc/platforms/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000233
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000234menu "Kernel options"
235
236config HIGHMEM
237 bool "High memory support"
238 depends on PPC32
239
Tony Breeds1ad74992007-09-21 13:26:03 +1000240source kernel/time/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000241source kernel/Kconfig.hz
242source kernel/Kconfig.preempt
243source "fs/Kconfig.binfmt"
244
Mel Gormanba72cb82007-11-28 16:21:13 -0800245config HUGETLB_PAGE_SIZE_VARIABLE
246 bool
247 depends on HUGETLB_PAGE
248 default y
249
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000250config MATH_EMULATION
251 bool "Math emulation"
Kumar Gala4d527192007-01-26 00:23:34 -0600252 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000253 ---help---
254 Some PowerPC chips designed for embedded applications do not have
255 a floating-point unit and therefore do not implement the
256 floating-point instructions in the PowerPC instruction set. If you
257 say Y here, the kernel will include code to emulate a floating-point
258 unit, which will allow programs that use floating-point
259 instructions to run.
260
Scott Wood5dd57a12007-09-18 15:29:35 -0500261config 8XX_MINIMAL_FPEMU
262 bool "Minimal math emulation for 8xx"
263 depends on 8xx && !MATH_EMULATION
264 help
265 Older arch/ppc kernels still emulated a few floating point
266 instructions such as load and store, even when full math
267 emulation is disabled. Say "Y" here if you want to preserve
268 this behavior.
269
270 It is recommended that you build a soft-float userspace instead.
271
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000272config IOMMU_VMERGE
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000273 bool "Enable IOMMU virtual merging"
274 depends on PPC64
275 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000276 help
277 Cause IO segments sent to a device for DMA to be merged virtually
278 by the IOMMU when they happen to have been allocated contiguously.
279 This doesn't add pressure to the IOMMU allocator. However, some
280 drivers don't support getting large merged segments coming back
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000281 from *_map_sg().
282
283 Most drivers don't have this problem; it is safe to say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000284
FUJITA Tomonorifb3475e2008-02-04 22:28:08 -0800285config IOMMU_HELPER
286 def_bool PPC64
287
Becky Bruce15e09c02008-11-20 06:49:16 +0000288config PPC_NEED_DMA_SYNC_OPS
289 def_bool y
290 depends on NOT_COHERENT_CACHE
291
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000292config HOTPLUG_CPU
293 bool "Support for enabling/disabling CPUs"
294 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
295 ---help---
296 Say Y here to be able to disable and re-enable individual
297 CPUs at runtime on SMP machines.
298
299 Say N if you are unsure.
300
Yasunori Gotocc576372006-06-29 02:24:27 -0700301config ARCH_ENABLE_MEMORY_HOTPLUG
302 def_bool y
303
Badari Pulavartya99824f2008-02-05 00:10:18 -0800304config ARCH_HAS_WALK_MEMORY
305 def_bool y
306
Badari Pulavarty14824712008-02-05 00:10:17 -0800307config ARCH_ENABLE_MEMORY_HOTREMOVE
308 def_bool y
309
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000310config KEXEC
311 bool "kexec system call (EXPERIMENTAL)"
Dale Farnsworthfd4ba7e2007-05-12 10:58:43 +1000312 depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000313 help
314 kexec is a system call that implements the ability to shutdown your
315 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400316 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000317 you can start any kernel with it, not just Linux.
318
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400319 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000320
321 It is an ongoing process to be certain the hardware in a machine
322 is properly shutdown, so do not be surprised if this code does not
323 initially work for you. It may help to enable device hotplugging
324 support. As of this writing the exact hardware interface is
325 strongly in flux, so no good recommendation can be made.
326
Haren Mynenie8625d462006-01-14 13:48:25 -0800327config CRASH_DUMP
Bernhard Walle3420b5d2008-06-27 03:02:15 +1000328 bool "Build a kdump crash kernel"
Mohan Kumar Mc6ac71a2009-01-06 00:23:01 +0000329 depends on PPC64 || 6xx
330 select RELOCATABLE if PPC64
Haren Mynenie8625d462006-01-14 13:48:25 -0800331 help
332 Build a kernel suitable for use as a kdump capture kernel.
Mohan Kumar M54622f12008-10-21 17:38:10 +0000333 The same kernel binary can be used as production kernel and dump
334 capture kernel.
Haren Mynenie8625d462006-01-14 13:48:25 -0800335
Manish Ahuja242f2712008-03-22 10:50:50 +1100336config PHYP_DUMP
337 bool "Hypervisor-assisted dump (EXPERIMENTAL)"
338 depends on PPC_PSERIES && EXPERIMENTAL
339 help
340 Hypervisor-assisted dump is meant to be a kdump replacement
341 offering robustness and speed not possible without system
342 hypervisor assistence.
343
344 If unsure, say "N"
345
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000346config PPCBUG_NVRAM
347 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
348 default y if PPC_PREP
349
350config IRQ_ALL_CPUS
351 bool "Distribute interrupts on all CPUs by default"
352 depends on SMP && !MV64360
353 help
354 This option gives the kernel permission to distribute IRQs across
355 multiple CPUs. Saying N here will route all IRQs to the first
356 CPU. Generally saying Y is safe, although some problems have been
357 reported with SMP Power Macintoshes with this option enabled.
358
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700359config NUMA
360 bool "NUMA support"
361 depends on PPC64
362 default y if SMP && PPC_PSERIES
363
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700364config NODES_SHIFT
365 int
366 default "4"
367 depends on NEED_MULTIPLE_NODES
368
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000369config ARCH_SELECT_MEMORY_MODEL
370 def_bool y
371 depends on PPC64
372
373config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000374 def_bool y
375 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000376
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000377config ARCH_SPARSEMEM_ENABLE
378 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000379 depends on PPC64
Andy Whitcroftd29eff72007-10-16 01:24:17 -0700380 select SPARSEMEM_VMEMMAP_ENABLE
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100381
382config ARCH_SPARSEMEM_DEFAULT
383 def_bool y
Benjamin Herrenschmidt78bde532007-02-13 11:46:06 +1100384 depends on (SMP && PPC_PSERIES) || PPC_PS3
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000385
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700386config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000387 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700388
389source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000390
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800391config ARCH_MEMORY_PROBE
392 def_bool y
393 depends on MEMORY_HOTPLUG
394
Andy Whitcroft75167952006-10-21 10:24:14 -0700395# Some NUMA nodes have memory ranges that span
396# other nodes. Even though a pfn is valid and
397# between a node's start and end pfns, it may not
398# reside on that node. See memmap_init_zone()
399# for details.
400config NODES_SPAN_OTHER_NODES
401 def_bool y
402 depends on NEED_MULTIPLE_NODES
403
Benjamin Herrenschmidt16c2d472007-05-08 16:27:28 +1000404config PPC_HAS_HASH_64K
405 bool
406 depends on PPC64
407 default n
408
Ilya Yanokca9153a2008-12-11 04:55:41 +0300409choice
410 prompt "Page size"
411 default PPC_4K_PAGES
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100412 help
Ilya Yanokca9153a2008-12-11 04:55:41 +0300413 Select the kernel logical page size. Increasing the page size
414 will reduce software overhead at each page boundary, allow
415 hardware prefetch mechanisms to be more effective, and allow
416 larger dma transfers increasing IO efficiency and reducing
417 overhead. However the utilization of memory will increase.
418 For example, each cached file will using a multiple of the
419 page size to hold its contents and the difference between the
420 end of file and the end of page is wasted.
421
422 Some dedicated systems, such as software raid serving with
423 accelerated calculations, have shown significant increases.
424
425 If you configure a 64 bit kernel for 64k pages but the
426 processor does not support them, then the kernel will simulate
427 them with 4k pages, loading them on demand, but with the
428 reduced software overhead and larger internal fragmentation.
429 For the 32 bit kernel, a large page option will not be offered
430 unless it is supported by the configured processor.
431
432 If unsure, choose 4K_PAGES.
433
434config PPC_4K_PAGES
435 bool "4k page size"
436
437config PPC_16K_PAGES
438 bool "16k page size" if 44x
439
440config PPC_64K_PAGES
441 bool "64k page size" if 44x || PPC_STD_MMU_64
442 select PPC_HAS_HASH_64K if PPC_STD_MMU_64
443
444endchoice
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100445
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000446config FORCE_MAX_ZONEORDER
447 int "Maximum zone order"
Ilya Yanokca9153a2008-12-11 04:55:41 +0300448 range 9 64 if PPC_STD_MMU_64 && PPC_64K_PAGES
449 default "9" if PPC_STD_MMU_64 && PPC_64K_PAGES
450 range 13 64 if PPC_STD_MMU_64 && !PPC_64K_PAGES
451 default "13" if PPC_STD_MMU_64 && !PPC_64K_PAGES
452 range 9 64 if PPC_STD_MMU_32 && PPC_16K_PAGES
453 default "9" if PPC_STD_MMU_32 && PPC_16K_PAGES
454 range 7 64 if PPC_STD_MMU_32 && PPC_64K_PAGES
455 default "7" if PPC_STD_MMU_32 && PPC_64K_PAGES
Johannes Bergebe40c52008-09-24 04:29:08 +0000456 range 11 64
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000457 default "11"
458 help
459 The kernel memory allocator divides physically contiguous memory
460 blocks into "zones", where each zone is a power of two number of
461 pages. This option selects the largest power of two that the kernel
462 keeps in the memory allocator. If you need to allocate very large
463 blocks of physically contiguous memory, then you may need to
464 increase this value.
465
466 This config option is actually maximum order plus one. For example,
467 a value of 11 means that the largest free memory block is 2^10 pages.
468
469 The page size is not necessarily 4KB. For example, on 64-bit
470 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
471 this in mind when choosing a value for this option.
472
Paul Mackerrasfa282372008-01-24 08:35:13 +1100473config PPC_SUBPAGE_PROT
474 bool "Support setting protections for 4k subpages"
Ilya Yanokca9153a2008-12-11 04:55:41 +0300475 depends on PPC_STD_MMU_64 && PPC_64K_PAGES
Paul Mackerrasfa282372008-01-24 08:35:13 +1100476 help
477 This option adds support for a system call to allow user programs
478 to set access permissions (read/write, readonly, or no access)
479 on the 4k subpages of each 64k page.
480
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000481config SCHED_SMT
482 bool "SMT (Hyperthreading) scheduler support"
483 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000484 help
485 SMT scheduler support improves the CPU scheduler's decision making
486 when dealing with POWER5 cpus at a cost of slightly increased
487 overhead in some places. If unsure say N here.
488
489config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000490 bool "Support for device tree in /proc"
491 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000492 help
493 This option adds a device-tree directory under /proc which contains
494 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000495 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000496
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000497config CMDLINE_BOOL
498 bool "Default bootloader kernel arguments"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000499
500config CMDLINE
501 string "Initial kernel command string"
502 depends on CMDLINE_BOOL
503 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
504 help
505 On some platforms, there is currently no way for the boot loader to
506 pass arguments to the kernel. For these platforms, you can supply
507 some command-line options at build time by entering them here. In
508 most cases you will need to specify the root device here.
509
Grant Likelyc356aa42008-07-09 09:41:52 -0600510config EXTRA_TARGETS
511 string "Additional default image types"
512 help
513 List additional targets to be built by the bootwrapper here (separated
514 by spaces). This is useful for targets that depend of device tree
515 files in the .dts directory.
516
517 Targets in this list will be build as part of the default build
518 target, or when the user does a 'make zImage' or a
519 'make zImage.initrd'.
520
521 If unsure, leave blank
522
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000523if !44x || BROKEN
Johannes Bergb28f5082008-01-15 23:17:00 -0500524config ARCH_WANTS_FREEZER_CONTROL
525 def_bool y
526 depends on ADB_PMU
527
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000528source kernel/power/Kconfig
529endif
530
531config SECCOMP
532 bool "Enable seccomp to safely compute untrusted bytecode"
533 depends on PROC_FS
534 default y
535 help
536 This kernel feature is useful for number crunching applications
537 that may need to compute untrusted bytecode during their
538 execution. By using pipes or other transports made available to
539 the process as file descriptors supporting the read/write
540 syscalls, it's possible to isolate those applications in
541 their own address space using seccomp. Once seccomp is
542 enabled via /proc/<pid>/seccomp, it cannot be disabled
543 and the task is only allowed to execute a few safe syscalls
544 defined by each seccomp mode.
545
546 If unsure, say Y. Only embedded should say N here.
547
548endmenu
549
550config ISA_DMA_API
551 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100552 default !PPC_ISERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000553
554menu "Bus options"
555
556config ISA
557 bool "Support for ISA-bus hardware"
558 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000559 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000560 help
561 Find out whether you have ISA slots on your motherboard. ISA is the
562 name of a bus system, i.e. the way the CPU talks to the other stuff
563 inside your box. If you have an Apple machine, say N here; if you
564 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
565 you have an embedded board, consult your board documentation.
566
Christoph Lameter5ac6da62007-02-10 01:43:14 -0800567config ZONE_DMA
568 bool
569 default y
570
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000571config GENERIC_ISA_DMA
572 bool
573 depends on PPC64 || POWER4 || 6xx && !CPM2
574 default y
575
Paul Mackerras25635c72005-10-26 16:36:55 +1000576config PPC_INDIRECT_PCI
577 bool
578 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600579 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000580 default n
581
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000582config EISA
583 bool
584
585config SBUS
586 bool
587
Kumar Gala08264cb2006-01-10 21:43:56 -0600588config FSL_SOC
589 bool
590
Roy Zang55c44992007-07-10 18:44:34 +0800591config FSL_PCI
592 bool
593 select PPC_INDIRECT_PCI
594
Stefan Roese2a706912008-03-26 22:39:50 +1100595config 4xx_SOC
596 bool
597
Anton Vorontsovacaa7aa2008-04-11 21:03:40 +0400598config FSL_LBC
599 bool
600 help
601 Freescale Localbus support
602
Anton Vorontsov83ff9dc2008-05-23 20:38:54 +0400603config FSL_GTM
604 bool
605 depends on PPC_83xx || QUICC_ENGINE || CPM2
606 help
607 Freescale General-purpose Timers support
608
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000609# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
610config MCA
611 bool
612
John Rigbyb5005632008-06-26 11:07:56 -0600613# Platforms that what PCI turned unconditionally just do select PCI
614# in their config node. Platforms that want to choose at config
615# time should select PPC_PCI_CHOICE
616config PPC_PCI_CHOICE
617 bool
618
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000619config PCI
John Rigbyb5005632008-06-26 11:07:56 -0600620 bool "PCI support" if PPC_PCI_CHOICE
621 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
Jon Loeliger53158622006-08-09 10:37:28 -0500622 && !PPC_85xx && !PPC_86xx
David Gibsonf21f49e2007-06-13 14:52:54 +1000623 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000624 default PCI_QSPAN if !4xx && !CPM2 && 8xx
Michael Ellermandf87ef52007-05-08 12:58:34 +1000625 select ARCH_SUPPORTS_MSI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000626 help
627 Find out whether your system includes a PCI bus. PCI is the name of
628 a bus system, i.e. the way the CPU talks to the other stuff inside
629 your box. If you say Y here, the kernel will include drivers and
630 infrastructure code to support PCI bus devices.
631
632config PCI_DOMAINS
Matthew Wilcox36e23592007-07-10 10:54:40 -0600633 def_bool PCI
634
635config PCI_SYSCALL
636 def_bool PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000637
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000638config PCI_QSPAN
639 bool "QSpan PCI"
640 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000641 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000642 help
643 Say Y here if you have a system based on a Motorola 8xx-series
644 embedded processor with a QSPAN PCI interface, otherwise say N.
645
646config PCI_8260
647 bool
648 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000649 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000650 default y
651
652config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700653 bool "Enable workaround for MPC826x erratum PCI 9"
Scott Woode00c5492007-09-14 15:41:56 -0500654 depends on PCI_8260 && !8272
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000655 default y
656
657choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700658 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000659 depends on 8260_PCI9
660
661config 8260_PCI9_IDMA1
662 bool "IDMA1"
663
664config 8260_PCI9_IDMA2
665 bool "IDMA2"
666
667config 8260_PCI9_IDMA3
668 bool "IDMA3"
669
670config 8260_PCI9_IDMA4
671 bool "IDMA4"
672
673endchoice
674
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500675source "drivers/pci/pcie/Kconfig"
676
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000677source "drivers/pci/Kconfig"
678
679source "drivers/pcmcia/Kconfig"
680
681source "drivers/pci/hotplug/Kconfig"
682
Zhang Weif1f389d2008-04-18 13:33:39 -0700683config HAS_RAPIDIO
684 bool
685 default n
686
687config RAPIDIO
688 bool "RapidIO support"
689 depends on HAS_RAPIDIO
690 help
691 If you say Y here, the kernel will include drivers and
692 infrastructure code to support RapidIO interconnect devices.
693
694source "drivers/rapidio/Kconfig"
695
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000696endmenu
697
698menu "Advanced setup"
699 depends on PPC32
700
701config ADVANCED_OPTIONS
702 bool "Prompt for advanced kernel configuration options"
703 help
704 This option will enable prompting for a variety of advanced kernel
705 configuration options. These options can cause the kernel to not
706 work if they are set incorrectly, but can be used to optimize certain
707 aspects of kernel memory management.
708
709 Unless you know what you are doing, say N here.
710
711comment "Default settings for advanced configuration options are used"
712 depends on !ADVANCED_OPTIONS
713
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000714config LOWMEM_SIZE_BOOL
715 bool "Set maximum low memory"
716 depends on ADVANCED_OPTIONS
717 help
718 This option allows you to set the maximum amount of memory which
719 will be used as "low memory", that is, memory which the kernel can
720 access directly, without having to set up a kernel virtual mapping.
721 This can be useful in optimizing the layout of kernel virtual
722 memory.
723
724 Say N here unless you know what you are doing.
725
726config LOWMEM_SIZE
727 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
728 default "0x30000000"
729
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000730config RELOCATABLE
731 bool "Build a relocatable kernel (EXPERIMENTAL)"
732 depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
733 help
734 This builds a kernel image that is capable of running at the
735 location the kernel is loaded at (some alignment restrictions may
736 exist).
737
738 One use is for the kexec on panic case where the recovery kernel
739 must live at a different physical address than the primary
740 kernel.
741
742 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
743 it has been loaded at and the compile time physical addresses
744 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
745 setting can still be useful to bootwrappers that need to know the
746 load location of the kernel (eg. u-boot/mkimage).
747
748config PAGE_OFFSET_BOOL
749 bool "Set custom page offset address"
750 depends on ADVANCED_OPTIONS
751 help
752 This option allows you to set the kernel virtual address at which
753 the kernel will map low memory. This can be useful in optimizing
754 the virtual memory layout of the system.
755
756 Say N here unless you know what you are doing.
757
758config PAGE_OFFSET
759 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
760 default "0xc0000000"
761
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000762config KERNEL_START_BOOL
763 bool "Set custom kernel base address"
764 depends on ADVANCED_OPTIONS
765 help
766 This option allows you to set the kernel virtual address at which
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000767 the kernel will be loaded. Normally this should match PAGE_OFFSET
768 however there are times (like kdump) that one might not want them
769 to be the same.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000770
771 Say N here unless you know what you are doing.
772
773config KERNEL_START
774 hex "Virtual address of kernel base" if KERNEL_START_BOOL
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000775 default PAGE_OFFSET if PAGE_OFFSET_BOOL
776 default "0xc2000000" if CRASH_DUMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000777 default "0xc0000000"
778
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000779config PHYSICAL_START_BOOL
780 bool "Set physical address where the kernel is loaded"
781 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
782 help
783 This gives the physical address where the kernel is loaded.
784
785 Say N here unless you know what you are doing.
786
787config PHYSICAL_START
788 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
789 default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
790 default "0x00000000"
791
792config PHYSICAL_ALIGN
793 hex
794 default "0x10000000" if FSL_BOOKE
795 help
796 This value puts the alignment restrictions on physical address
797 where kernel is loaded and run from. Kernel is compiled for an
798 address which meets above alignment restriction.
799
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000800config TASK_SIZE_BOOL
801 bool "Set custom user task size"
802 depends on ADVANCED_OPTIONS
803 help
804 This option allows you to set the amount of virtual address space
805 allocated to user tasks. This can be useful in optimizing the
806 virtual memory layout of the system.
807
808 Say N here unless you know what you are doing.
809
810config TASK_SIZE
811 hex "Size of user task space" if TASK_SIZE_BOOL
Kumar Gala4d9e55102007-10-11 13:40:21 -0500812 default "0x80000000" if PPC_PREP || PPC_8xx
813 default "0xc0000000"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000814
815config CONSISTENT_START_BOOL
816 bool "Set custom consistent memory pool address"
817 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
818 help
819 This option allows you to set the base virtual address
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200820 of the consistent memory pool. This pool of virtual
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000821 memory is used to make consistent memory allocations.
822
823config CONSISTENT_START
824 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
Scott Woodccf0d682007-07-16 11:28:18 -0500825 default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000826 default "0xff100000" if NOT_COHERENT_CACHE
827
828config CONSISTENT_SIZE_BOOL
829 bool "Set custom consistent memory pool size"
830 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
831 help
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200832 This option allows you to set the size of the
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000833 consistent memory pool. This pool of virtual memory
834 is used to make consistent memory allocations.
835
836config CONSISTENT_SIZE
837 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
838 default "0x00200000" if NOT_COHERENT_CACHE
839
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000840config PIN_TLB
841 bool "Pinned Kernel TLBs (860 ONLY)"
842 depends on ADVANCED_OPTIONS && 8xx
843endmenu
844
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000845if PPC64
Paul Mackerras549e8152008-08-30 11:43:47 +1000846config RELOCATABLE
847 bool "Build a relocatable kernel"
848 help
849 This builds a kernel image that is capable of running anywhere
850 in the RMA (real memory area) at any 16k-aligned base address.
851 The kernel is linked as a position-independent executable (PIE)
852 and contains dynamic relocations which are processed early
853 in the bootup process.
854
855 One use is for the kexec on panic case where the recovery kernel
856 must live at a different physical address than the primary
857 kernel.
858
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000859config PAGE_OFFSET
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000860 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000861 default "0xc000000000000000"
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000862config KERNEL_START
863 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000864 default "0xc000000000000000"
865config PHYSICAL_START
866 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000867 default "0x00000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000868endif
869
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000870source "net/Kconfig"
871
872source "drivers/Kconfig"
873
874source "fs/Kconfig"
875
876# XXX source "arch/ppc/8xx_io/Kconfig"
877
878# XXX source "arch/ppc/8260_io/Kconfig"
879
Li Yang98658532006-10-03 23:10:46 -0500880source "arch/powerpc/sysdev/qe_lib/Kconfig"
881
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000882source "lib/Kconfig"
883
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000884source "arch/powerpc/Kconfig.debug"
885
886source "security/Kconfig"
887
888config KEYS_COMPAT
889 bool
890 depends on COMPAT && KEYS
891 default y
892
893source "crypto/Kconfig"
Domen Puncer6f668282007-09-21 00:00:11 +1000894
895config PPC_CLOCK
896 bool
897 default n
David Brownell9483a572008-07-23 21:26:48 -0700898 select HAVE_CLK
Sylvain Munaut1088a202007-09-16 20:53:25 +1000899
900config PPC_LIB_RHEAP
901 bool
902
Hollis Blanchardbbf45ba2008-04-16 23:28:09 -0500903source "arch/powerpc/kvm/Kconfig"