blob: a41d191bf1be7e2b8dc30b77228158e22846f9a1 [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
14config PPC32
15 bool
16 default y if !PPC64
17
18config 64BIT
19 bool
20 default y if PPC64
21
22config PPC_MERGE
23 def_bool y
24
25config MMU
26 bool
27 default y
28
Paul Mackerras14cf11a2005-09-26 16:04:21 +100029config GENERIC_HARDIRQS
30 bool
31 default y
32
Ingo Molnar0d7012a2006-06-29 02:24:43 -070033config IRQ_PER_CPU
34 bool
35 default y
36
Paul Mackerras14cf11a2005-09-26 16:04:21 +100037config RWSEM_GENERIC_SPINLOCK
38 bool
39
40config RWSEM_XCHGADD_ALGORITHM
41 bool
42 default y
43
Akinobu Mitae779b2f2006-03-26 01:39:33 -080044config GENERIC_HWEIGHT
45 bool
46 default y
47
Paul Mackerras14cf11a2005-09-26 16:04:21 +100048config GENERIC_CALIBRATE_DELAY
49 bool
50 default y
51
Jon Mason0a9cb462006-05-19 15:35:32 -050052config GENERIC_FIND_NEXT_BIT
53 bool
54 default y
55
Paul Mackerras14cf11a2005-09-26 16:04:21 +100056config PPC
57 bool
58 default y
59
60config EARLY_PRINTK
61 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110062 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +100063
64config COMPAT
65 bool
66 default y if PPC64
67
68config SYSVIPC_COMPAT
69 bool
70 depends on COMPAT && SYSVIPC
71 default y
72
73# All PPC32s use generic nvram driver through ppc_md
74config GENERIC_NVRAM
75 bool
76 default y if PPC32
77
78config SCHED_NO_NO_OMIT_FRAME_POINTER
79 bool
80 default y
81
82config ARCH_MAY_HAVE_PC_FDC
83 bool
84 default y
85
Kumar Gala08264cb2006-01-10 21:43:56 -060086config PPC_OF
87 def_bool y
88
89config PPC_UDBG_16550
90 bool
91 default n
92
Kumar Gala08264cb2006-01-10 21:43:56 -060093config GENERIC_TBSYNC
94 bool
95 default y if PPC32 && SMP
96 default n
97
Al Viroe65e1fc2006-09-12 03:04:40 -040098config AUDIT_ARCH
99 bool
100 default y
101
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600102config DEFAULT_UIMAGE
103 bool
104 help
105 Used to allow a board to specify it wants a uImage built by default
106 default n
107
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000108menu "Processor support"
109choice
110 prompt "Processor Type"
111 depends on PPC32
112 default 6xx
113
Kumar Gala08264cb2006-01-10 21:43:56 -0600114config CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000115 bool "6xx/7xx/74xx"
116 select PPC_FPU
Kumar Gala08264cb2006-01-10 21:43:56 -0600117 select 6xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000118 help
119 There are four families of PowerPC chips supported. The more common
120 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
121 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
122 embedded versions (403 and 405) and the high end 64 bit Power
123 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
124
125 Unless you are building a kernel for one of the embedded processor
126 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
127 Note that the kernel runs in 32-bit mode even on 64-bit chips.
128
129config PPC_52xx
130 bool "Freescale 52xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600131 select 6xx
132 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000133
134config PPC_82xx
135 bool "Freescale 82xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600136 select 6xx
137 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000138
139config PPC_83xx
140 bool "Freescale 83xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600141 select 6xx
142 select FSL_SOC
143 select 83xx
144 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000145
Becky Bruce63dafe52006-01-14 16:57:39 -0600146config PPC_85xx
147 bool "Freescale 85xx"
148 select E500
149 select FSL_SOC
150 select 85xx
151
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500152config PPC_86xx
153 bool "Freescale 86xx"
154 select 6xx
155 select FSL_SOC
156 select PPC_FPU
157 select ALTIVEC
158 help
159 The Freescale E600 SoCs have 74xx cores.
160
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000161config 40x
162 bool "AMCC 40x"
163
164config 44x
165 bool "AMCC 44x"
166
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000167config 8xx
168 bool "Freescale 8xx"
169
170config E200
171 bool "Freescale e200"
172
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000173endchoice
174
175config POWER4_ONLY
176 bool "Optimize for POWER4"
Paul Mackerras187a0062005-10-06 12:49:05 +1000177 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000178 default n
179 ---help---
180 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
181 The resulting binary will not work on POWER3 or RS64 processors
182 when compiled with binutils 2.15 or later.
183
184config POWER3
185 bool
Paul Mackerras187a0062005-10-06 12:49:05 +1000186 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000187 default y if !POWER4_ONLY
188
189config POWER4
Paul Mackerras187a0062005-10-06 12:49:05 +1000190 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000191 def_bool y
192
Kumar Gala08264cb2006-01-10 21:43:56 -0600193config 6xx
194 bool
195
196# this is temp to handle compat with arch=ppc
197config 83xx
198 bool
199
Becky Bruce63dafe52006-01-14 16:57:39 -0600200# this is temp to handle compat with arch=ppc
201config 85xx
202 bool
203
204config E500
205 bool
206
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000207config PPC_FPU
Paul Mackerras187a0062005-10-06 12:49:05 +1000208 bool
209 default y if PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000210
211config BOOKE
212 bool
213 depends on E200 || E500
214 default y
215
216config FSL_BOOKE
217 bool
218 depends on E200 || E500
219 default y
220
221config PTE_64BIT
222 bool
223 depends on 44x || E500
224 default y if 44x
225 default y if E500 && PHYS_64BIT
226
227config PHYS_64BIT
228 bool 'Large physical address support' if E500
229 depends on 44x || E500
230 default y if 44x
231 ---help---
232 This option enables kernel support for larger than 32-bit physical
233 addresses. This features is not be available on all e500 cores.
234
235 If in doubt, say N here.
236
237config ALTIVEC
238 bool "AltiVec Support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600239 depends on CLASSIC32 || POWER4
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000240 ---help---
241 This option enables kernel support for the Altivec extensions to the
242 PowerPC processor. The kernel currently supports saving and restoring
243 altivec registers, and turning on the 'altivec enable' bit so user
244 processes can execute altivec instructions.
245
246 This option is only usefully if you have a processor that supports
247 altivec (G4, otherwise known as 74xx series), but does not have
248 any affect on a non-altivec cpu (it does, however add code to the
249 kernel).
250
251 If in doubt, say Y here.
252
253config SPE
254 bool "SPE Support"
255 depends on E200 || E500
Becky Bruce63dafe52006-01-14 16:57:39 -0600256 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000257 ---help---
258 This option enables kernel support for the Signal Processing
259 Extensions (SPE) to the PowerPC processor. The kernel currently
260 supports saving and restoring SPE registers, and turning on the
261 'spe enable' bit so user processes can execute SPE instructions.
262
263 This option is only useful if you have a processor that supports
264 SPE (e500, otherwise known as 85xx series), but does not have any
265 effect on a non-spe cpu (it does, however add code to the kernel).
266
267 If in doubt, say Y here.
268
269config PPC_STD_MMU
270 bool
271 depends on 6xx || POWER3 || POWER4 || PPC64
272 default y
273
274config PPC_STD_MMU_32
275 def_bool y
276 depends on PPC_STD_MMU && PPC32
277
Paul Mackerrasc6622f62006-02-24 10:06:59 +1100278config VIRT_CPU_ACCOUNTING
279 bool "Deterministic task and CPU time accounting"
280 depends on PPC64
281 default y
282 help
283 Select this option to enable more accurate task and CPU time
284 accounting. This is done by reading a CPU counter on each
285 kernel entry and exit and on transitions within the kernel
286 between system, softirq and hardirq state, so there is a
287 small performance impact. This also enables accounting of
288 stolen time on logically-partitioned systems running on
289 IBM POWER5-based machines.
290
291 If in doubt, say Y here.
292
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000293config SMP
294 depends on PPC_STD_MMU
295 bool "Symmetric multi-processing support"
296 ---help---
297 This enables support for systems with more than one CPU. If you have
298 a system with only one CPU, say N. If you have a system with more
299 than one CPU, say Y. Note that the kernel does not currently
300 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
301 since they have inadequate hardware support for multiprocessor
302 operation.
303
304 If you say N here, the kernel will run on single and multiprocessor
305 machines, but will use only one CPU of a multiprocessor machine. If
306 you say Y here, the kernel will run on single-processor machines.
307 On a single-processor machine, the kernel will run faster if you say
308 N here.
309
310 If you don't know what to do here, say N.
311
312config NR_CPUS
Olaf Heringe8a167a2005-12-01 21:10:10 +0100313 int "Maximum number of CPUs (2-128)"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000314 range 2 128
315 depends on SMP
316 default "32" if PPC64
317 default "4"
318
319config NOT_COHERENT_CACHE
320 bool
321 depends on 4xx || 8xx || E200
322 default y
323endmenu
324
325source "init/Kconfig"
326
327menu "Platform support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600328 depends on PPC64 || CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000329
330choice
331 prompt "Machine type"
332 default PPC_MULTIPLATFORM
333
334config PPC_MULTIPLATFORM
335 bool "Generic desktop/server/laptop"
336 help
337 Select this option if configuring for an IBM pSeries or
338 RS/6000 machine, an Apple machine, or a PReP, CHRP,
339 Maple or Cell-based machine.
340
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000341config EMBEDDED6xx
342 bool "Embedded 6xx/7xx/7xxx-based board"
Zang Roy-r61911c5d56332006-06-13 15:07:15 +0800343 depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000344
345config APUS
346 bool "Amiga-APUS"
347 depends on PPC32 && BROKEN
348 help
349 Select APUS if configuring for a PowerUP Amiga.
350 More information is available at:
351 <http://linux-apus.sourceforge.net/>.
352endchoice
353
Li Yang98658532006-10-03 23:10:46 -0500354config QUICC_ENGINE
355 bool
356 depends on PPC_MPC836x || PPC_MPC832x
357 default y
358 help
359 The QUICC Engine (QE) is a new generation of communications
360 coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
361 Selecting this option means that you wish to build a kernel
362 for a machine with a QE coprocessor.
363
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000364config PPC_PSERIES
365 depends on PPC_MULTIPLATFORM && PPC64
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700366 bool "IBM pSeries & new (POWER5-based) iSeries"
Zang Roy-r6191172335932006-08-25 14:16:30 +1000367 select MPIC
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000368 select PPC_I8259
Paul Mackerras033ef332005-10-26 17:05:24 +1000369 select PPC_RTAS
370 select RTAS_ERROR_LOGGING
Paul Mackerras13b8a272006-01-10 16:19:05 +1100371 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000372 default y
373
Stephen Rothwella542dbd2006-09-25 13:49:58 +1000374config PPC_ISERIES
375 bool "IBM Legacy iSeries"
376 depends on PPC_MULTIPLATFORM && PPC64
377
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000378config PPC_CHRP
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700379 bool "Common Hardware Reference Platform (CHRP) based machines"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000380 depends on PPC_MULTIPLATFORM && PPC32
Zang Roy-r6191172335932006-08-25 14:16:30 +1000381 select MPIC
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000382 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000383 select PPC_INDIRECT_PCI
Paul Mackerras033ef332005-10-26 17:05:24 +1000384 select PPC_RTAS
Paul Mackerras830825d2005-10-26 17:16:38 +1000385 select PPC_MPC106
Paul Mackerras13b8a272006-01-10 16:19:05 +1100386 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000387 default y
388
Nicolas DETc37858d2006-11-05 12:57:16 +0100389config PPC_EFIKA
390 bool "bPlan Efika 5k2. MPC5200B based computer"
391 depends on PPC_MULTIPLATFORM && PPC32
392 select PPC_RTAS
393 select RTAS_PROC
394 select PPC_MPC52xx
395 default y
396
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000397config PPC_PMAC
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700398 bool "Apple PowerMac based machines"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000399 depends on PPC_MULTIPLATFORM
Zang Roy-r6191172335932006-08-25 14:16:30 +1000400 select MPIC
Paul Mackerras25635c72005-10-26 16:36:55 +1000401 select PPC_INDIRECT_PCI if PPC32
Paul Mackerrasb6a4ce52005-10-26 22:54:17 +1000402 select PPC_MPC106 if PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000403 default y
404
405config PPC_PMAC64
406 bool
407 depends on PPC_PMAC && POWER4
Zang Roy-r6191172335932006-08-25 14:16:30 +1000408 select MPIC
Paul Mackerras35499c02005-10-22 16:02:39 +1000409 select U3_DART
Benjamin Herrenschmidt1beb6a72005-12-14 13:10:10 +1100410 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100411 select GENERIC_TBSYNC
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000412 select PPC_970_NAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000413 default y
414
415config PPC_PREP
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700416 bool "PowerPC Reference Platform (PReP) based machines"
Paul Mackerras5be396b2005-11-14 17:31:55 +1100417 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
Zang Roy-r6191172335932006-08-25 14:16:30 +1000418 select MPIC
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000419 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000420 select PPC_INDIRECT_PCI
Paul Mackerras13b8a272006-01-10 16:19:05 +1100421 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000422 default y
423
424config PPC_MAPLE
425 depends on PPC_MULTIPLATFORM && PPC64
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700426 bool "Maple 970FX Evaluation Board"
Zang Roy-r6191172335932006-08-25 14:16:30 +1000427 select MPIC
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000428 select U3_DART
429 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100430 select GENERIC_TBSYNC
Paul Mackerras13b8a272006-01-10 16:19:05 +1100431 select PPC_UDBG_16550
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000432 select PPC_970_NAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000433 default n
434 help
435 This option enables support for the Maple 970FX Evaluation Board.
436 For more informations, refer to <http://www.970eval.com>
437
Olof Johansson1e768752006-09-06 14:42:08 -0500438config PPC_PASEMI
439 depends on PPC_MULTIPLATFORM && PPC64
440 bool "PA Semi SoC-based platforms"
441 default n
442 select MPIC
443 select PPC_UDBG_16550
444 select GENERIC_TBSYNC
445 help
446 This option enables support for PA Semi's PWRficient line
447 of SoC processors, including PA6T-1682M
448
Arnd Bergmannf3f66f52005-10-31 20:08:37 -0500449config PPC_CELL
Geoff Levandc01ea722006-06-19 20:33:28 +0200450 bool
451 default n
452
453config PPC_CELL_NATIVE
454 bool
455 select PPC_CELL
456 default n
457
458config PPC_IBM_CELL_BLADE
Andrew Mortonf127a2b2006-06-25 01:49:07 -0700459 bool "IBM Cell Blade"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000460 depends on PPC_MULTIPLATFORM && PPC64
Geoff Levandc01ea722006-06-19 20:33:28 +0200461 select PPC_CELL_NATIVE
Paul Mackerras033ef332005-10-26 17:05:24 +1000462 select PPC_RTAS
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500463 select MMIO_NVRAM
Paul Mackerras13b8a272006-01-10 16:19:05 +1100464 select PPC_UDBG_16550
Michael Ellerman94b60ec2006-06-23 18:20:22 +1000465 select UDBG_RTAS_CONSOLE
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000466
Michael Ellermancc46bb92006-06-23 18:20:16 +1000467config UDBG_RTAS_CONSOLE
Michael Neuling9a2ded52006-08-16 23:12:14 -0500468 bool "RTAS based debug console"
469 depends on PPC_RTAS
Michael Ellermancc46bb92006-06-23 18:20:16 +1000470 default n
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000471
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000472config XICS
473 depends on PPC_PSERIES
474 bool
475 default y
476
477config U3_DART
478 bool
479 depends on PPC_MULTIPLATFORM && PPC64
480 default n
481
Paul Mackerras033ef332005-10-26 17:05:24 +1000482config PPC_RTAS
483 bool
484 default n
485
486config RTAS_ERROR_LOGGING
487 bool
488 depends on PPC_RTAS
489 default n
490
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100491config RTAS_PROC
492 bool "Proc interface to RTAS"
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500493 depends on PPC_RTAS
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100494 default y
495
496config RTAS_FLASH
497 tristate "Firmware flash interface"
498 depends on PPC64 && RTAS_PROC
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500499
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500500config MMIO_NVRAM
501 bool
502 default n
503
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000504config MPIC_BROKEN_U3
505 bool
506 depends on PPC_MAPLE
507 default y
508
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000509config IBMVIO
510 depends on PPC_PSERIES || PPC_ISERIES
511 bool
512 default y
513
Heiko J Schickd7a30102005-11-16 08:56:43 +0100514config IBMEBUS
515 depends on PPC_PSERIES
516 bool "Support for GX bus based adapters"
Heiko J Schickd7a30102005-11-16 08:56:43 +0100517 help
518 Bus device driver for GX bus based adapters.
519
Paul Mackerras830825d2005-10-26 17:16:38 +1000520config PPC_MPC106
521 bool
522 default n
523
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000524config PPC_970_NAP
525 bool
526 default n
527
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000528source "drivers/cpufreq/Kconfig"
529
530config CPU_FREQ_PMAC
531 bool "Support for Apple PowerBooks"
532 depends on CPU_FREQ && ADB_PMU && PPC32
533 select CPU_FREQ_TABLE
534 help
535 This adds support for frequency switching on Apple PowerBooks,
536 this currently includes some models of iBook & Titanium
537 PowerBook.
538
Benjamin Herrenschmidt43501472005-11-07 14:27:33 +1100539config CPU_FREQ_PMAC64
540 bool "Support for some Apple G5s"
Benjamin Herrenschmidt7ed14c22006-07-06 15:09:19 +1000541 depends on CPU_FREQ && PPC64
Benjamin Herrenschmidt43501472005-11-07 14:27:33 +1100542 select CPU_FREQ_TABLE
543 help
544 This adds support for frequency switching on Apple iMac G5,
545 and some of the more recent desktop G5 machines as well.
546
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000547config PPC601_SYNC_FIX
548 bool "Workarounds for PPC601 bugs"
549 depends on 6xx && (PPC_PREP || PPC_PMAC)
550 help
551 Some versions of the PPC601 (the first PowerPC chip) have bugs which
552 mean that extra synchronization instructions are required near
553 certain instructions, typically those that make major changes to the
554 CPU state. These extra instructions reduce performance slightly.
555 If you say N here, these extra instructions will not be included,
556 resulting in a kernel which will run faster but may not run at all
557 on some systems with the PPC601 chip.
558
559 If in doubt, say Y here.
560
561config TAU
Paul Mackerras9b781722006-03-27 19:15:26 +1100562 bool "On-chip CPU temperature sensor support"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000563 depends on 6xx
564 help
565 G3 and G4 processors have an on-chip temperature sensor called the
566 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
567 temperature within 2-4 degrees Celsius. This option shows the current
568 on-die temperature in /proc/cpuinfo if the cpu supports it.
569
570 Unfortunately, on some chip revisions, this sensor is very inaccurate
Paul Mackerras9b781722006-03-27 19:15:26 +1100571 and in many cases, does not work at all, so don't assume the cpu
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000572 temp is actually what /proc/cpuinfo says it is.
573
574config TAU_INT
575 bool "Interrupt driven TAU driver (DANGEROUS)"
576 depends on TAU
577 ---help---
578 The TAU supports an interrupt driven mode which causes an interrupt
579 whenever the temperature goes out of range. This is the fastest way
580 to get notified the temp has exceeded a range. With this option off,
581 a timer is used to re-check the temperature periodically.
582
583 However, on some cpus it appears that the TAU interrupt hardware
584 is buggy and can cause a situation which would lead unexplained hard
585 lockups.
586
587 Unless you are extending the TAU driver, or enjoy kernel/hardware
588 debugging, leave this option off.
589
590config TAU_AVERAGE
591 bool "Average high and low temp"
592 depends on TAU
593 ---help---
594 The TAU hardware can compare the temperature to an upper and lower
595 bound. The default behavior is to show both the upper and lower
596 bound in /proc/cpuinfo. If the range is large, the temperature is
597 either changing a lot, or the TAU hardware is broken (likely on some
598 G4's). If the range is small (around 4 degrees), the temperature is
599 relatively stable. If you say Y here, a single temperature value,
600 halfway between the upper and lower bounds, will be reported in
601 /proc/cpuinfo.
602
603 If in doubt, say N here.
Mark A. Greerc2201532006-06-28 14:13:20 -0700604
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000605endmenu
606
607source arch/powerpc/platforms/embedded6xx/Kconfig
608source arch/powerpc/platforms/4xx/Kconfig
Vitaly Borduged943c12006-10-02 22:41:50 +0400609source arch/powerpc/platforms/82xx/Kconfig
Kumar Gala08264cb2006-01-10 21:43:56 -0600610source arch/powerpc/platforms/83xx/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000611source arch/powerpc/platforms/85xx/Kconfig
Jon Loeligerc9b484b2006-06-17 17:52:35 -0500612source arch/powerpc/platforms/86xx/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000613source arch/powerpc/platforms/8xx/Kconfig
Arnd Bergmann67207b92005-11-15 15:53:48 -0500614source arch/powerpc/platforms/cell/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000615
616menu "Kernel options"
617
618config HIGHMEM
619 bool "High memory support"
620 depends on PPC32
621
622source kernel/Kconfig.hz
623source kernel/Kconfig.preempt
624source "fs/Kconfig.binfmt"
625
626# We optimistically allocate largepages from the VM, so make the limit
627# large enough (16MB). This badly named config option is actually
628# max order + 1
629config FORCE_MAX_ZONEORDER
630 int
631 depends on PPC64
Mike Kravetz02864862005-11-07 13:48:59 -0800632 default "9" if PPC_64K_PAGES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000633 default "13"
634
635config MATH_EMULATION
636 bool "Math emulation"
637 depends on 4xx || 8xx || E200 || E500
638 ---help---
639 Some PowerPC chips designed for embedded applications do not have
640 a floating-point unit and therefore do not implement the
641 floating-point instructions in the PowerPC instruction set. If you
642 say Y here, the kernel will include code to emulate a floating-point
643 unit, which will allow programs that use floating-point
644 instructions to run.
645
646config IOMMU_VMERGE
647 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
648 depends on EXPERIMENTAL && PPC64
649 default n
650 help
651 Cause IO segments sent to a device for DMA to be merged virtually
652 by the IOMMU when they happen to have been allocated contiguously.
653 This doesn't add pressure to the IOMMU allocator. However, some
654 drivers don't support getting large merged segments coming back
655 from *_map_sg(). Say Y if you know the drivers you are using are
656 properly handling this case.
657
658config HOTPLUG_CPU
659 bool "Support for enabling/disabling CPUs"
660 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
661 ---help---
662 Say Y here to be able to disable and re-enable individual
663 CPUs at runtime on SMP machines.
664
665 Say N if you are unsure.
666
Yasunori Gotocc576372006-06-29 02:24:27 -0700667config ARCH_ENABLE_MEMORY_HOTPLUG
668 def_bool y
669
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000670config KEXEC
671 bool "kexec system call (EXPERIMENTAL)"
672 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
673 help
674 kexec is a system call that implements the ability to shutdown your
675 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400676 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000677 you can start any kernel with it, not just Linux.
678
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400679 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000680
681 It is an ongoing process to be certain the hardware in a machine
682 is properly shutdown, so do not be surprised if this code does not
683 initially work for you. It may help to enable device hotplugging
684 support. As of this writing the exact hardware interface is
685 strongly in flux, so no good recommendation can be made.
686
Haren Mynenie8625d462006-01-14 13:48:25 -0800687config CRASH_DUMP
Michael Ellermancd9c99d2006-03-10 15:01:08 +1100688 bool "Build a kdump crash kernel (EXPERIMENTAL)"
Haren Mynenie8625d462006-01-14 13:48:25 -0800689 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
690 help
691 Build a kernel suitable for use as a kdump capture kernel.
692 The kernel will be linked at a different address than normal, and
693 so can only be used for Kdump.
694
695 Don't change this unless you know what you are doing.
696
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000697config EMBEDDEDBOOT
698 bool
699 depends on 8xx || 8260
700 default y
701
702config PC_KEYBOARD
703 bool "PC PS/2 style Keyboard"
704 depends on 4xx || CPM2
705
706config PPCBUG_NVRAM
707 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
708 default y if PPC_PREP
709
710config IRQ_ALL_CPUS
711 bool "Distribute interrupts on all CPUs by default"
712 depends on SMP && !MV64360
713 help
714 This option gives the kernel permission to distribute IRQs across
715 multiple CPUs. Saying N here will route all IRQs to the first
716 CPU. Generally saying Y is safe, although some problems have been
717 reported with SMP Power Macintoshes with this option enabled.
718
719source "arch/powerpc/platforms/pseries/Kconfig"
720
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700721config NUMA
722 bool "NUMA support"
723 depends on PPC64
724 default y if SMP && PPC_PSERIES
725
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700726config NODES_SHIFT
727 int
728 default "4"
729 depends on NEED_MULTIPLE_NODES
730
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000731config ARCH_SELECT_MEMORY_MODEL
732 def_bool y
733 depends on PPC64
734
735config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000736 def_bool y
737 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000738
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000739config ARCH_SPARSEMEM_ENABLE
740 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000741 depends on PPC64
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100742
743config ARCH_SPARSEMEM_DEFAULT
744 def_bool y
745 depends on SMP && PPC_PSERIES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000746
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700747config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000748 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700749
750source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000751
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800752config ARCH_MEMORY_PROBE
753 def_bool y
754 depends on MEMORY_HOTPLUG
755
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100756config PPC_64K_PAGES
757 bool "64k page size"
Benjamin Herrenschmidt863c84b2005-11-07 00:57:58 -0800758 depends on PPC64
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100759 help
760 This option changes the kernel logical page size to 64k. On machines
761 without processor support for 64k pages, the kernel will simulate
762 them by loading each individual 4k page on demand transparently,
763 while on hardware with such support, it will be used to map
764 normal application pages.
765
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000766config SCHED_SMT
767 bool "SMT (Hyperthreading) scheduler support"
768 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000769 help
770 SMT scheduler support improves the CPU scheduler's decision making
771 when dealing with POWER5 cpus at a cost of slightly increased
772 overhead in some places. If unsure say N here.
773
774config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000775 bool "Support for device tree in /proc"
776 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000777 help
778 This option adds a device-tree directory under /proc which contains
779 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000780 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000781
782source "arch/powerpc/platforms/prep/Kconfig"
783
784config CMDLINE_BOOL
785 bool "Default bootloader kernel arguments"
786 depends on !PPC_ISERIES
787
788config CMDLINE
789 string "Initial kernel command string"
790 depends on CMDLINE_BOOL
791 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
792 help
793 On some platforms, there is currently no way for the boot loader to
794 pass arguments to the kernel. For these platforms, you can supply
795 some command-line options at build time by entering them here. In
796 most cases you will need to specify the root device here.
797
798if !44x || BROKEN
799source kernel/power/Kconfig
800endif
801
802config SECCOMP
803 bool "Enable seccomp to safely compute untrusted bytecode"
804 depends on PROC_FS
805 default y
806 help
807 This kernel feature is useful for number crunching applications
808 that may need to compute untrusted bytecode during their
809 execution. By using pipes or other transports made available to
810 the process as file descriptors supporting the read/write
811 syscalls, it's possible to isolate those applications in
812 their own address space using seccomp. Once seccomp is
813 enabled via /proc/<pid>/seccomp, it cannot be disabled
814 and the task is only allowed to execute a few safe syscalls
815 defined by each seccomp mode.
816
817 If unsure, say Y. Only embedded should say N here.
818
819endmenu
820
821config ISA_DMA_API
822 bool
823 default y
824
825menu "Bus options"
826
827config ISA
828 bool "Support for ISA-bus hardware"
829 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000830 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000831 help
832 Find out whether you have ISA slots on your motherboard. ISA is the
833 name of a bus system, i.e. the way the CPU talks to the other stuff
834 inside your box. If you have an Apple machine, say N here; if you
835 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
836 you have an embedded board, consult your board documentation.
837
838config GENERIC_ISA_DMA
839 bool
840 depends on PPC64 || POWER4 || 6xx && !CPM2
841 default y
842
Zang Roy-r6191172335932006-08-25 14:16:30 +1000843config MPIC
844 bool
845 default n
846
847config MPIC_WEIRD
848 bool
849 default n
850
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000851config PPC_I8259
852 bool
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000853 default n
854
Paul Mackerras25635c72005-10-26 16:36:55 +1000855config PPC_INDIRECT_PCI
856 bool
857 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600858 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000859 default n
860
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000861config EISA
862 bool
863
864config SBUS
865 bool
866
Kumar Gala08264cb2006-01-10 21:43:56 -0600867config FSL_SOC
868 bool
869
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000870# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
871config MCA
872 bool
873
874config PCI
Jon Loeliger53158622006-08-09 10:37:28 -0500875 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
876 || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2
877 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
878 && !PPC_85xx && !PPC_86xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000879 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
880 default PCI_QSPAN if !4xx && !CPM2 && 8xx
881 help
882 Find out whether your system includes a PCI bus. PCI is the name of
883 a bus system, i.e. the way the CPU talks to the other stuff inside
884 your box. If you say Y here, the kernel will include drivers and
885 infrastructure code to support PCI bus devices.
886
887config PCI_DOMAINS
888 bool
889 default PCI
890
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000891config PCI_QSPAN
892 bool "QSpan PCI"
893 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000894 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000895 help
896 Say Y here if you have a system based on a Motorola 8xx-series
897 embedded processor with a QSPAN PCI interface, otherwise say N.
898
899config PCI_8260
900 bool
901 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000902 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000903 default y
904
905config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700906 bool "Enable workaround for MPC826x erratum PCI 9"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000907 depends on PCI_8260 && !ADS8272
908 default y
909
910choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700911 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000912 depends on 8260_PCI9
913
914config 8260_PCI9_IDMA1
915 bool "IDMA1"
916
917config 8260_PCI9_IDMA2
918 bool "IDMA2"
919
920config 8260_PCI9_IDMA3
921 bool "IDMA3"
922
923config 8260_PCI9_IDMA4
924 bool "IDMA4"
925
926endchoice
927
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500928source "drivers/pci/pcie/Kconfig"
929
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000930source "drivers/pci/Kconfig"
931
932source "drivers/pcmcia/Kconfig"
933
934source "drivers/pci/hotplug/Kconfig"
935
936endmenu
937
938menu "Advanced setup"
939 depends on PPC32
940
941config ADVANCED_OPTIONS
942 bool "Prompt for advanced kernel configuration options"
943 help
944 This option will enable prompting for a variety of advanced kernel
945 configuration options. These options can cause the kernel to not
946 work if they are set incorrectly, but can be used to optimize certain
947 aspects of kernel memory management.
948
949 Unless you know what you are doing, say N here.
950
951comment "Default settings for advanced configuration options are used"
952 depends on !ADVANCED_OPTIONS
953
954config HIGHMEM_START_BOOL
955 bool "Set high memory pool address"
956 depends on ADVANCED_OPTIONS && HIGHMEM
957 help
958 This option allows you to set the base address of the kernel virtual
959 area used to map high memory pages. This can be useful in
960 optimizing the layout of kernel virtual memory.
961
962 Say N here unless you know what you are doing.
963
964config HIGHMEM_START
965 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
966 default "0xfe000000"
967
968config LOWMEM_SIZE_BOOL
969 bool "Set maximum low memory"
970 depends on ADVANCED_OPTIONS
971 help
972 This option allows you to set the maximum amount of memory which
973 will be used as "low memory", that is, memory which the kernel can
974 access directly, without having to set up a kernel virtual mapping.
975 This can be useful in optimizing the layout of kernel virtual
976 memory.
977
978 Say N here unless you know what you are doing.
979
980config LOWMEM_SIZE
981 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
982 default "0x30000000"
983
984config KERNEL_START_BOOL
985 bool "Set custom kernel base address"
986 depends on ADVANCED_OPTIONS
987 help
988 This option allows you to set the kernel virtual address at which
989 the kernel will map low memory (the kernel image will be linked at
990 this address). This can be useful in optimizing the virtual memory
991 layout of the system.
992
993 Say N here unless you know what you are doing.
994
995config KERNEL_START
996 hex "Virtual address of kernel base" if KERNEL_START_BOOL
997 default "0xc0000000"
998
999config TASK_SIZE_BOOL
1000 bool "Set custom user task size"
1001 depends on ADVANCED_OPTIONS
1002 help
1003 This option allows you to set the amount of virtual address space
1004 allocated to user tasks. This can be useful in optimizing the
1005 virtual memory layout of the system.
1006
1007 Say N here unless you know what you are doing.
1008
1009config TASK_SIZE
1010 hex "Size of user task space" if TASK_SIZE_BOOL
1011 default "0x80000000"
1012
1013config CONSISTENT_START_BOOL
1014 bool "Set custom consistent memory pool address"
1015 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1016 help
1017 This option allows you to set the base virtual address
Matt LaPlante4b3f6862006-10-03 22:21:02 +02001018 of the consistent memory pool. This pool of virtual
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001019 memory is used to make consistent memory allocations.
1020
1021config CONSISTENT_START
1022 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
1023 default "0xff100000" if NOT_COHERENT_CACHE
1024
1025config CONSISTENT_SIZE_BOOL
1026 bool "Set custom consistent memory pool size"
1027 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1028 help
Matt LaPlante4b3f6862006-10-03 22:21:02 +02001029 This option allows you to set the size of the
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001030 consistent memory pool. This pool of virtual memory
1031 is used to make consistent memory allocations.
1032
1033config CONSISTENT_SIZE
1034 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1035 default "0x00200000" if NOT_COHERENT_CACHE
1036
1037config BOOT_LOAD_BOOL
1038 bool "Set the boot link/load address"
1039 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1040 help
1041 This option allows you to set the initial load address of the zImage
1042 or zImage.initrd file. This can be useful if you are on a board
1043 which has a small amount of memory.
1044
1045 Say N here unless you know what you are doing.
1046
1047config BOOT_LOAD
1048 hex "Link/load address for booting" if BOOT_LOAD_BOOL
1049 default "0x00400000" if 40x || 8xx || 8260
1050 default "0x01000000" if 44x
1051 default "0x00800000"
1052
1053config PIN_TLB
1054 bool "Pinned Kernel TLBs (860 ONLY)"
1055 depends on ADVANCED_OPTIONS && 8xx
1056endmenu
1057
Stephen Rothwellcabb5582005-09-30 16:16:52 +10001058if PPC64
1059config KERNEL_START
1060 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +10001061 default "0xc000000000000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +10001062endif
1063
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001064source "net/Kconfig"
1065
1066source "drivers/Kconfig"
1067
1068source "fs/Kconfig"
1069
1070# XXX source "arch/ppc/8xx_io/Kconfig"
1071
1072# XXX source "arch/ppc/8260_io/Kconfig"
1073
Li Yang98658532006-10-03 23:10:46 -05001074source "arch/powerpc/sysdev/qe_lib/Kconfig"
1075
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001076source "arch/powerpc/platforms/iseries/Kconfig"
1077
1078source "lib/Kconfig"
1079
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001080menu "Instrumentation Support"
1081 depends on EXPERIMENTAL
1082
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001083source "arch/powerpc/oprofile/Kconfig"
1084
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001085config KPROBES
1086 bool "Kprobes (EXPERIMENTAL)"
Ananth N Mavinakayanahalli3a872d82006-10-02 02:17:30 -07001087 depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001088 help
1089 Kprobes allows you to trap at almost any kernel address and
1090 execute a callback function. register_kprobe() establishes
1091 a probepoint and specifies the callback. Kprobes is useful
1092 for kernel debugging, non-intrusive instrumentation and testing.
1093 If in doubt, say "N".
1094endmenu
1095
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001096source "arch/powerpc/Kconfig.debug"
1097
1098source "security/Kconfig"
1099
1100config KEYS_COMPAT
1101 bool
1102 depends on COMPAT && KEYS
1103 default y
1104
1105source "crypto/Kconfig"