blob: 8de5f9ff4ade1e8b36793ddb2f464c6d0113dc06 [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
Paul Mackerras14cf11a2005-09-26 16:04:21 +100069config PPC
70 bool
71 default y
72
73config EARLY_PRINTK
74 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110075 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +100076
77config COMPAT
78 bool
79 default y if PPC64
80
81config SYSVIPC_COMPAT
82 bool
83 depends on COMPAT && SYSVIPC
84 default y
85
86# All PPC32s use generic nvram driver through ppc_md
87config GENERIC_NVRAM
88 bool
89 default y if PPC32
90
91config SCHED_NO_NO_OMIT_FRAME_POINTER
92 bool
93 default y
94
95config ARCH_MAY_HAVE_PC_FDC
96 bool
Stephen Rothwellbed59272007-03-04 17:04:44 +110097 default !PPC_PSERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +100098
Kumar Gala08264cb2006-01-10 21:43:56 -060099config PPC_OF
100 def_bool y
101
102config PPC_UDBG_16550
103 bool
104 default n
105
Kumar Gala08264cb2006-01-10 21:43:56 -0600106config GENERIC_TBSYNC
107 bool
108 default y if PPC32 && SMP
109 default n
110
Al Viroe65e1fc2006-09-12 03:04:40 -0400111config AUDIT_ARCH
112 bool
113 default y
114
Jeremy Fitzhardinge73c9cea2006-12-08 03:30:41 -0800115config GENERIC_BUG
116 bool
117 default y
118 depends on BUG
119
Christoph Lameter30520862007-05-06 14:49:38 -0700120#
121# Powerpc uses the slab allocator to manage its ptes and the
122# page structs of ptes are used for splitting the page table
123# lock for configurations supporting more than SPLIT_PTLOCK_CPUS.
124#
125# In that special configuration the page structs of slabs are modified.
126# This setting disables the selection of SLUB as a slab allocator.
127#
128config ARCH_USES_SLAB_PAGE_STRUCT
129 bool
130 default y
131 depends on SPLIT_PTLOCK_CPUS <= NR_CPUS
132
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600133config DEFAULT_UIMAGE
134 bool
135 help
136 Used to allow a board to specify it wants a uImage built by default
137 default n
138
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000139menu "Processor support"
140choice
141 prompt "Processor Type"
142 depends on PPC32
143 default 6xx
144
Kumar Gala08264cb2006-01-10 21:43:56 -0600145config CLASSIC32
Grant Likely650f3282006-12-04 17:29:13 -0700146 bool "52xx/6xx/7xx/74xx"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000147 select PPC_FPU
Kumar Gala08264cb2006-01-10 21:43:56 -0600148 select 6xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000149 help
150 There are four families of PowerPC chips supported. The more common
151 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
152 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
153 embedded versions (403 and 405) and the high end 64 bit Power
154 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
Grant Likely650f3282006-12-04 17:29:13 -0700155
156 This option is the catch-all for 6xx types, including some of the
157 embedded versions. Unless there is see an option for the specific
158 chip family you are using, you want this option.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000159
Grant Likely650f3282006-12-04 17:29:13 -0700160 You do not want this if you are building a kernel for a 64 bit
161 IBM RS/6000 or an Apple G5, choose 6xx.
162
163 If unsure, select this option
164
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000165 Note that the kernel runs in 32-bit mode even on 64-bit chips.
166
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000167config PPC_82xx
168 bool "Freescale 82xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600169 select 6xx
170 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000171
172config PPC_83xx
173 bool "Freescale 83xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600174 select 6xx
175 select FSL_SOC
176 select 83xx
177 select PPC_FPU
Scott Wood270429b2007-04-17 09:24:51 +1000178 select WANT_DEVICE_TREE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000179
Becky Bruce63dafe52006-01-14 16:57:39 -0600180config PPC_85xx
181 bool "Freescale 85xx"
182 select E500
183 select FSL_SOC
184 select 85xx
Scott Wood4536b932007-04-27 03:09:01 +1000185 select WANT_DEVICE_TREE
Becky Bruce63dafe52006-01-14 16:57:39 -0600186
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500187config PPC_86xx
188 bool "Freescale 86xx"
189 select 6xx
190 select FSL_SOC
Jon Loeliger3e4e97f2007-03-07 14:48:45 -0600191 select FSL_PCIE
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500192 select PPC_FPU
193 select ALTIVEC
194 help
195 The Freescale E600 SoCs have 74xx cores.
196
Vitaly Bordug5902ebc2007-01-24 22:41:06 +0300197config PPC_8xx
198 bool "Freescale 8xx"
199 select FSL_SOC
200 select 8xx
201
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000202config 40x
203 bool "AMCC 40x"
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100204 select PPC_DCR_NATIVE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000205
206config 44x
207 bool "AMCC 44x"
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100208 select PPC_DCR_NATIVE
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
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000273config BOOKE
274 bool
275 depends on E200 || E500
276 default y
277
278config FSL_BOOKE
279 bool
280 depends on E200 || E500
281 default y
282
283config PTE_64BIT
284 bool
285 depends on 44x || E500
286 default y if 44x
287 default y if E500 && PHYS_64BIT
288
289config PHYS_64BIT
290 bool 'Large physical address support' if E500
291 depends on 44x || E500
Benjamin Herrenschmidt3d1ea8e2006-11-11 17:25:19 +1100292 select RESOURCES_64BIT
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000293 default y if 44x
294 ---help---
295 This option enables kernel support for larger than 32-bit physical
296 addresses. This features is not be available on all e500 cores.
297
298 If in doubt, say N here.
299
300config ALTIVEC
301 bool "AltiVec Support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600302 depends on CLASSIC32 || POWER4
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000303 ---help---
304 This option enables kernel support for the Altivec extensions to the
305 PowerPC processor. The kernel currently supports saving and restoring
306 altivec registers, and turning on the 'altivec enable' bit so user
307 processes can execute altivec instructions.
308
309 This option is only usefully if you have a processor that supports
310 altivec (G4, otherwise known as 74xx series), but does not have
311 any affect on a non-altivec cpu (it does, however add code to the
312 kernel).
313
314 If in doubt, say Y here.
315
316config SPE
317 bool "SPE Support"
318 depends on E200 || E500
Becky Bruce63dafe52006-01-14 16:57:39 -0600319 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000320 ---help---
321 This option enables kernel support for the Signal Processing
322 Extensions (SPE) to the PowerPC processor. The kernel currently
323 supports saving and restoring SPE registers, and turning on the
324 'spe enable' bit so user processes can execute SPE instructions.
325
326 This option is only useful if you have a processor that supports
327 SPE (e500, otherwise known as 85xx series), but does not have any
328 effect on a non-spe cpu (it does, however add code to the kernel).
329
330 If in doubt, say Y here.
331
332config PPC_STD_MMU
333 bool
334 depends on 6xx || POWER3 || POWER4 || PPC64
335 default y
336
337config PPC_STD_MMU_32
338 def_bool y
339 depends on PPC_STD_MMU && PPC32
340
Paul Mackerrasc6622f62006-02-24 10:06:59 +1100341config VIRT_CPU_ACCOUNTING
342 bool "Deterministic task and CPU time accounting"
343 depends on PPC64
344 default y
345 help
346 Select this option to enable more accurate task and CPU time
347 accounting. This is done by reading a CPU counter on each
348 kernel entry and exit and on transitions within the kernel
349 between system, softirq and hardirq state, so there is a
350 small performance impact. This also enables accounting of
351 stolen time on logically-partitioned systems running on
352 IBM POWER5-based machines.
353
354 If in doubt, say Y here.
355
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000356config SMP
357 depends on PPC_STD_MMU
358 bool "Symmetric multi-processing support"
359 ---help---
360 This enables support for systems with more than one CPU. If you have
361 a system with only one CPU, say N. If you have a system with more
362 than one CPU, say Y. Note that the kernel does not currently
363 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
364 since they have inadequate hardware support for multiprocessor
365 operation.
366
367 If you say N here, the kernel will run on single and multiprocessor
368 machines, but will use only one CPU of a multiprocessor machine. If
369 you say Y here, the kernel will run on single-processor machines.
370 On a single-processor machine, the kernel will run faster if you say
371 N here.
372
373 If you don't know what to do here, say N.
374
375config NR_CPUS
Olaf Heringe8a167a2005-12-01 21:10:10 +0100376 int "Maximum number of CPUs (2-128)"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000377 range 2 128
378 depends on SMP
379 default "32" if PPC64
380 default "4"
381
382config NOT_COHERENT_CACHE
383 bool
384 depends on 4xx || 8xx || E200
385 default y
386endmenu
387
388source "init/Kconfig"
389
Kumar Gala4330f5d2007-03-16 09:32:17 -0500390source "arch/powerpc/platforms/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000391
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000392menu "Kernel options"
393
394config HIGHMEM
395 bool "High memory support"
396 depends on PPC32
397
398source kernel/Kconfig.hz
399source kernel/Kconfig.preempt
400source "fs/Kconfig.binfmt"
401
402# We optimistically allocate largepages from the VM, so make the limit
403# large enough (16MB). This badly named config option is actually
404# max order + 1
405config FORCE_MAX_ZONEORDER
406 int
407 depends on PPC64
Mike Kravetz02864862005-11-07 13:48:59 -0800408 default "9" if PPC_64K_PAGES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000409 default "13"
410
411config MATH_EMULATION
412 bool "Math emulation"
Kumar Gala4d527192007-01-26 00:23:34 -0600413 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000414 ---help---
415 Some PowerPC chips designed for embedded applications do not have
416 a floating-point unit and therefore do not implement the
417 floating-point instructions in the PowerPC instruction set. If you
418 say Y here, the kernel will include code to emulate a floating-point
419 unit, which will allow programs that use floating-point
420 instructions to run.
421
422config IOMMU_VMERGE
423 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
424 depends on EXPERIMENTAL && PPC64
425 default n
426 help
427 Cause IO segments sent to a device for DMA to be merged virtually
428 by the IOMMU when they happen to have been allocated contiguously.
429 This doesn't add pressure to the IOMMU allocator. However, some
430 drivers don't support getting large merged segments coming back
431 from *_map_sg(). Say Y if you know the drivers you are using are
432 properly handling this case.
433
434config HOTPLUG_CPU
435 bool "Support for enabling/disabling CPUs"
436 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
437 ---help---
438 Say Y here to be able to disable and re-enable individual
439 CPUs at runtime on SMP machines.
440
441 Say N if you are unsure.
442
Yasunori Gotocc576372006-06-29 02:24:27 -0700443config ARCH_ENABLE_MEMORY_HOTPLUG
444 def_bool y
445
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000446config KEXEC
447 bool "kexec system call (EXPERIMENTAL)"
448 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
449 help
450 kexec is a system call that implements the ability to shutdown your
451 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400452 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000453 you can start any kernel with it, not just Linux.
454
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400455 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000456
457 It is an ongoing process to be certain the hardware in a machine
458 is properly shutdown, so do not be surprised if this code does not
459 initially work for you. It may help to enable device hotplugging
460 support. As of this writing the exact hardware interface is
461 strongly in flux, so no good recommendation can be made.
462
Haren Mynenie8625d462006-01-14 13:48:25 -0800463config CRASH_DUMP
Michael Ellermancd9c99d2006-03-10 15:01:08 +1100464 bool "Build a kdump crash kernel (EXPERIMENTAL)"
Haren Mynenie8625d462006-01-14 13:48:25 -0800465 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
466 help
467 Build a kernel suitable for use as a kdump capture kernel.
468 The kernel will be linked at a different address than normal, and
469 so can only be used for Kdump.
470
471 Don't change this unless you know what you are doing.
472
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000473config PPCBUG_NVRAM
474 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
475 default y if PPC_PREP
476
477config IRQ_ALL_CPUS
478 bool "Distribute interrupts on all CPUs by default"
479 depends on SMP && !MV64360
480 help
481 This option gives the kernel permission to distribute IRQs across
482 multiple CPUs. Saying N here will route all IRQs to the first
483 CPU. Generally saying Y is safe, although some problems have been
484 reported with SMP Power Macintoshes with this option enabled.
485
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700486config NUMA
487 bool "NUMA support"
488 depends on PPC64
489 default y if SMP && PPC_PSERIES
490
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700491config NODES_SHIFT
492 int
493 default "4"
494 depends on NEED_MULTIPLE_NODES
495
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000496config ARCH_SELECT_MEMORY_MODEL
497 def_bool y
498 depends on PPC64
499
500config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000501 def_bool y
502 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000503
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000504config ARCH_SPARSEMEM_ENABLE
505 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000506 depends on PPC64
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100507
508config ARCH_SPARSEMEM_DEFAULT
509 def_bool y
Benjamin Herrenschmidt78bde532007-02-13 11:46:06 +1100510 depends on (SMP && PPC_PSERIES) || PPC_PS3
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000511
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700512config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000513 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700514
515source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000516
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800517config ARCH_MEMORY_PROBE
518 def_bool y
519 depends on MEMORY_HOTPLUG
520
Andy Whitcroft75167952006-10-21 10:24:14 -0700521# Some NUMA nodes have memory ranges that span
522# other nodes. Even though a pfn is valid and
523# between a node's start and end pfns, it may not
524# reside on that node. See memmap_init_zone()
525# for details.
526config NODES_SPAN_OTHER_NODES
527 def_bool y
528 depends on NEED_MULTIPLE_NODES
529
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100530config PPC_64K_PAGES
531 bool "64k page size"
Benjamin Herrenschmidt863c84b2005-11-07 00:57:58 -0800532 depends on PPC64
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100533 help
534 This option changes the kernel logical page size to 64k. On machines
Kumar Gala98750262007-04-12 18:01:34 -0500535 without processor support for 64k pages, the kernel will simulate
536 them by loading each individual 4k page on demand transparently,
537 while on hardware with such support, it will be used to map
538 normal application pages.
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100539
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000540config SCHED_SMT
541 bool "SMT (Hyperthreading) scheduler support"
542 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000543 help
544 SMT scheduler support improves the CPU scheduler's decision making
545 when dealing with POWER5 cpus at a cost of slightly increased
546 overhead in some places. If unsure say N here.
547
548config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000549 bool "Support for device tree in /proc"
550 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000551 help
552 This option adds a device-tree directory under /proc which contains
553 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000554 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000555
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000556config CMDLINE_BOOL
557 bool "Default bootloader kernel arguments"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000558
559config CMDLINE
560 string "Initial kernel command string"
561 depends on CMDLINE_BOOL
562 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
563 help
564 On some platforms, there is currently no way for the boot loader to
565 pass arguments to the kernel. For these platforms, you can supply
566 some command-line options at build time by entering them here. In
567 most cases you will need to specify the root device here.
568
569if !44x || BROKEN
570source kernel/power/Kconfig
571endif
572
573config SECCOMP
574 bool "Enable seccomp to safely compute untrusted bytecode"
575 depends on PROC_FS
576 default y
577 help
578 This kernel feature is useful for number crunching applications
579 that may need to compute untrusted bytecode during their
580 execution. By using pipes or other transports made available to
581 the process as file descriptors supporting the read/write
582 syscalls, it's possible to isolate those applications in
583 their own address space using seccomp. Once seccomp is
584 enabled via /proc/<pid>/seccomp, it cannot be disabled
585 and the task is only allowed to execute a few safe syscalls
586 defined by each seccomp mode.
587
588 If unsure, say Y. Only embedded should say N here.
589
Scott Wood270429b2007-04-17 09:24:51 +1000590config WANT_DEVICE_TREE
591 bool
592 default n
593
594config DEVICE_TREE
595 string "Static device tree source file"
596 depends on WANT_DEVICE_TREE
597 help
598 This specifies the device tree source (.dts) file to be
599 compiled and included when building the bootwrapper. If a
600 relative filename is given, then it will be relative to
601 arch/powerpc/boot/dts. If you are not using the bootwrapper,
602 or do not need to build a dts into the bootwrapper, this
603 field is ignored.
604
605 For example, this is required when building a cuImage target
606 for an older U-Boot, which cannot pass a device tree itself.
607 Such a kernel will not work with a newer U-Boot that tries to
608 pass a device tree (unless you tell it not to). If your U-Boot
609 does not mention a device tree in "help bootm", then use the
610 cuImage target and specify a device tree here. Otherwise, use
611 the uImage target and leave this field blank.
612
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000613endmenu
614
615config ISA_DMA_API
616 bool
617 default y
618
619menu "Bus options"
620
621config ISA
622 bool "Support for ISA-bus hardware"
623 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000624 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000625 help
626 Find out whether you have ISA slots on your motherboard. ISA is the
627 name of a bus system, i.e. the way the CPU talks to the other stuff
628 inside your box. If you have an Apple machine, say N here; if you
629 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
630 you have an embedded board, consult your board documentation.
631
Christoph Lameter5ac6da62007-02-10 01:43:14 -0800632config ZONE_DMA
633 bool
634 default y
635
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000636config GENERIC_ISA_DMA
637 bool
638 depends on PPC64 || POWER4 || 6xx && !CPM2
639 default y
640
Paul Mackerras25635c72005-10-26 16:36:55 +1000641config PPC_INDIRECT_PCI
642 bool
643 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600644 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000645 default n
646
Kumar Gala4a89f7f2007-04-12 15:41:26 -0500647config PPC_INDIRECT_PCI_BE
648 bool
649 depends PPC_INDIRECT_PCI
650 default n
651
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000652config EISA
653 bool
654
655config SBUS
656 bool
657
Kumar Gala08264cb2006-01-10 21:43:56 -0600658config FSL_SOC
659 bool
660
Jon Loeliger3e4e97f2007-03-07 14:48:45 -0600661config FSL_PCIE
662 bool
663 depends on PPC_86xx
664
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000665# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
666config MCA
667 bool
668
669config PCI
Jon Loeliger53158622006-08-09 10:37:28 -0500670 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
Stephen Rothwellbed59272007-03-04 17:04:44 +1100671 || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
672 || MPC7448HPC2 || PPC_PS3
Jon Loeliger53158622006-08-09 10:37:28 -0500673 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
674 && !PPC_85xx && !PPC_86xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000675 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
676 default PCI_QSPAN if !4xx && !CPM2 && 8xx
677 help
678 Find out whether your system includes a PCI bus. PCI is the name of
679 a bus system, i.e. the way the CPU talks to the other stuff inside
680 your box. If you say Y here, the kernel will include drivers and
681 infrastructure code to support PCI bus devices.
682
683config PCI_DOMAINS
684 bool
685 default PCI
686
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000687config PCI_QSPAN
688 bool "QSpan PCI"
689 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000690 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000691 help
692 Say Y here if you have a system based on a Motorola 8xx-series
693 embedded processor with a QSPAN PCI interface, otherwise say N.
694
695config PCI_8260
696 bool
697 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000698 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000699 default y
700
701config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700702 bool "Enable workaround for MPC826x erratum PCI 9"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000703 depends on PCI_8260 && !ADS8272
704 default y
705
706choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700707 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000708 depends on 8260_PCI9
709
710config 8260_PCI9_IDMA1
711 bool "IDMA1"
712
713config 8260_PCI9_IDMA2
714 bool "IDMA2"
715
716config 8260_PCI9_IDMA3
717 bool "IDMA3"
718
719config 8260_PCI9_IDMA4
720 bool "IDMA4"
721
722endchoice
723
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500724source "drivers/pci/pcie/Kconfig"
725
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000726source "drivers/pci/Kconfig"
727
728source "drivers/pcmcia/Kconfig"
729
730source "drivers/pci/hotplug/Kconfig"
731
732endmenu
733
734menu "Advanced setup"
735 depends on PPC32
736
737config ADVANCED_OPTIONS
738 bool "Prompt for advanced kernel configuration options"
739 help
740 This option will enable prompting for a variety of advanced kernel
741 configuration options. These options can cause the kernel to not
742 work if they are set incorrectly, but can be used to optimize certain
743 aspects of kernel memory management.
744
745 Unless you know what you are doing, say N here.
746
747comment "Default settings for advanced configuration options are used"
748 depends on !ADVANCED_OPTIONS
749
750config HIGHMEM_START_BOOL
751 bool "Set high memory pool address"
752 depends on ADVANCED_OPTIONS && HIGHMEM
753 help
754 This option allows you to set the base address of the kernel virtual
755 area used to map high memory pages. This can be useful in
756 optimizing the layout of kernel virtual memory.
757
758 Say N here unless you know what you are doing.
759
760config HIGHMEM_START
761 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
762 default "0xfe000000"
763
764config LOWMEM_SIZE_BOOL
765 bool "Set maximum low memory"
766 depends on ADVANCED_OPTIONS
767 help
768 This option allows you to set the maximum amount of memory which
769 will be used as "low memory", that is, memory which the kernel can
770 access directly, without having to set up a kernel virtual mapping.
771 This can be useful in optimizing the layout of kernel virtual
772 memory.
773
774 Say N here unless you know what you are doing.
775
776config LOWMEM_SIZE
777 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
778 default "0x30000000"
779
780config KERNEL_START_BOOL
781 bool "Set custom kernel base address"
782 depends on ADVANCED_OPTIONS
783 help
784 This option allows you to set the kernel virtual address at which
785 the kernel will map low memory (the kernel image will be linked at
786 this address). This can be useful in optimizing the virtual memory
787 layout of the system.
788
789 Say N here unless you know what you are doing.
790
791config KERNEL_START
792 hex "Virtual address of kernel base" if KERNEL_START_BOOL
793 default "0xc0000000"
794
795config TASK_SIZE_BOOL
796 bool "Set custom user task size"
797 depends on ADVANCED_OPTIONS
798 help
799 This option allows you to set the amount of virtual address space
800 allocated to user tasks. This can be useful in optimizing the
801 virtual memory layout of the system.
802
803 Say N here unless you know what you are doing.
804
805config TASK_SIZE
806 hex "Size of user task space" if TASK_SIZE_BOOL
807 default "0x80000000"
808
809config CONSISTENT_START_BOOL
810 bool "Set custom consistent memory pool address"
811 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
812 help
813 This option allows you to set the base virtual address
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200814 of the consistent memory pool. This pool of virtual
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000815 memory is used to make consistent memory allocations.
816
817config CONSISTENT_START
818 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
819 default "0xff100000" if NOT_COHERENT_CACHE
820
821config CONSISTENT_SIZE_BOOL
822 bool "Set custom consistent memory pool size"
823 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
824 help
Matt LaPlante4b3f6862006-10-03 22:21:02 +0200825 This option allows you to set the size of the
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000826 consistent memory pool. This pool of virtual memory
827 is used to make consistent memory allocations.
828
829config CONSISTENT_SIZE
830 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
831 default "0x00200000" if NOT_COHERENT_CACHE
832
833config BOOT_LOAD_BOOL
834 bool "Set the boot link/load address"
835 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
836 help
837 This option allows you to set the initial load address of the zImage
838 or zImage.initrd file. This can be useful if you are on a board
839 which has a small amount of memory.
840
841 Say N here unless you know what you are doing.
842
843config BOOT_LOAD
844 hex "Link/load address for booting" if BOOT_LOAD_BOOL
845 default "0x00400000" if 40x || 8xx || 8260
846 default "0x01000000" if 44x
847 default "0x00800000"
848
849config PIN_TLB
850 bool "Pinned Kernel TLBs (860 ONLY)"
851 depends on ADVANCED_OPTIONS && 8xx
852endmenu
853
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000854if PPC64
855config KERNEL_START
856 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000857 default "0xc000000000000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000858endif
859
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000860source "net/Kconfig"
861
862source "drivers/Kconfig"
863
864source "fs/Kconfig"
865
866# XXX source "arch/ppc/8xx_io/Kconfig"
867
868# XXX source "arch/ppc/8260_io/Kconfig"
869
Li Yang98658532006-10-03 23:10:46 -0500870source "arch/powerpc/sysdev/qe_lib/Kconfig"
871
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000872source "lib/Kconfig"
873
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800874menu "Instrumentation Support"
Kumar Gala98750262007-04-12 18:01:34 -0500875 depends on EXPERIMENTAL
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800876
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000877source "arch/powerpc/oprofile/Kconfig"
878
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800879config KPROBES
880 bool "Kprobes (EXPERIMENTAL)"
Kumar Gala82090032007-02-06 22:55:19 -0600881 depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800882 help
883 Kprobes allows you to trap at almost any kernel address and
884 execute a callback function. register_kprobe() establishes
885 a probepoint and specifies the callback. Kprobes is useful
886 for kernel debugging, non-intrusive instrumentation and testing.
887 If in doubt, say "N".
888endmenu
889
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000890source "arch/powerpc/Kconfig.debug"
891
892source "security/Kconfig"
893
894config KEYS_COMPAT
895 bool
896 depends on COMPAT && KEYS
897 default y
898
899source "crypto/Kconfig"