blob: 6b8b83ebca7539c1d4bd8d5c8ef504bde6e3a27c [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
7config PPC64
8 bool "64-bit kernel"
9 default n
10 help
11 This option selects whether a 32-bit or a 64-bit kernel
12 will be built.
13
Johannes Berg17e638b2007-03-19 11:53:53 +010014config PPC_PM_NEEDS_RTC_LIB
15 bool
16 select RTC_LIB
17 default y if PM
18
Paul Mackerras14cf11a2005-09-26 16:04:21 +100019config PPC32
20 bool
21 default y if !PPC64
22
23config 64BIT
24 bool
25 default y if PPC64
26
27config PPC_MERGE
28 def_bool y
29
30config MMU
31 bool
32 default y
33
Paul Mackerras14cf11a2005-09-26 16:04:21 +100034config GENERIC_HARDIRQS
35 bool
36 default y
37
Ingo Molnar0d7012a2006-06-29 02:24:43 -070038config IRQ_PER_CPU
39 bool
40 default y
41
Paul Mackerras14cf11a2005-09-26 16:04:21 +100042config RWSEM_GENERIC_SPINLOCK
43 bool
44
45config RWSEM_XCHGADD_ALGORITHM
46 bool
47 default y
48
David Howellsf0d1b0b2006-12-08 02:37:49 -080049config ARCH_HAS_ILOG2_U32
50 bool
David Howellsef55d532006-12-08 02:37:53 -080051 default y
David Howellsf0d1b0b2006-12-08 02:37:49 -080052
53config ARCH_HAS_ILOG2_U64
54 bool
David Howellsef55d532006-12-08 02:37:53 -080055 default y if 64BIT
David Howellsf0d1b0b2006-12-08 02:37:49 -080056
Akinobu Mitae779b2f2006-03-26 01:39:33 -080057config GENERIC_HWEIGHT
58 bool
59 default y
60
Paul Mackerras14cf11a2005-09-26 16:04:21 +100061config GENERIC_CALIBRATE_DELAY
62 bool
63 default y
64
Jon Mason0a9cb462006-05-19 15:35:32 -050065config GENERIC_FIND_NEXT_BIT
66 bool
67 default y
68
Stephen Rothwellf057eac2007-07-15 23:40:05 -070069config ARCH_NO_VIRT_TO_BUS
70 def_bool PPC64
71
Paul Mackerras14cf11a2005-09-26 16:04:21 +100072config PPC
73 bool
74 default y
75
76config EARLY_PRINTK
77 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110078 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +100079
80config COMPAT
81 bool
82 default y if PPC64
83
84config SYSVIPC_COMPAT
85 bool
86 depends on COMPAT && SYSVIPC
87 default y
88
89# All PPC32s use generic nvram driver through ppc_md
90config GENERIC_NVRAM
91 bool
92 default y if PPC32
93
94config SCHED_NO_NO_OMIT_FRAME_POINTER
95 bool
96 default y
97
98config ARCH_MAY_HAVE_PC_FDC
99 bool
Stephen Rothwellbed59272007-03-04 17:04:44 +1100100 default !PPC_PSERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000101
Kumar Gala08264cb2006-01-10 21:43:56 -0600102config PPC_OF
103 def_bool y
104
105config PPC_UDBG_16550
106 bool
107 default n
108
Kumar Gala08264cb2006-01-10 21:43:56 -0600109config GENERIC_TBSYNC
110 bool
111 default y if PPC32 && SMP
112 default n
113
Al Viroe65e1fc2006-09-12 03:04:40 -0400114config AUDIT_ARCH
115 bool
116 default y
117
Jeremy Fitzhardinge73c9cea2006-12-08 03:30:41 -0800118config GENERIC_BUG
119 bool
120 default y
121 depends on BUG
122
Johannes Bergb3028872007-03-20 05:18:02 +1100123config SYS_SUPPORTS_APM_EMULATION
Kumar Gala58da10b2007-05-23 09:51:46 -0500124 default y if PMAC_APM_EMU
Johannes Bergb3028872007-03-20 05:18:02 +1100125 bool
126
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600127config DEFAULT_UIMAGE
128 bool
129 help
130 Used to allow a board to specify it wants a uImage built by default
131 default n
132
Johannes Berg543b9fd2007-05-03 22:31:38 +1000133config PPC64_SWSUSP
134 bool
135 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
136 default y
137
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000138menu "Processor support"
139choice
140 prompt "Processor Type"
141 depends on PPC32
142 default 6xx
143
Kumar Gala08264cb2006-01-10 21:43:56 -0600144config CLASSIC32
Grant Likely650f3282006-12-04 17:29:13 -0700145 bool "52xx/6xx/7xx/74xx"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000146 select PPC_FPU
Kumar Gala08264cb2006-01-10 21:43:56 -0600147 select 6xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000148 help
149 There are four families of PowerPC chips supported. The more common
150 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
151 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
152 embedded versions (403 and 405) and the high end 64 bit Power
153 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
Grant Likely650f3282006-12-04 17:29:13 -0700154
155 This option is the catch-all for 6xx types, including some of the
156 embedded versions. Unless there is see an option for the specific
157 chip family you are using, you want this option.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000158
Grant Likely650f3282006-12-04 17:29:13 -0700159 You do not want this if you are building a kernel for a 64 bit
160 IBM RS/6000 or an Apple G5, choose 6xx.
161
162 If unsure, select this option
163
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000164 Note that the kernel runs in 32-bit mode even on 64-bit chips.
165
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000166config PPC_82xx
167 bool "Freescale 82xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600168 select 6xx
169 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000170
171config PPC_83xx
172 bool "Freescale 83xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600173 select 6xx
174 select FSL_SOC
175 select 83xx
176 select PPC_FPU
Scott Wood270429b2007-04-17 09:24:51 +1000177 select WANT_DEVICE_TREE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000178
Becky Bruce63dafe52006-01-14 16:57:39 -0600179config PPC_85xx
180 bool "Freescale 85xx"
181 select E500
182 select FSL_SOC
183 select 85xx
Scott Wood4536b932007-04-27 03:09:01 +1000184 select WANT_DEVICE_TREE
Becky Bruce63dafe52006-01-14 16:57:39 -0600185
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500186config PPC_86xx
187 bool "Freescale 86xx"
188 select 6xx
189 select FSL_SOC
Jon Loeliger3e4e97f2007-03-07 14:48:45 -0600190 select FSL_PCIE
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500191 select PPC_FPU
192 select ALTIVEC
193 help
194 The Freescale E600 SoCs have 74xx cores.
195
Vitaly Bordug5902ebc2007-01-24 22:41:06 +0300196config PPC_8xx
197 bool "Freescale 8xx"
198 select FSL_SOC
199 select 8xx
200
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000201config 40x
202 bool "AMCC 40x"
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100203 select PPC_DCR_NATIVE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000204
205config 44x
206 bool "AMCC 44x"
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100207 select PPC_DCR_NATIVE
David Gibsonf6dfc802007-05-08 14:10:01 +1000208 select WANT_DEVICE_TREE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000209
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000210config E200
211 bool "Freescale e200"
212
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000213endchoice
214
215config POWER4_ONLY
216 bool "Optimize for POWER4"
Paul Mackerras187a0062005-10-06 12:49:05 +1000217 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000218 default n
219 ---help---
220 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
221 The resulting binary will not work on POWER3 or RS64 processors
222 when compiled with binutils 2.15 or later.
223
224config POWER3
225 bool
Paul Mackerras187a0062005-10-06 12:49:05 +1000226 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000227 default y if !POWER4_ONLY
228
229config POWER4
Paul Mackerras187a0062005-10-06 12:49:05 +1000230 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000231 def_bool y
232
Kumar Gala08264cb2006-01-10 21:43:56 -0600233config 6xx
234 bool
235
236# this is temp to handle compat with arch=ppc
Vitaly Bordug5902ebc2007-01-24 22:41:06 +0300237config 8xx
238 bool
239
240# this is temp to handle compat with arch=ppc
Kumar Gala08264cb2006-01-10 21:43:56 -0600241config 83xx
242 bool
243
Becky Bruce63dafe52006-01-14 16:57:39 -0600244# this is temp to handle compat with arch=ppc
245config 85xx
246 bool
247
248config E500
249 bool
250
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000251config PPC_FPU
Paul Mackerras187a0062005-10-06 12:49:05 +1000252 bool
253 default y if PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000254
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100255config PPC_DCR_NATIVE
256 bool
257 default n
258
259config PPC_DCR_MMIO
260 bool
261 default n
262
263config PPC_DCR
264 bool
265 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
266 default y
267
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100268config PPC_OF_PLATFORM_PCI
269 bool
270 depends on PPC64 # not supported on 32 bits yet
271 default n
272
David Gibsonf6dfc802007-05-08 14:10:01 +1000273config 4xx
274 bool
275 depends on 40x || 44x
276 default y
277
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000278config BOOKE
279 bool
David Gibsonf6dfc802007-05-08 14:10:01 +1000280 depends on E200 || E500 || 44x
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000281 default y
282
283config FSL_BOOKE
284 bool
285 depends on E200 || E500
286 default y
287
288config PTE_64BIT
289 bool
290 depends on 44x || E500
291 default y if 44x
292 default y if E500 && PHYS_64BIT
293
294config PHYS_64BIT
295 bool 'Large physical address support' if E500
296 depends on 44x || E500
Benjamin Herrenschmidt3d1ea8e2006-11-11 17:25:19 +1100297 select RESOURCES_64BIT
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000298 default y if 44x
299 ---help---
300 This option enables kernel support for larger than 32-bit physical
301 addresses. This features is not be available on all e500 cores.
302
303 If in doubt, say N here.
304
305config ALTIVEC
306 bool "AltiVec Support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600307 depends on CLASSIC32 || POWER4
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000308 ---help---
309 This option enables kernel support for the Altivec extensions to the
310 PowerPC processor. The kernel currently supports saving and restoring
311 altivec registers, and turning on the 'altivec enable' bit so user
312 processes can execute altivec instructions.
313
314 This option is only usefully if you have a processor that supports
315 altivec (G4, otherwise known as 74xx series), but does not have
316 any affect on a non-altivec cpu (it does, however add code to the
317 kernel).
318
319 If in doubt, say Y here.
320
321config SPE
322 bool "SPE Support"
323 depends on E200 || E500
Becky Bruce63dafe52006-01-14 16:57:39 -0600324 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000325 ---help---
326 This option enables kernel support for the Signal Processing
327 Extensions (SPE) to the PowerPC processor. The kernel currently
328 supports saving and restoring SPE registers, and turning on the
329 'spe enable' bit so user processes can execute SPE instructions.
330
331 This option is only useful if you have a processor that supports
332 SPE (e500, otherwise known as 85xx series), but does not have any
333 effect on a non-spe cpu (it does, however add code to the kernel).
334
335 If in doubt, say Y here.
336
337config PPC_STD_MMU
338 bool
339 depends on 6xx || POWER3 || POWER4 || PPC64
340 default y
341
342config PPC_STD_MMU_32
343 def_bool y
344 depends on PPC_STD_MMU && PPC32
345
Benjamin Herrenschmidtd0f13e32007-05-08 16:27:27 +1000346config PPC_MM_SLICES
347 bool
348 default y if HUGETLB_PAGE
349 default n
350
Paul Mackerrasc6622f62006-02-24 10:06:59 +1100351config VIRT_CPU_ACCOUNTING
352 bool "Deterministic task and CPU time accounting"
353 depends on PPC64
354 default y
355 help
356 Select this option to enable more accurate task and CPU time
357 accounting. This is done by reading a CPU counter on each
358 kernel entry and exit and on transitions within the kernel
359 between system, softirq and hardirq state, so there is a
360 small performance impact. This also enables accounting of
361 stolen time on logically-partitioned systems running on
362 IBM POWER5-based machines.
363
364 If in doubt, say Y here.
365
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000366config SMP
367 depends on PPC_STD_MMU
368 bool "Symmetric multi-processing support"
369 ---help---
370 This enables support for systems with more than one CPU. If you have
371 a system with only one CPU, say N. If you have a system with more
372 than one CPU, say Y. Note that the kernel does not currently
373 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
374 since they have inadequate hardware support for multiprocessor
375 operation.
376
377 If you say N here, the kernel will run on single and multiprocessor
378 machines, but will use only one CPU of a multiprocessor machine. If
379 you say Y here, the kernel will run on single-processor machines.
380 On a single-processor machine, the kernel will run faster if you say
381 N here.
382
383 If you don't know what to do here, say N.
384
385config NR_CPUS
Olaf Heringe8a167a2005-12-01 21:10:10 +0100386 int "Maximum number of CPUs (2-128)"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000387 range 2 128
388 depends on SMP
389 default "32" if PPC64
390 default "4"
391
392config NOT_COHERENT_CACHE
393 bool
394 depends on 4xx || 8xx || E200
395 default y
Dale Farnsworth06cce432007-05-12 10:57:35 +1000396
397config CONFIG_CHECK_CACHE_COHERENCY
398 bool
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000399endmenu
400
401source "init/Kconfig"
402
Kumar Gala4330f5d2007-03-16 09:32:17 -0500403source "arch/powerpc/platforms/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000404
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000405menu "Kernel options"
406
407config HIGHMEM
408 bool "High memory support"
409 depends on PPC32
410
411source kernel/Kconfig.hz
412source kernel/Kconfig.preempt
413source "fs/Kconfig.binfmt"
414
415# We optimistically allocate largepages from the VM, so make the limit
416# large enough (16MB). This badly named config option is actually
417# max order + 1
418config FORCE_MAX_ZONEORDER
419 int
420 depends on PPC64
Mike Kravetz02864862005-11-07 13:48:59 -0800421 default "9" if PPC_64K_PAGES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000422 default "13"
423
424config MATH_EMULATION
425 bool "Math emulation"
Kumar Gala4d527192007-01-26 00:23:34 -0600426 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000427 ---help---
428 Some PowerPC chips designed for embedded applications do not have
429 a floating-point unit and therefore do not implement the
430 floating-point instructions in the PowerPC instruction set. If you
431 say Y here, the kernel will include code to emulate a floating-point
432 unit, which will allow programs that use floating-point
433 instructions to run.
434
435config IOMMU_VMERGE
436 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
437 depends on EXPERIMENTAL && PPC64
438 default n
439 help
440 Cause IO segments sent to a device for DMA to be merged virtually
441 by the IOMMU when they happen to have been allocated contiguously.
442 This doesn't add pressure to the IOMMU allocator. However, some
443 drivers don't support getting large merged segments coming back
444 from *_map_sg(). Say Y if you know the drivers you are using are
445 properly handling this case.
446
447config HOTPLUG_CPU
448 bool "Support for enabling/disabling CPUs"
449 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
450 ---help---
451 Say Y here to be able to disable and re-enable individual
452 CPUs at runtime on SMP machines.
453
454 Say N if you are unsure.
455
Yasunori Gotocc576372006-06-29 02:24:27 -0700456config ARCH_ENABLE_MEMORY_HOTPLUG
457 def_bool y
458
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000459config KEXEC
460 bool "kexec system call (EXPERIMENTAL)"
Dale Farnsworthfd4ba7e2007-05-12 10:58:43 +1000461 depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000462 help
463 kexec is a system call that implements the ability to shutdown your
464 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400465 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000466 you can start any kernel with it, not just Linux.
467
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400468 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000469
470 It is an ongoing process to be certain the hardware in a machine
471 is properly shutdown, so do not be surprised if this code does not
472 initially work for you. It may help to enable device hotplugging
473 support. As of this writing the exact hardware interface is
474 strongly in flux, so no good recommendation can be made.
475
Haren Mynenie8625d462006-01-14 13:48:25 -0800476config CRASH_DUMP
Michael Ellermancd9c99d2006-03-10 15:01:08 +1100477 bool "Build a kdump crash kernel (EXPERIMENTAL)"
Haren Mynenie8625d462006-01-14 13:48:25 -0800478 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
479 help
480 Build a kernel suitable for use as a kdump capture kernel.
481 The kernel will be linked at a different address than normal, and
482 so can only be used for Kdump.
483
484 Don't change this unless you know what you are doing.
485
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000486config PPCBUG_NVRAM
487 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
488 default y if PPC_PREP
489
490config IRQ_ALL_CPUS
491 bool "Distribute interrupts on all CPUs by default"
492 depends on SMP && !MV64360
493 help
494 This option gives the kernel permission to distribute IRQs across
495 multiple CPUs. Saying N here will route all IRQs to the first
496 CPU. Generally saying Y is safe, although some problems have been
497 reported with SMP Power Macintoshes with this option enabled.
498
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700499config NUMA
500 bool "NUMA support"
501 depends on PPC64
502 default y if SMP && PPC_PSERIES
503
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700504config NODES_SHIFT
505 int
506 default "4"
507 depends on NEED_MULTIPLE_NODES
508
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000509config ARCH_SELECT_MEMORY_MODEL
510 def_bool y
511 depends on PPC64
512
513config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000514 def_bool y
515 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000516
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000517config ARCH_SPARSEMEM_ENABLE
518 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000519 depends on PPC64
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100520
521config ARCH_SPARSEMEM_DEFAULT
522 def_bool y
Benjamin Herrenschmidt78bde532007-02-13 11:46:06 +1100523 depends on (SMP && PPC_PSERIES) || PPC_PS3
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000524
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700525config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000526 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700527
528source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000529
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800530config ARCH_MEMORY_PROBE
531 def_bool y
532 depends on MEMORY_HOTPLUG
533
Andy Whitcroft75167952006-10-21 10:24:14 -0700534# Some NUMA nodes have memory ranges that span
535# other nodes. Even though a pfn is valid and
536# between a node's start and end pfns, it may not
537# reside on that node. See memmap_init_zone()
538# for details.
539config NODES_SPAN_OTHER_NODES
540 def_bool y
541 depends on NEED_MULTIPLE_NODES
542
Benjamin Herrenschmidt16c2d472007-05-08 16:27:28 +1000543config PPC_HAS_HASH_64K
544 bool
545 depends on PPC64
546 default n
547
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100548config PPC_64K_PAGES
549 bool "64k page size"
Benjamin Herrenschmidt863c84b2005-11-07 00:57:58 -0800550 depends on PPC64
Benjamin Herrenschmidt16c2d472007-05-08 16:27:28 +1000551 select PPC_HAS_HASH_64K
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100552 help
553 This option changes the kernel logical page size to 64k. On machines
Kumar Gala98750262007-04-12 18:01:34 -0500554 without processor support for 64k pages, the kernel will simulate
555 them by loading each individual 4k page on demand transparently,
556 while on hardware with such support, it will be used to map
557 normal application pages.
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100558
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000559config SCHED_SMT
560 bool "SMT (Hyperthreading) scheduler support"
561 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000562 help
563 SMT scheduler support improves the CPU scheduler's decision making
564 when dealing with POWER5 cpus at a cost of slightly increased
565 overhead in some places. If unsure say N here.
566
567config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000568 bool "Support for device tree in /proc"
569 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000570 help
571 This option adds a device-tree directory under /proc which contains
572 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000573 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000574
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000575config CMDLINE_BOOL
576 bool "Default bootloader kernel arguments"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000577
578config CMDLINE
579 string "Initial kernel command string"
580 depends on CMDLINE_BOOL
581 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
582 help
583 On some platforms, there is currently no way for the boot loader to
584 pass arguments to the kernel. For these platforms, you can supply
585 some command-line options at build time by entering them here. In
586 most cases you will need to specify the root device here.
587
588if !44x || BROKEN
589source kernel/power/Kconfig
590endif
591
592config SECCOMP
593 bool "Enable seccomp to safely compute untrusted bytecode"
594 depends on PROC_FS
595 default y
596 help
597 This kernel feature is useful for number crunching applications
598 that may need to compute untrusted bytecode during their
599 execution. By using pipes or other transports made available to
600 the process as file descriptors supporting the read/write
601 syscalls, it's possible to isolate those applications in
602 their own address space using seccomp. Once seccomp is
603 enabled via /proc/<pid>/seccomp, it cannot be disabled
604 and the task is only allowed to execute a few safe syscalls
605 defined by each seccomp mode.
606
607 If unsure, say Y. Only embedded should say N here.
608
Scott Wood270429b2007-04-17 09:24:51 +1000609config WANT_DEVICE_TREE
610 bool
611 default n
612
613config DEVICE_TREE
614 string "Static device tree source file"
615 depends on WANT_DEVICE_TREE
616 help
617 This specifies the device tree source (.dts) file to be
618 compiled and included when building the bootwrapper. If a
619 relative filename is given, then it will be relative to
620 arch/powerpc/boot/dts. If you are not using the bootwrapper,
621 or do not need to build a dts into the bootwrapper, this
622 field is ignored.
623
624 For example, this is required when building a cuImage target
625 for an older U-Boot, which cannot pass a device tree itself.
626 Such a kernel will not work with a newer U-Boot that tries to
627 pass a device tree (unless you tell it not to). If your U-Boot
628 does not mention a device tree in "help bootm", then use the
629 cuImage target and specify a device tree here. Otherwise, use
630 the uImage target and leave this field blank.
631
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000632endmenu
633
634config ISA_DMA_API
635 bool
636 default y
637
638menu "Bus options"
639
640config ISA
641 bool "Support for ISA-bus hardware"
642 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000643 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000644 help
645 Find out whether you have ISA slots on your motherboard. ISA is the
646 name of a bus system, i.e. the way the CPU talks to the other stuff
647 inside your box. If you have an Apple machine, say N here; if you
648 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
649 you have an embedded board, consult your board documentation.
650
Christoph Lameter5ac6da62007-02-10 01:43:14 -0800651config ZONE_DMA
652 bool
653 default y
654
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000655config GENERIC_ISA_DMA
656 bool
657 depends on PPC64 || POWER4 || 6xx && !CPM2
658 default y
659
Paul Mackerras25635c72005-10-26 16:36:55 +1000660config PPC_INDIRECT_PCI
661 bool
662 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600663 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000664 default n
665
Kumar Gala4a89f7f2007-04-12 15:41:26 -0500666config PPC_INDIRECT_PCI_BE
667 bool
668 depends PPC_INDIRECT_PCI
669 default n
670
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000671config EISA
672 bool
673
674config SBUS
675 bool
676
Kumar Gala08264cb2006-01-10 21:43:56 -0600677config FSL_SOC
678 bool
679
Jon Loeliger3e4e97f2007-03-07 14:48:45 -0600680config FSL_PCIE
681 bool
682 depends on PPC_86xx
683
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000684# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
685config MCA
686 bool
687
688config PCI
Jon Loeliger53158622006-08-09 10:37:28 -0500689 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
Stephen Rothwellbed59272007-03-04 17:04:44 +1100690 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
Josh Boyercb9e4d12007-05-08 07:28:38 +1000691 || MPC7448HPC2 || PPC_PS3 || PPC_HOLLY
Jon Loeliger53158622006-08-09 10:37:28 -0500692 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
693 && !PPC_85xx && !PPC_86xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000694 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
695 default PCI_QSPAN if !4xx && !CPM2 && 8xx
Michael Ellermandf87ef52007-05-08 12:58:34 +1000696 select ARCH_SUPPORTS_MSI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000697 help
698 Find out whether your system includes a PCI bus. PCI is the name of
699 a bus system, i.e. the way the CPU talks to the other stuff inside
700 your box. If you say Y here, the kernel will include drivers and
701 infrastructure code to support PCI bus devices.
702
703config PCI_DOMAINS
Matthew Wilcox36e23592007-07-10 10:54:40 -0600704 def_bool PCI
705
706config PCI_SYSCALL
707 def_bool PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000708
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000709config PCI_QSPAN
710 bool "QSpan PCI"
711 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000712 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000713 help
714 Say Y here if you have a system based on a Motorola 8xx-series
715 embedded processor with a QSPAN PCI interface, otherwise say N.
716
717config PCI_8260
718 bool
719 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000720 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000721 default y
722
723config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700724 bool "Enable workaround for MPC826x erratum PCI 9"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000725 depends on PCI_8260 && !ADS8272
726 default y
727
728choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700729 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000730 depends on 8260_PCI9
731
732config 8260_PCI9_IDMA1
733 bool "IDMA1"
734
735config 8260_PCI9_IDMA2
736 bool "IDMA2"
737
738config 8260_PCI9_IDMA3
739 bool "IDMA3"
740
741config 8260_PCI9_IDMA4
742 bool "IDMA4"
743
744endchoice
745
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500746source "drivers/pci/pcie/Kconfig"
747
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000748source "drivers/pci/Kconfig"
749
750source "drivers/pcmcia/Kconfig"
751
752source "drivers/pci/hotplug/Kconfig"
753
754endmenu
755
756menu "Advanced setup"
757 depends on PPC32
758
759config ADVANCED_OPTIONS
760 bool "Prompt for advanced kernel configuration options"
761 help
762 This option will enable prompting for a variety of advanced kernel
763 configuration options. These options can cause the kernel to not
764 work if they are set incorrectly, but can be used to optimize certain
765 aspects of kernel memory management.
766
767 Unless you know what you are doing, say N here.
768
769comment "Default settings for advanced configuration options are used"
770 depends on !ADVANCED_OPTIONS
771
772config HIGHMEM_START_BOOL
773 bool "Set high memory pool address"
774 depends on ADVANCED_OPTIONS && HIGHMEM
775 help
776 This option allows you to set the base address of the kernel virtual
777 area used to map high memory pages. This can be useful in
778 optimizing the layout of kernel virtual memory.
779
780 Say N here unless you know what you are doing.
781
782config HIGHMEM_START
783 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
784 default "0xfe000000"
785
786config LOWMEM_SIZE_BOOL
787 bool "Set maximum low memory"
788 depends on ADVANCED_OPTIONS
789 help
790 This option allows you to set the maximum amount of memory which
791 will be used as "low memory", that is, memory which the kernel can
792 access directly, without having to set up a kernel virtual mapping.
793 This can be useful in optimizing the layout of kernel virtual
794 memory.
795
796 Say N here unless you know what you are doing.
797
798config LOWMEM_SIZE
799 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
800 default "0x30000000"
801
802config KERNEL_START_BOOL
803 bool "Set custom kernel base address"
804 depends on ADVANCED_OPTIONS
805 help
806 This option allows you to set the kernel virtual address at which
807 the kernel will map low memory (the kernel image will be linked at
808 this address). This can be useful in optimizing the virtual memory
809 layout of the system.
810
811 Say N here unless you know what you are doing.
812
813config KERNEL_START
814 hex "Virtual address of kernel base" if KERNEL_START_BOOL
815 default "0xc0000000"
816
817config TASK_SIZE_BOOL
818 bool "Set custom user task size"
819 depends on ADVANCED_OPTIONS
820 help
821 This option allows you to set the amount of virtual address space
822 allocated to user tasks. This can be useful in optimizing the
823 virtual memory layout of the system.
824
825 Say N here unless you know what you are doing.
826
827config TASK_SIZE
828 hex "Size of user task space" if TASK_SIZE_BOOL
829 default "0x80000000"
830
831config CONSISTENT_START_BOOL
832 bool "Set custom consistent memory pool address"
833 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
834 help
835 This option allows you to set the base virtual address
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200836 of the consistent memory pool. This pool of virtual
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000837 memory is used to make consistent memory allocations.
838
839config CONSISTENT_START
840 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
841 default "0xff100000" if NOT_COHERENT_CACHE
842
843config CONSISTENT_SIZE_BOOL
844 bool "Set custom consistent memory pool size"
845 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
846 help
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200847 This option allows you to set the size of the
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000848 consistent memory pool. This pool of virtual memory
849 is used to make consistent memory allocations.
850
851config CONSISTENT_SIZE
852 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
853 default "0x00200000" if NOT_COHERENT_CACHE
854
855config BOOT_LOAD_BOOL
856 bool "Set the boot link/load address"
857 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
858 help
859 This option allows you to set the initial load address of the zImage
860 or zImage.initrd file. This can be useful if you are on a board
861 which has a small amount of memory.
862
863 Say N here unless you know what you are doing.
864
865config BOOT_LOAD
866 hex "Link/load address for booting" if BOOT_LOAD_BOOL
867 default "0x00400000" if 40x || 8xx || 8260
868 default "0x01000000" if 44x
869 default "0x00800000"
870
871config PIN_TLB
872 bool "Pinned Kernel TLBs (860 ONLY)"
873 depends on ADVANCED_OPTIONS && 8xx
874endmenu
875
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000876if PPC64
877config KERNEL_START
878 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000879 default "0xc000000000000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000880endif
881
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000882source "net/Kconfig"
883
884source "drivers/Kconfig"
885
886source "fs/Kconfig"
887
888# XXX source "arch/ppc/8xx_io/Kconfig"
889
890# XXX source "arch/ppc/8260_io/Kconfig"
891
Li Yang98658532006-10-03 23:10:46 -0500892source "arch/powerpc/sysdev/qe_lib/Kconfig"
893
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000894source "lib/Kconfig"
895
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800896menu "Instrumentation Support"
Kumar Gala98750262007-04-12 18:01:34 -0500897 depends on EXPERIMENTAL
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800898
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000899source "arch/powerpc/oprofile/Kconfig"
900
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800901config KPROBES
902 bool "Kprobes (EXPERIMENTAL)"
Kumar Gala82090032007-02-06 22:55:19 -0600903 depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800904 help
905 Kprobes allows you to trap at almost any kernel address and
906 execute a callback function. register_kprobe() establishes
907 a probepoint and specifies the callback. Kprobes is useful
908 for kernel debugging, non-intrusive instrumentation and testing.
909 If in doubt, say "N".
910endmenu
911
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000912source "arch/powerpc/Kconfig.debug"
913
914source "security/Kconfig"
915
916config KEYS_COMPAT
917 bool
918 depends on COMPAT && KEYS
919 default y
920
921source "crypto/Kconfig"