blob: 7eb0ef2b0036cec0a438f424ab0552c1e26b3eef [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
33config RWSEM_GENERIC_SPINLOCK
34 bool
35
36config RWSEM_XCHGADD_ALGORITHM
37 bool
38 default y
39
Akinobu Mitae779b2f2006-03-26 01:39:33 -080040config GENERIC_HWEIGHT
41 bool
42 default y
43
Paul Mackerras14cf11a2005-09-26 16:04:21 +100044config GENERIC_CALIBRATE_DELAY
45 bool
46 default y
47
Jon Mason0a9cb462006-05-19 15:35:32 -050048config GENERIC_FIND_NEXT_BIT
49 bool
50 default y
51
Paul Mackerras14cf11a2005-09-26 16:04:21 +100052config PPC
53 bool
54 default y
55
56config EARLY_PRINTK
57 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110058 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +100059
60config COMPAT
61 bool
62 default y if PPC64
63
64config SYSVIPC_COMPAT
65 bool
66 depends on COMPAT && SYSVIPC
67 default y
68
69# All PPC32s use generic nvram driver through ppc_md
70config GENERIC_NVRAM
71 bool
72 default y if PPC32
73
74config SCHED_NO_NO_OMIT_FRAME_POINTER
75 bool
76 default y
77
78config ARCH_MAY_HAVE_PC_FDC
79 bool
80 default y
81
Kumar Gala08264cb2006-01-10 21:43:56 -060082config PPC_OF
83 def_bool y
84
85config PPC_UDBG_16550
86 bool
87 default n
88
Kumar Gala08264cb2006-01-10 21:43:56 -060089config GENERIC_TBSYNC
90 bool
91 default y if PPC32 && SMP
92 default n
93
Kumar Galaf4fc4a52006-01-16 10:53:22 -060094config DEFAULT_UIMAGE
95 bool
96 help
97 Used to allow a board to specify it wants a uImage built by default
98 default n
99
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000100menu "Processor support"
101choice
102 prompt "Processor Type"
103 depends on PPC32
104 default 6xx
105
Kumar Gala08264cb2006-01-10 21:43:56 -0600106config CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000107 bool "6xx/7xx/74xx"
108 select PPC_FPU
Kumar Gala08264cb2006-01-10 21:43:56 -0600109 select 6xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000110 help
111 There are four families of PowerPC chips supported. The more common
112 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
113 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
114 embedded versions (403 and 405) and the high end 64 bit Power
115 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
116
117 Unless you are building a kernel for one of the embedded processor
118 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
119 Note that the kernel runs in 32-bit mode even on 64-bit chips.
120
121config PPC_52xx
122 bool "Freescale 52xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600123 select 6xx
124 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000125
126config PPC_82xx
127 bool "Freescale 82xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600128 select 6xx
129 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000130
131config PPC_83xx
132 bool "Freescale 83xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600133 select 6xx
134 select FSL_SOC
135 select 83xx
136 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000137
Becky Bruce63dafe52006-01-14 16:57:39 -0600138config PPC_85xx
139 bool "Freescale 85xx"
140 select E500
141 select FSL_SOC
142 select 85xx
143
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000144config 40x
145 bool "AMCC 40x"
146
147config 44x
148 bool "AMCC 44x"
149
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000150config 8xx
151 bool "Freescale 8xx"
152
153config E200
154 bool "Freescale e200"
155
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000156endchoice
157
158config POWER4_ONLY
159 bool "Optimize for POWER4"
Paul Mackerras187a0062005-10-06 12:49:05 +1000160 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000161 default n
162 ---help---
163 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
164 The resulting binary will not work on POWER3 or RS64 processors
165 when compiled with binutils 2.15 or later.
166
167config POWER3
168 bool
Paul Mackerras187a0062005-10-06 12:49:05 +1000169 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000170 default y if !POWER4_ONLY
171
172config POWER4
Paul Mackerras187a0062005-10-06 12:49:05 +1000173 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000174 def_bool y
175
Kumar Gala08264cb2006-01-10 21:43:56 -0600176config 6xx
177 bool
178
179# this is temp to handle compat with arch=ppc
180config 83xx
181 bool
182
Becky Bruce63dafe52006-01-14 16:57:39 -0600183# this is temp to handle compat with arch=ppc
184config 85xx
185 bool
186
187config E500
188 bool
189
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000190config PPC_FPU
Paul Mackerras187a0062005-10-06 12:49:05 +1000191 bool
192 default y if PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000193
194config BOOKE
195 bool
196 depends on E200 || E500
197 default y
198
199config FSL_BOOKE
200 bool
201 depends on E200 || E500
202 default y
203
204config PTE_64BIT
205 bool
206 depends on 44x || E500
207 default y if 44x
208 default y if E500 && PHYS_64BIT
209
210config PHYS_64BIT
211 bool 'Large physical address support' if E500
212 depends on 44x || E500
213 default y if 44x
214 ---help---
215 This option enables kernel support for larger than 32-bit physical
216 addresses. This features is not be available on all e500 cores.
217
218 If in doubt, say N here.
219
220config ALTIVEC
221 bool "AltiVec Support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600222 depends on CLASSIC32 || POWER4
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000223 ---help---
224 This option enables kernel support for the Altivec extensions to the
225 PowerPC processor. The kernel currently supports saving and restoring
226 altivec registers, and turning on the 'altivec enable' bit so user
227 processes can execute altivec instructions.
228
229 This option is only usefully if you have a processor that supports
230 altivec (G4, otherwise known as 74xx series), but does not have
231 any affect on a non-altivec cpu (it does, however add code to the
232 kernel).
233
234 If in doubt, say Y here.
235
236config SPE
237 bool "SPE Support"
238 depends on E200 || E500
Becky Bruce63dafe52006-01-14 16:57:39 -0600239 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000240 ---help---
241 This option enables kernel support for the Signal Processing
242 Extensions (SPE) to the PowerPC processor. The kernel currently
243 supports saving and restoring SPE registers, and turning on the
244 'spe enable' bit so user processes can execute SPE instructions.
245
246 This option is only useful if you have a processor that supports
247 SPE (e500, otherwise known as 85xx series), but does not have any
248 effect on a non-spe cpu (it does, however add code to the kernel).
249
250 If in doubt, say Y here.
251
252config PPC_STD_MMU
253 bool
254 depends on 6xx || POWER3 || POWER4 || PPC64
255 default y
256
257config PPC_STD_MMU_32
258 def_bool y
259 depends on PPC_STD_MMU && PPC32
260
Paul Mackerrasc6622f62006-02-24 10:06:59 +1100261config VIRT_CPU_ACCOUNTING
262 bool "Deterministic task and CPU time accounting"
263 depends on PPC64
264 default y
265 help
266 Select this option to enable more accurate task and CPU time
267 accounting. This is done by reading a CPU counter on each
268 kernel entry and exit and on transitions within the kernel
269 between system, softirq and hardirq state, so there is a
270 small performance impact. This also enables accounting of
271 stolen time on logically-partitioned systems running on
272 IBM POWER5-based machines.
273
274 If in doubt, say Y here.
275
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000276config SMP
277 depends on PPC_STD_MMU
278 bool "Symmetric multi-processing support"
279 ---help---
280 This enables support for systems with more than one CPU. If you have
281 a system with only one CPU, say N. If you have a system with more
282 than one CPU, say Y. Note that the kernel does not currently
283 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
284 since they have inadequate hardware support for multiprocessor
285 operation.
286
287 If you say N here, the kernel will run on single and multiprocessor
288 machines, but will use only one CPU of a multiprocessor machine. If
289 you say Y here, the kernel will run on single-processor machines.
290 On a single-processor machine, the kernel will run faster if you say
291 N here.
292
293 If you don't know what to do here, say N.
294
295config NR_CPUS
Olaf Heringe8a167a2005-12-01 21:10:10 +0100296 int "Maximum number of CPUs (2-128)"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000297 range 2 128
298 depends on SMP
299 default "32" if PPC64
300 default "4"
301
302config NOT_COHERENT_CACHE
303 bool
304 depends on 4xx || 8xx || E200
305 default y
306endmenu
307
308source "init/Kconfig"
309
310menu "Platform support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600311 depends on PPC64 || CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000312
313choice
314 prompt "Machine type"
315 default PPC_MULTIPLATFORM
316
317config PPC_MULTIPLATFORM
318 bool "Generic desktop/server/laptop"
319 help
320 Select this option if configuring for an IBM pSeries or
321 RS/6000 machine, an Apple machine, or a PReP, CHRP,
322 Maple or Cell-based machine.
323
324config PPC_ISERIES
325 bool "IBM Legacy iSeries"
326 depends on PPC64
327
328config EMBEDDED6xx
329 bool "Embedded 6xx/7xx/7xxx-based board"
Paul Mackerras5be396b2005-11-14 17:31:55 +1100330 depends on PPC32 && BROKEN
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000331
332config APUS
333 bool "Amiga-APUS"
334 depends on PPC32 && BROKEN
335 help
336 Select APUS if configuring for a PowerUP Amiga.
337 More information is available at:
338 <http://linux-apus.sourceforge.net/>.
339endchoice
340
341config PPC_PSERIES
342 depends on PPC_MULTIPLATFORM && PPC64
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700343 bool "IBM pSeries & new (POWER5-based) iSeries"
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000344 select PPC_I8259
Paul Mackerras033ef332005-10-26 17:05:24 +1000345 select PPC_RTAS
346 select RTAS_ERROR_LOGGING
Paul Mackerras13b8a272006-01-10 16:19:05 +1100347 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000348 default y
349
350config PPC_CHRP
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700351 bool "Common Hardware Reference Platform (CHRP) based machines"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000352 depends on PPC_MULTIPLATFORM && PPC32
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000353 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000354 select PPC_INDIRECT_PCI
Paul Mackerras033ef332005-10-26 17:05:24 +1000355 select PPC_RTAS
Paul Mackerras830825d2005-10-26 17:16:38 +1000356 select PPC_MPC106
Paul Mackerras13b8a272006-01-10 16:19:05 +1100357 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000358 default y
359
360config PPC_PMAC
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700361 bool "Apple PowerMac based machines"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000362 depends on PPC_MULTIPLATFORM
Paul Mackerras25635c72005-10-26 16:36:55 +1000363 select PPC_INDIRECT_PCI if PPC32
Paul Mackerrasb6a4ce52005-10-26 22:54:17 +1000364 select PPC_MPC106 if PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000365 default y
366
367config PPC_PMAC64
368 bool
369 depends on PPC_PMAC && POWER4
Paul Mackerras35499c02005-10-22 16:02:39 +1000370 select U3_DART
Benjamin Herrenschmidt1beb6a72005-12-14 13:10:10 +1100371 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100372 select GENERIC_TBSYNC
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000373 select PPC_970_NAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000374 default y
375
376config PPC_PREP
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700377 bool "PowerPC Reference Platform (PReP) based machines"
Paul Mackerras5be396b2005-11-14 17:31:55 +1100378 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000379 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000380 select PPC_INDIRECT_PCI
Paul Mackerras13b8a272006-01-10 16:19:05 +1100381 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000382 default y
383
384config PPC_MAPLE
385 depends on PPC_MULTIPLATFORM && PPC64
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700386 bool "Maple 970FX Evaluation Board"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000387 select U3_DART
388 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100389 select GENERIC_TBSYNC
Paul Mackerras13b8a272006-01-10 16:19:05 +1100390 select PPC_UDBG_16550
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000391 select PPC_970_NAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000392 default n
393 help
394 This option enables support for the Maple 970FX Evaluation Board.
395 For more informations, refer to <http://www.970eval.com>
396
Arnd Bergmannf3f66f52005-10-31 20:08:37 -0500397config PPC_CELL
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700398 bool "Cell Broadband Processor Architecture"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000399 depends on PPC_MULTIPLATFORM && PPC64
Paul Mackerras033ef332005-10-26 17:05:24 +1000400 select PPC_RTAS
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500401 select MMIO_NVRAM
Paul Mackerras13b8a272006-01-10 16:19:05 +1100402 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000403
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000404config XICS
405 depends on PPC_PSERIES
406 bool
407 default y
408
409config U3_DART
410 bool
411 depends on PPC_MULTIPLATFORM && PPC64
412 default n
413
414config MPIC
Paul Mackerrasbbd0abd2005-10-26 21:45:56 +1000415 depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000416 bool
417 default y
418
Paul Mackerras033ef332005-10-26 17:05:24 +1000419config PPC_RTAS
420 bool
421 default n
422
423config RTAS_ERROR_LOGGING
424 bool
425 depends on PPC_RTAS
426 default n
427
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100428config RTAS_PROC
429 bool "Proc interface to RTAS"
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500430 depends on PPC_RTAS
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100431 default y
432
433config RTAS_FLASH
434 tristate "Firmware flash interface"
435 depends on PPC64 && RTAS_PROC
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500436
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500437config MMIO_NVRAM
438 bool
439 default n
440
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000441config MPIC_BROKEN_U3
442 bool
443 depends on PPC_MAPLE
444 default y
445
Arnd Bergmannf3f66f52005-10-31 20:08:37 -0500446config CELL_IIC
447 depends on PPC_CELL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000448 bool
449 default y
450
451config IBMVIO
452 depends on PPC_PSERIES || PPC_ISERIES
453 bool
454 default y
455
Heiko J Schickd7a30102005-11-16 08:56:43 +0100456config IBMEBUS
457 depends on PPC_PSERIES
458 bool "Support for GX bus based adapters"
Heiko J Schickd7a30102005-11-16 08:56:43 +0100459 help
460 Bus device driver for GX bus based adapters.
461
Paul Mackerras830825d2005-10-26 17:16:38 +1000462config PPC_MPC106
463 bool
464 default n
465
Paul Mackerrasf39224a2006-04-18 21:49:11 +1000466config PPC_970_NAP
467 bool
468 default n
469
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000470source "drivers/cpufreq/Kconfig"
471
472config CPU_FREQ_PMAC
473 bool "Support for Apple PowerBooks"
474 depends on CPU_FREQ && ADB_PMU && PPC32
475 select CPU_FREQ_TABLE
476 help
477 This adds support for frequency switching on Apple PowerBooks,
478 this currently includes some models of iBook & Titanium
479 PowerBook.
480
Benjamin Herrenschmidt43501472005-11-07 14:27:33 +1100481config CPU_FREQ_PMAC64
482 bool "Support for some Apple G5s"
483 depends on CPU_FREQ && PMAC_SMU && PPC64
484 select CPU_FREQ_TABLE
485 help
486 This adds support for frequency switching on Apple iMac G5,
487 and some of the more recent desktop G5 machines as well.
488
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000489config PPC601_SYNC_FIX
490 bool "Workarounds for PPC601 bugs"
491 depends on 6xx && (PPC_PREP || PPC_PMAC)
492 help
493 Some versions of the PPC601 (the first PowerPC chip) have bugs which
494 mean that extra synchronization instructions are required near
495 certain instructions, typically those that make major changes to the
496 CPU state. These extra instructions reduce performance slightly.
497 If you say N here, these extra instructions will not be included,
498 resulting in a kernel which will run faster but may not run at all
499 on some systems with the PPC601 chip.
500
501 If in doubt, say Y here.
502
503config TAU
Paul Mackerras9b781722006-03-27 19:15:26 +1100504 bool "On-chip CPU temperature sensor support"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000505 depends on 6xx
506 help
507 G3 and G4 processors have an on-chip temperature sensor called the
508 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
509 temperature within 2-4 degrees Celsius. This option shows the current
510 on-die temperature in /proc/cpuinfo if the cpu supports it.
511
512 Unfortunately, on some chip revisions, this sensor is very inaccurate
Paul Mackerras9b781722006-03-27 19:15:26 +1100513 and in many cases, does not work at all, so don't assume the cpu
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000514 temp is actually what /proc/cpuinfo says it is.
515
516config TAU_INT
517 bool "Interrupt driven TAU driver (DANGEROUS)"
518 depends on TAU
519 ---help---
520 The TAU supports an interrupt driven mode which causes an interrupt
521 whenever the temperature goes out of range. This is the fastest way
522 to get notified the temp has exceeded a range. With this option off,
523 a timer is used to re-check the temperature periodically.
524
525 However, on some cpus it appears that the TAU interrupt hardware
526 is buggy and can cause a situation which would lead unexplained hard
527 lockups.
528
529 Unless you are extending the TAU driver, or enjoy kernel/hardware
530 debugging, leave this option off.
531
532config TAU_AVERAGE
533 bool "Average high and low temp"
534 depends on TAU
535 ---help---
536 The TAU hardware can compare the temperature to an upper and lower
537 bound. The default behavior is to show both the upper and lower
538 bound in /proc/cpuinfo. If the range is large, the temperature is
539 either changing a lot, or the TAU hardware is broken (likely on some
540 G4's). If the range is small (around 4 degrees), the temperature is
541 relatively stable. If you say Y here, a single temperature value,
542 halfway between the upper and lower bounds, will be reported in
543 /proc/cpuinfo.
544
545 If in doubt, say N here.
546endmenu
547
548source arch/powerpc/platforms/embedded6xx/Kconfig
549source arch/powerpc/platforms/4xx/Kconfig
Kumar Gala08264cb2006-01-10 21:43:56 -0600550source arch/powerpc/platforms/83xx/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000551source arch/powerpc/platforms/85xx/Kconfig
552source arch/powerpc/platforms/8xx/Kconfig
Arnd Bergmann67207b92005-11-15 15:53:48 -0500553source arch/powerpc/platforms/cell/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000554
555menu "Kernel options"
556
557config HIGHMEM
558 bool "High memory support"
559 depends on PPC32
560
561source kernel/Kconfig.hz
562source kernel/Kconfig.preempt
563source "fs/Kconfig.binfmt"
564
565# We optimistically allocate largepages from the VM, so make the limit
566# large enough (16MB). This badly named config option is actually
567# max order + 1
568config FORCE_MAX_ZONEORDER
569 int
570 depends on PPC64
Mike Kravetz02864862005-11-07 13:48:59 -0800571 default "9" if PPC_64K_PAGES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000572 default "13"
573
574config MATH_EMULATION
575 bool "Math emulation"
576 depends on 4xx || 8xx || E200 || E500
577 ---help---
578 Some PowerPC chips designed for embedded applications do not have
579 a floating-point unit and therefore do not implement the
580 floating-point instructions in the PowerPC instruction set. If you
581 say Y here, the kernel will include code to emulate a floating-point
582 unit, which will allow programs that use floating-point
583 instructions to run.
584
585config IOMMU_VMERGE
586 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
587 depends on EXPERIMENTAL && PPC64
588 default n
589 help
590 Cause IO segments sent to a device for DMA to be merged virtually
591 by the IOMMU when they happen to have been allocated contiguously.
592 This doesn't add pressure to the IOMMU allocator. However, some
593 drivers don't support getting large merged segments coming back
594 from *_map_sg(). Say Y if you know the drivers you are using are
595 properly handling this case.
596
597config HOTPLUG_CPU
598 bool "Support for enabling/disabling CPUs"
599 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
600 ---help---
601 Say Y here to be able to disable and re-enable individual
602 CPUs at runtime on SMP machines.
603
604 Say N if you are unsure.
605
606config KEXEC
607 bool "kexec system call (EXPERIMENTAL)"
608 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
609 help
610 kexec is a system call that implements the ability to shutdown your
611 current kernel, and to start another kernel. It is like a reboot
612 but it is indepedent of the system firmware. And like a reboot
613 you can start any kernel with it, not just Linux.
614
615 The name comes from the similiarity to the exec system call.
616
617 It is an ongoing process to be certain the hardware in a machine
618 is properly shutdown, so do not be surprised if this code does not
619 initially work for you. It may help to enable device hotplugging
620 support. As of this writing the exact hardware interface is
621 strongly in flux, so no good recommendation can be made.
622
Haren Mynenie8625d462006-01-14 13:48:25 -0800623config CRASH_DUMP
Michael Ellermancd9c99d2006-03-10 15:01:08 +1100624 bool "Build a kdump crash kernel (EXPERIMENTAL)"
Haren Mynenie8625d462006-01-14 13:48:25 -0800625 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
626 help
627 Build a kernel suitable for use as a kdump capture kernel.
628 The kernel will be linked at a different address than normal, and
629 so can only be used for Kdump.
630
631 Don't change this unless you know what you are doing.
632
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000633config EMBEDDEDBOOT
634 bool
635 depends on 8xx || 8260
636 default y
637
638config PC_KEYBOARD
639 bool "PC PS/2 style Keyboard"
640 depends on 4xx || CPM2
641
642config PPCBUG_NVRAM
643 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
644 default y if PPC_PREP
645
646config IRQ_ALL_CPUS
647 bool "Distribute interrupts on all CPUs by default"
648 depends on SMP && !MV64360
649 help
650 This option gives the kernel permission to distribute IRQs across
651 multiple CPUs. Saying N here will route all IRQs to the first
652 CPU. Generally saying Y is safe, although some problems have been
653 reported with SMP Power Macintoshes with this option enabled.
654
655source "arch/powerpc/platforms/pseries/Kconfig"
656
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700657config NUMA
658 bool "NUMA support"
659 depends on PPC64
660 default y if SMP && PPC_PSERIES
661
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700662config NODES_SHIFT
663 int
664 default "4"
665 depends on NEED_MULTIPLE_NODES
666
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000667config ARCH_SELECT_MEMORY_MODEL
668 def_bool y
669 depends on PPC64
670
671config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000672 def_bool y
673 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000674
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000675config ARCH_SPARSEMEM_ENABLE
676 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000677 depends on PPC64
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100678
679config ARCH_SPARSEMEM_DEFAULT
680 def_bool y
681 depends on SMP && PPC_PSERIES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000682
683source "mm/Kconfig"
684
685config HAVE_ARCH_EARLY_PFN_TO_NID
686 def_bool y
687 depends on NEED_MULTIPLE_NODES
688
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800689config ARCH_MEMORY_PROBE
690 def_bool y
691 depends on MEMORY_HOTPLUG
692
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100693config PPC_64K_PAGES
694 bool "64k page size"
Benjamin Herrenschmidt863c84b2005-11-07 00:57:58 -0800695 depends on PPC64
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100696 help
697 This option changes the kernel logical page size to 64k. On machines
698 without processor support for 64k pages, the kernel will simulate
699 them by loading each individual 4k page on demand transparently,
700 while on hardware with such support, it will be used to map
701 normal application pages.
702
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000703config SCHED_SMT
704 bool "SMT (Hyperthreading) scheduler support"
705 depends on PPC64 && SMP
706 default off
707 help
708 SMT scheduler support improves the CPU scheduler's decision making
709 when dealing with POWER5 cpus at a cost of slightly increased
710 overhead in some places. If unsure say N here.
711
712config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000713 bool "Support for device tree in /proc"
714 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000715 help
716 This option adds a device-tree directory under /proc which contains
717 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000718 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000719
720source "arch/powerpc/platforms/prep/Kconfig"
721
722config CMDLINE_BOOL
723 bool "Default bootloader kernel arguments"
724 depends on !PPC_ISERIES
725
726config CMDLINE
727 string "Initial kernel command string"
728 depends on CMDLINE_BOOL
729 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
730 help
731 On some platforms, there is currently no way for the boot loader to
732 pass arguments to the kernel. For these platforms, you can supply
733 some command-line options at build time by entering them here. In
734 most cases you will need to specify the root device here.
735
736if !44x || BROKEN
737source kernel/power/Kconfig
738endif
739
740config SECCOMP
741 bool "Enable seccomp to safely compute untrusted bytecode"
742 depends on PROC_FS
743 default y
744 help
745 This kernel feature is useful for number crunching applications
746 that may need to compute untrusted bytecode during their
747 execution. By using pipes or other transports made available to
748 the process as file descriptors supporting the read/write
749 syscalls, it's possible to isolate those applications in
750 their own address space using seccomp. Once seccomp is
751 enabled via /proc/<pid>/seccomp, it cannot be disabled
752 and the task is only allowed to execute a few safe syscalls
753 defined by each seccomp mode.
754
755 If unsure, say Y. Only embedded should say N here.
756
757endmenu
758
759config ISA_DMA_API
760 bool
761 default y
762
763menu "Bus options"
764
765config ISA
766 bool "Support for ISA-bus hardware"
767 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000768 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000769 help
770 Find out whether you have ISA slots on your motherboard. ISA is the
771 name of a bus system, i.e. the way the CPU talks to the other stuff
772 inside your box. If you have an Apple machine, say N here; if you
773 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
774 you have an embedded board, consult your board documentation.
775
776config GENERIC_ISA_DMA
777 bool
778 depends on PPC64 || POWER4 || 6xx && !CPM2
779 default y
780
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000781config PPC_I8259
782 bool
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000783 default n
784
Paul Mackerras25635c72005-10-26 16:36:55 +1000785config PPC_INDIRECT_PCI
786 bool
787 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600788 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000789 default n
790
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000791config EISA
792 bool
793
794config SBUS
795 bool
796
Kumar Gala08264cb2006-01-10 21:43:56 -0600797config FSL_SOC
798 bool
799
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000800# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
801config MCA
802 bool
803
804config PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600805 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
806 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000807 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
808 default PCI_QSPAN if !4xx && !CPM2 && 8xx
809 help
810 Find out whether your system includes a PCI bus. PCI is the name of
811 a bus system, i.e. the way the CPU talks to the other stuff inside
812 your box. If you say Y here, the kernel will include drivers and
813 infrastructure code to support PCI bus devices.
814
815config PCI_DOMAINS
816 bool
817 default PCI
818
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000819config PCI_QSPAN
820 bool "QSpan PCI"
821 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000822 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000823 help
824 Say Y here if you have a system based on a Motorola 8xx-series
825 embedded processor with a QSPAN PCI interface, otherwise say N.
826
827config PCI_8260
828 bool
829 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000830 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000831 default y
832
833config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700834 bool "Enable workaround for MPC826x erratum PCI 9"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000835 depends on PCI_8260 && !ADS8272
836 default y
837
838choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700839 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000840 depends on 8260_PCI9
841
842config 8260_PCI9_IDMA1
843 bool "IDMA1"
844
845config 8260_PCI9_IDMA2
846 bool "IDMA2"
847
848config 8260_PCI9_IDMA3
849 bool "IDMA3"
850
851config 8260_PCI9_IDMA4
852 bool "IDMA4"
853
854endchoice
855
856source "drivers/pci/Kconfig"
857
858source "drivers/pcmcia/Kconfig"
859
860source "drivers/pci/hotplug/Kconfig"
861
862endmenu
863
864menu "Advanced setup"
865 depends on PPC32
866
867config ADVANCED_OPTIONS
868 bool "Prompt for advanced kernel configuration options"
869 help
870 This option will enable prompting for a variety of advanced kernel
871 configuration options. These options can cause the kernel to not
872 work if they are set incorrectly, but can be used to optimize certain
873 aspects of kernel memory management.
874
875 Unless you know what you are doing, say N here.
876
877comment "Default settings for advanced configuration options are used"
878 depends on !ADVANCED_OPTIONS
879
880config HIGHMEM_START_BOOL
881 bool "Set high memory pool address"
882 depends on ADVANCED_OPTIONS && HIGHMEM
883 help
884 This option allows you to set the base address of the kernel virtual
885 area used to map high memory pages. This can be useful in
886 optimizing the layout of kernel virtual memory.
887
888 Say N here unless you know what you are doing.
889
890config HIGHMEM_START
891 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
892 default "0xfe000000"
893
894config LOWMEM_SIZE_BOOL
895 bool "Set maximum low memory"
896 depends on ADVANCED_OPTIONS
897 help
898 This option allows you to set the maximum amount of memory which
899 will be used as "low memory", that is, memory which the kernel can
900 access directly, without having to set up a kernel virtual mapping.
901 This can be useful in optimizing the layout of kernel virtual
902 memory.
903
904 Say N here unless you know what you are doing.
905
906config LOWMEM_SIZE
907 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
908 default "0x30000000"
909
910config KERNEL_START_BOOL
911 bool "Set custom kernel base address"
912 depends on ADVANCED_OPTIONS
913 help
914 This option allows you to set the kernel virtual address at which
915 the kernel will map low memory (the kernel image will be linked at
916 this address). This can be useful in optimizing the virtual memory
917 layout of the system.
918
919 Say N here unless you know what you are doing.
920
921config KERNEL_START
922 hex "Virtual address of kernel base" if KERNEL_START_BOOL
923 default "0xc0000000"
924
925config TASK_SIZE_BOOL
926 bool "Set custom user task size"
927 depends on ADVANCED_OPTIONS
928 help
929 This option allows you to set the amount of virtual address space
930 allocated to user tasks. This can be useful in optimizing the
931 virtual memory layout of the system.
932
933 Say N here unless you know what you are doing.
934
935config TASK_SIZE
936 hex "Size of user task space" if TASK_SIZE_BOOL
937 default "0x80000000"
938
939config CONSISTENT_START_BOOL
940 bool "Set custom consistent memory pool address"
941 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
942 help
943 This option allows you to set the base virtual address
944 of the the consistent memory pool. This pool of virtual
945 memory is used to make consistent memory allocations.
946
947config CONSISTENT_START
948 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
949 default "0xff100000" if NOT_COHERENT_CACHE
950
951config CONSISTENT_SIZE_BOOL
952 bool "Set custom consistent memory pool size"
953 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
954 help
955 This option allows you to set the size of the the
956 consistent memory pool. This pool of virtual memory
957 is used to make consistent memory allocations.
958
959config CONSISTENT_SIZE
960 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
961 default "0x00200000" if NOT_COHERENT_CACHE
962
963config BOOT_LOAD_BOOL
964 bool "Set the boot link/load address"
965 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
966 help
967 This option allows you to set the initial load address of the zImage
968 or zImage.initrd file. This can be useful if you are on a board
969 which has a small amount of memory.
970
971 Say N here unless you know what you are doing.
972
973config BOOT_LOAD
974 hex "Link/load address for booting" if BOOT_LOAD_BOOL
975 default "0x00400000" if 40x || 8xx || 8260
976 default "0x01000000" if 44x
977 default "0x00800000"
978
979config PIN_TLB
980 bool "Pinned Kernel TLBs (860 ONLY)"
981 depends on ADVANCED_OPTIONS && 8xx
982endmenu
983
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000984if PPC64
985config KERNEL_START
986 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000987 default "0xc000000000000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000988endif
989
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000990source "net/Kconfig"
991
992source "drivers/Kconfig"
993
994source "fs/Kconfig"
995
996# XXX source "arch/ppc/8xx_io/Kconfig"
997
998# XXX source "arch/ppc/8260_io/Kconfig"
999
1000source "arch/powerpc/platforms/iseries/Kconfig"
1001
1002source "lib/Kconfig"
1003
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001004menu "Instrumentation Support"
1005 depends on EXPERIMENTAL
1006
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001007source "arch/powerpc/oprofile/Kconfig"
1008
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001009config KPROBES
1010 bool "Kprobes (EXPERIMENTAL)"
Linus Torvaldsadd2b6f2006-02-26 20:24:40 -08001011 depends on PPC64 && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -08001012 help
1013 Kprobes allows you to trap at almost any kernel address and
1014 execute a callback function. register_kprobe() establishes
1015 a probepoint and specifies the callback. Kprobes is useful
1016 for kernel debugging, non-intrusive instrumentation and testing.
1017 If in doubt, say "N".
1018endmenu
1019
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001020source "arch/powerpc/Kconfig.debug"
1021
1022source "security/Kconfig"
1023
1024config KEYS_COMPAT
1025 bool
1026 depends on COMPAT && KEYS
1027 default y
1028
1029source "crypto/Kconfig"