blob: dfba81719dec066b66078a37e48878622cb025fd [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
40config GENERIC_CALIBRATE_DELAY
41 bool
42 default y
43
44config PPC
45 bool
46 default y
47
48config EARLY_PRINTK
49 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110050 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +100051
52config COMPAT
53 bool
54 default y if PPC64
55
56config SYSVIPC_COMPAT
57 bool
58 depends on COMPAT && SYSVIPC
59 default y
60
61# All PPC32s use generic nvram driver through ppc_md
62config GENERIC_NVRAM
63 bool
64 default y if PPC32
65
66config SCHED_NO_NO_OMIT_FRAME_POINTER
67 bool
68 default y
69
70config ARCH_MAY_HAVE_PC_FDC
71 bool
72 default y
73
Kumar Gala08264cb2006-01-10 21:43:56 -060074config PPC_OF
75 def_bool y
76
77config PPC_UDBG_16550
78 bool
79 default n
80
Kumar Gala08264cb2006-01-10 21:43:56 -060081config GENERIC_TBSYNC
82 bool
83 default y if PPC32 && SMP
84 default n
85
Kumar Gala00adbf62006-01-16 10:53:22 -060086config DEFAULT_UIMAGE
87 bool
88 help
89 Used to allow a board to specify it wants a uImage built by default
90 default n
91
Paul Mackerras14cf11a2005-09-26 16:04:21 +100092menu "Processor support"
93choice
94 prompt "Processor Type"
95 depends on PPC32
96 default 6xx
97
Kumar Gala08264cb2006-01-10 21:43:56 -060098config CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +100099 bool "6xx/7xx/74xx"
100 select PPC_FPU
Kumar Gala08264cb2006-01-10 21:43:56 -0600101 select 6xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000102 help
103 There are four families of PowerPC chips supported. The more common
104 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
105 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
106 embedded versions (403 and 405) and the high end 64 bit Power
107 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
108
109 Unless you are building a kernel for one of the embedded processor
110 systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
111 Note that the kernel runs in 32-bit mode even on 64-bit chips.
112
113config PPC_52xx
114 bool "Freescale 52xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600115 select 6xx
116 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000117
118config PPC_82xx
119 bool "Freescale 82xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600120 select 6xx
121 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000122
123config PPC_83xx
124 bool "Freescale 83xx"
Kumar Gala08264cb2006-01-10 21:43:56 -0600125 select 6xx
126 select FSL_SOC
127 select 83xx
128 select PPC_FPU
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000129
130config 40x
131 bool "AMCC 40x"
132
133config 44x
134 bool "AMCC 44x"
135
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000136config 8xx
137 bool "Freescale 8xx"
138
139config E200
140 bool "Freescale e200"
141
142config E500
143 bool "Freescale e500"
144endchoice
145
146config POWER4_ONLY
147 bool "Optimize for POWER4"
Paul Mackerras187a0062005-10-06 12:49:05 +1000148 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000149 default n
150 ---help---
151 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
152 The resulting binary will not work on POWER3 or RS64 processors
153 when compiled with binutils 2.15 or later.
154
155config POWER3
156 bool
Paul Mackerras187a0062005-10-06 12:49:05 +1000157 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000158 default y if !POWER4_ONLY
159
160config POWER4
Paul Mackerras187a0062005-10-06 12:49:05 +1000161 depends on PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000162 def_bool y
163
Kumar Gala08264cb2006-01-10 21:43:56 -0600164config 6xx
165 bool
166
167# this is temp to handle compat with arch=ppc
168config 83xx
169 bool
170
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000171config PPC_FPU
Paul Mackerras187a0062005-10-06 12:49:05 +1000172 bool
173 default y if PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000174
175config BOOKE
176 bool
177 depends on E200 || E500
178 default y
179
180config FSL_BOOKE
181 bool
182 depends on E200 || E500
183 default y
184
185config PTE_64BIT
186 bool
187 depends on 44x || E500
188 default y if 44x
189 default y if E500 && PHYS_64BIT
190
191config PHYS_64BIT
192 bool 'Large physical address support' if E500
193 depends on 44x || E500
194 default y if 44x
195 ---help---
196 This option enables kernel support for larger than 32-bit physical
197 addresses. This features is not be available on all e500 cores.
198
199 If in doubt, say N here.
200
201config ALTIVEC
202 bool "AltiVec Support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600203 depends on CLASSIC32 || POWER4
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000204 ---help---
205 This option enables kernel support for the Altivec extensions to the
206 PowerPC processor. The kernel currently supports saving and restoring
207 altivec registers, and turning on the 'altivec enable' bit so user
208 processes can execute altivec instructions.
209
210 This option is only usefully if you have a processor that supports
211 altivec (G4, otherwise known as 74xx series), but does not have
212 any affect on a non-altivec cpu (it does, however add code to the
213 kernel).
214
215 If in doubt, say Y here.
216
217config SPE
218 bool "SPE Support"
219 depends on E200 || E500
220 ---help---
221 This option enables kernel support for the Signal Processing
222 Extensions (SPE) to the PowerPC processor. The kernel currently
223 supports saving and restoring SPE registers, and turning on the
224 'spe enable' bit so user processes can execute SPE instructions.
225
226 This option is only useful if you have a processor that supports
227 SPE (e500, otherwise known as 85xx series), but does not have any
228 effect on a non-spe cpu (it does, however add code to the kernel).
229
230 If in doubt, say Y here.
231
232config PPC_STD_MMU
233 bool
234 depends on 6xx || POWER3 || POWER4 || PPC64
235 default y
236
237config PPC_STD_MMU_32
238 def_bool y
239 depends on PPC_STD_MMU && PPC32
240
241config SMP
242 depends on PPC_STD_MMU
243 bool "Symmetric multi-processing support"
244 ---help---
245 This enables support for systems with more than one CPU. If you have
246 a system with only one CPU, say N. If you have a system with more
247 than one CPU, say Y. Note that the kernel does not currently
248 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
249 since they have inadequate hardware support for multiprocessor
250 operation.
251
252 If you say N here, the kernel will run on single and multiprocessor
253 machines, but will use only one CPU of a multiprocessor machine. If
254 you say Y here, the kernel will run on single-processor machines.
255 On a single-processor machine, the kernel will run faster if you say
256 N here.
257
258 If you don't know what to do here, say N.
259
260config NR_CPUS
Olaf Heringe8a167a2005-12-01 21:10:10 +0100261 int "Maximum number of CPUs (2-128)"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000262 range 2 128
263 depends on SMP
264 default "32" if PPC64
265 default "4"
266
267config NOT_COHERENT_CACHE
268 bool
269 depends on 4xx || 8xx || E200
270 default y
271endmenu
272
273source "init/Kconfig"
274
275menu "Platform support"
Kumar Gala08264cb2006-01-10 21:43:56 -0600276 depends on PPC64 || CLASSIC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000277
278choice
279 prompt "Machine type"
280 default PPC_MULTIPLATFORM
281
282config PPC_MULTIPLATFORM
283 bool "Generic desktop/server/laptop"
284 help
285 Select this option if configuring for an IBM pSeries or
286 RS/6000 machine, an Apple machine, or a PReP, CHRP,
287 Maple or Cell-based machine.
288
289config PPC_ISERIES
290 bool "IBM Legacy iSeries"
291 depends on PPC64
292
293config EMBEDDED6xx
294 bool "Embedded 6xx/7xx/7xxx-based board"
Paul Mackerras5be396b2005-11-14 17:31:55 +1100295 depends on PPC32 && BROKEN
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000296
297config APUS
298 bool "Amiga-APUS"
299 depends on PPC32 && BROKEN
300 help
301 Select APUS if configuring for a PowerUP Amiga.
302 More information is available at:
303 <http://linux-apus.sourceforge.net/>.
304endchoice
305
306config PPC_PSERIES
307 depends on PPC_MULTIPLATFORM && PPC64
308 bool " IBM pSeries & new (POWER5-based) iSeries"
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000309 select PPC_I8259
Paul Mackerras033ef332005-10-26 17:05:24 +1000310 select PPC_RTAS
311 select RTAS_ERROR_LOGGING
Paul Mackerras13b8a272006-01-10 16:19:05 +1100312 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000313 default y
314
315config PPC_CHRP
316 bool " Common Hardware Reference Platform (CHRP) based machines"
317 depends on PPC_MULTIPLATFORM && PPC32
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000318 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000319 select PPC_INDIRECT_PCI
Paul Mackerras033ef332005-10-26 17:05:24 +1000320 select PPC_RTAS
Paul Mackerras830825d2005-10-26 17:16:38 +1000321 select PPC_MPC106
Paul Mackerras13b8a272006-01-10 16:19:05 +1100322 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000323 default y
324
325config PPC_PMAC
326 bool " Apple PowerMac based machines"
327 depends on PPC_MULTIPLATFORM
Paul Mackerras25635c72005-10-26 16:36:55 +1000328 select PPC_INDIRECT_PCI if PPC32
Paul Mackerrasb6a4ce52005-10-26 22:54:17 +1000329 select PPC_MPC106 if PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000330 default y
331
332config PPC_PMAC64
333 bool
334 depends on PPC_PMAC && POWER4
Paul Mackerras35499c02005-10-22 16:02:39 +1000335 select U3_DART
Benjamin Herrenschmidt1beb6a72005-12-14 13:10:10 +1100336 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100337 select GENERIC_TBSYNC
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000338 default y
339
340config PPC_PREP
341 bool " PowerPC Reference Platform (PReP) based machines"
Paul Mackerras5be396b2005-11-14 17:31:55 +1100342 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000343 select PPC_I8259
Paul Mackerras25635c72005-10-26 16:36:55 +1000344 select PPC_INDIRECT_PCI
Paul Mackerras13b8a272006-01-10 16:19:05 +1100345 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000346 default y
347
348config PPC_MAPLE
349 depends on PPC_MULTIPLATFORM && PPC64
350 bool " Maple 970FX Evaluation Board"
351 select U3_DART
352 select MPIC_BROKEN_U3
Paul Mackerras8ad200d2005-11-04 13:28:58 +1100353 select GENERIC_TBSYNC
Paul Mackerras13b8a272006-01-10 16:19:05 +1100354 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000355 default n
356 help
357 This option enables support for the Maple 970FX Evaluation Board.
358 For more informations, refer to <http://www.970eval.com>
359
Arnd Bergmannf3f66f52005-10-31 20:08:37 -0500360config PPC_CELL
361 bool " Cell Broadband Processor Architecture"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000362 depends on PPC_MULTIPLATFORM && PPC64
Paul Mackerras033ef332005-10-26 17:05:24 +1000363 select PPC_RTAS
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500364 select MMIO_NVRAM
Paul Mackerras13b8a272006-01-10 16:19:05 +1100365 select PPC_UDBG_16550
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000366
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000367config XICS
368 depends on PPC_PSERIES
369 bool
370 default y
371
372config U3_DART
373 bool
374 depends on PPC_MULTIPLATFORM && PPC64
375 default n
376
377config MPIC
Paul Mackerrasbbd0abd2005-10-26 21:45:56 +1000378 depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000379 bool
380 default y
381
Paul Mackerras033ef332005-10-26 17:05:24 +1000382config PPC_RTAS
383 bool
384 default n
385
386config RTAS_ERROR_LOGGING
387 bool
388 depends on PPC_RTAS
389 default n
390
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100391config RTAS_PROC
392 bool "Proc interface to RTAS"
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500393 depends on PPC_RTAS
Paul Mackerrasf4fcbbe2005-11-03 14:41:19 +1100394 default y
395
396config RTAS_FLASH
397 tristate "Firmware flash interface"
398 depends on PPC64 && RTAS_PROC
Arnd Bergmanne9add2e2005-10-31 20:08:39 -0500399
Arnd Bergmannedf03c12005-10-31 20:08:40 -0500400config MMIO_NVRAM
401 bool
402 default n
403
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000404config MPIC_BROKEN_U3
405 bool
406 depends on PPC_MAPLE
407 default y
408
Arnd Bergmannf3f66f52005-10-31 20:08:37 -0500409config CELL_IIC
410 depends on PPC_CELL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000411 bool
412 default y
413
414config IBMVIO
415 depends on PPC_PSERIES || PPC_ISERIES
416 bool
417 default y
418
Heiko J Schickd7a30102005-11-16 08:56:43 +0100419config IBMEBUS
420 depends on PPC_PSERIES
421 bool "Support for GX bus based adapters"
Heiko J Schickd7a30102005-11-16 08:56:43 +0100422 help
423 Bus device driver for GX bus based adapters.
424
Paul Mackerras830825d2005-10-26 17:16:38 +1000425config PPC_MPC106
426 bool
427 default n
428
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000429source "drivers/cpufreq/Kconfig"
430
431config CPU_FREQ_PMAC
432 bool "Support for Apple PowerBooks"
433 depends on CPU_FREQ && ADB_PMU && PPC32
434 select CPU_FREQ_TABLE
435 help
436 This adds support for frequency switching on Apple PowerBooks,
437 this currently includes some models of iBook & Titanium
438 PowerBook.
439
Benjamin Herrenschmidt43501472005-11-07 14:27:33 +1100440config CPU_FREQ_PMAC64
441 bool "Support for some Apple G5s"
442 depends on CPU_FREQ && PMAC_SMU && PPC64
443 select CPU_FREQ_TABLE
444 help
445 This adds support for frequency switching on Apple iMac G5,
446 and some of the more recent desktop G5 machines as well.
447
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000448config PPC601_SYNC_FIX
449 bool "Workarounds for PPC601 bugs"
450 depends on 6xx && (PPC_PREP || PPC_PMAC)
451 help
452 Some versions of the PPC601 (the first PowerPC chip) have bugs which
453 mean that extra synchronization instructions are required near
454 certain instructions, typically those that make major changes to the
455 CPU state. These extra instructions reduce performance slightly.
456 If you say N here, these extra instructions will not be included,
457 resulting in a kernel which will run faster but may not run at all
458 on some systems with the PPC601 chip.
459
460 If in doubt, say Y here.
461
462config TAU
463 bool "Thermal Management Support"
464 depends on 6xx
465 help
466 G3 and G4 processors have an on-chip temperature sensor called the
467 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
468 temperature within 2-4 degrees Celsius. This option shows the current
469 on-die temperature in /proc/cpuinfo if the cpu supports it.
470
471 Unfortunately, on some chip revisions, this sensor is very inaccurate
472 and in some cases, does not work at all, so don't assume the cpu
473 temp is actually what /proc/cpuinfo says it is.
474
475config TAU_INT
476 bool "Interrupt driven TAU driver (DANGEROUS)"
477 depends on TAU
478 ---help---
479 The TAU supports an interrupt driven mode which causes an interrupt
480 whenever the temperature goes out of range. This is the fastest way
481 to get notified the temp has exceeded a range. With this option off,
482 a timer is used to re-check the temperature periodically.
483
484 However, on some cpus it appears that the TAU interrupt hardware
485 is buggy and can cause a situation which would lead unexplained hard
486 lockups.
487
488 Unless you are extending the TAU driver, or enjoy kernel/hardware
489 debugging, leave this option off.
490
491config TAU_AVERAGE
492 bool "Average high and low temp"
493 depends on TAU
494 ---help---
495 The TAU hardware can compare the temperature to an upper and lower
496 bound. The default behavior is to show both the upper and lower
497 bound in /proc/cpuinfo. If the range is large, the temperature is
498 either changing a lot, or the TAU hardware is broken (likely on some
499 G4's). If the range is small (around 4 degrees), the temperature is
500 relatively stable. If you say Y here, a single temperature value,
501 halfway between the upper and lower bounds, will be reported in
502 /proc/cpuinfo.
503
504 If in doubt, say N here.
505endmenu
506
507source arch/powerpc/platforms/embedded6xx/Kconfig
508source arch/powerpc/platforms/4xx/Kconfig
Kumar Gala08264cb2006-01-10 21:43:56 -0600509source arch/powerpc/platforms/83xx/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000510source arch/powerpc/platforms/85xx/Kconfig
511source arch/powerpc/platforms/8xx/Kconfig
Arnd Bergmann67207b92005-11-15 15:53:48 -0500512source arch/powerpc/platforms/cell/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000513
514menu "Kernel options"
515
516config HIGHMEM
517 bool "High memory support"
518 depends on PPC32
519
520source kernel/Kconfig.hz
521source kernel/Kconfig.preempt
522source "fs/Kconfig.binfmt"
523
524# We optimistically allocate largepages from the VM, so make the limit
525# large enough (16MB). This badly named config option is actually
526# max order + 1
527config FORCE_MAX_ZONEORDER
528 int
529 depends on PPC64
Mike Kravetz02864862005-11-07 13:48:59 -0800530 default "9" if PPC_64K_PAGES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000531 default "13"
532
533config MATH_EMULATION
534 bool "Math emulation"
535 depends on 4xx || 8xx || E200 || E500
536 ---help---
537 Some PowerPC chips designed for embedded applications do not have
538 a floating-point unit and therefore do not implement the
539 floating-point instructions in the PowerPC instruction set. If you
540 say Y here, the kernel will include code to emulate a floating-point
541 unit, which will allow programs that use floating-point
542 instructions to run.
543
544config IOMMU_VMERGE
545 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
546 depends on EXPERIMENTAL && PPC64
547 default n
548 help
549 Cause IO segments sent to a device for DMA to be merged virtually
550 by the IOMMU when they happen to have been allocated contiguously.
551 This doesn't add pressure to the IOMMU allocator. However, some
552 drivers don't support getting large merged segments coming back
553 from *_map_sg(). Say Y if you know the drivers you are using are
554 properly handling this case.
555
556config HOTPLUG_CPU
557 bool "Support for enabling/disabling CPUs"
558 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
559 ---help---
560 Say Y here to be able to disable and re-enable individual
561 CPUs at runtime on SMP machines.
562
563 Say N if you are unsure.
564
565config KEXEC
566 bool "kexec system call (EXPERIMENTAL)"
567 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
568 help
569 kexec is a system call that implements the ability to shutdown your
570 current kernel, and to start another kernel. It is like a reboot
571 but it is indepedent of the system firmware. And like a reboot
572 you can start any kernel with it, not just Linux.
573
574 The name comes from the similiarity to the exec system call.
575
576 It is an ongoing process to be certain the hardware in a machine
577 is properly shutdown, so do not be surprised if this code does not
578 initially work for you. It may help to enable device hotplugging
579 support. As of this writing the exact hardware interface is
580 strongly in flux, so no good recommendation can be made.
581
Haren Mynenie8625d462006-01-14 13:48:25 -0800582config CRASH_DUMP
Michael Ellermancd9c99d2006-03-10 15:01:08 +1100583 bool "Build a kdump crash kernel (EXPERIMENTAL)"
Haren Mynenie8625d462006-01-14 13:48:25 -0800584 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
585 help
586 Build a kernel suitable for use as a kdump capture kernel.
587 The kernel will be linked at a different address than normal, and
588 so can only be used for Kdump.
589
590 Don't change this unless you know what you are doing.
591
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000592config EMBEDDEDBOOT
593 bool
594 depends on 8xx || 8260
595 default y
596
597config PC_KEYBOARD
598 bool "PC PS/2 style Keyboard"
599 depends on 4xx || CPM2
600
601config PPCBUG_NVRAM
602 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
603 default y if PPC_PREP
604
605config IRQ_ALL_CPUS
606 bool "Distribute interrupts on all CPUs by default"
607 depends on SMP && !MV64360
608 help
609 This option gives the kernel permission to distribute IRQs across
610 multiple CPUs. Saying N here will route all IRQs to the first
611 CPU. Generally saying Y is safe, although some problems have been
612 reported with SMP Power Macintoshes with this option enabled.
613
614source "arch/powerpc/platforms/pseries/Kconfig"
615
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700616config NUMA
617 bool "NUMA support"
618 depends on PPC64
619 default y if SMP && PPC_PSERIES
620
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000621config ARCH_SELECT_MEMORY_MODEL
622 def_bool y
623 depends on PPC64
624
625config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000626 def_bool y
627 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000628
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000629config ARCH_SPARSEMEM_ENABLE
630 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000631 depends on PPC64
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100632
633config ARCH_SPARSEMEM_DEFAULT
634 def_bool y
635 depends on SMP && PPC_PSERIES
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000636
637source "mm/Kconfig"
638
639config HAVE_ARCH_EARLY_PFN_TO_NID
640 def_bool y
641 depends on NEED_MULTIPLE_NODES
642
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800643config ARCH_MEMORY_PROBE
644 def_bool y
645 depends on MEMORY_HOTPLUG
646
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100647config PPC_64K_PAGES
648 bool "64k page size"
Benjamin Herrenschmidt863c84b2005-11-07 00:57:58 -0800649 depends on PPC64
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100650 help
651 This option changes the kernel logical page size to 64k. On machines
652 without processor support for 64k pages, the kernel will simulate
653 them by loading each individual 4k page on demand transparently,
654 while on hardware with such support, it will be used to map
655 normal application pages.
656
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000657config SCHED_SMT
658 bool "SMT (Hyperthreading) scheduler support"
659 depends on PPC64 && SMP
660 default off
661 help
662 SMT scheduler support improves the CPU scheduler's decision making
663 when dealing with POWER5 cpus at a cost of slightly increased
664 overhead in some places. If unsure say N here.
665
666config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000667 bool "Support for device tree in /proc"
668 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000669 help
670 This option adds a device-tree directory under /proc which contains
671 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000672 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000673
674source "arch/powerpc/platforms/prep/Kconfig"
675
676config CMDLINE_BOOL
677 bool "Default bootloader kernel arguments"
678 depends on !PPC_ISERIES
679
680config CMDLINE
681 string "Initial kernel command string"
682 depends on CMDLINE_BOOL
683 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
684 help
685 On some platforms, there is currently no way for the boot loader to
686 pass arguments to the kernel. For these platforms, you can supply
687 some command-line options at build time by entering them here. In
688 most cases you will need to specify the root device here.
689
690if !44x || BROKEN
691source kernel/power/Kconfig
692endif
693
694config SECCOMP
695 bool "Enable seccomp to safely compute untrusted bytecode"
696 depends on PROC_FS
697 default y
698 help
699 This kernel feature is useful for number crunching applications
700 that may need to compute untrusted bytecode during their
701 execution. By using pipes or other transports made available to
702 the process as file descriptors supporting the read/write
703 syscalls, it's possible to isolate those applications in
704 their own address space using seccomp. Once seccomp is
705 enabled via /proc/<pid>/seccomp, it cannot be disabled
706 and the task is only allowed to execute a few safe syscalls
707 defined by each seccomp mode.
708
709 If unsure, say Y. Only embedded should say N here.
710
711endmenu
712
713config ISA_DMA_API
714 bool
715 default y
716
717menu "Bus options"
718
719config ISA
720 bool "Support for ISA-bus hardware"
721 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000722 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000723 help
724 Find out whether you have ISA slots on your motherboard. ISA is the
725 name of a bus system, i.e. the way the CPU talks to the other stuff
726 inside your box. If you have an Apple machine, say N here; if you
727 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
728 you have an embedded board, consult your board documentation.
729
730config GENERIC_ISA_DMA
731 bool
732 depends on PPC64 || POWER4 || 6xx && !CPM2
733 default y
734
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000735config PPC_I8259
736 bool
737 default y if 85xx
738 default n
739
Paul Mackerras25635c72005-10-26 16:36:55 +1000740config PPC_INDIRECT_PCI
741 bool
742 depends on PCI
Kumar Gala08264cb2006-01-10 21:43:56 -0600743 default y if 40x || 44x || 85xx
Paul Mackerras25635c72005-10-26 16:36:55 +1000744 default n
745
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000746config EISA
747 bool
748
749config SBUS
750 bool
751
Kumar Gala08264cb2006-01-10 21:43:56 -0600752config FSL_SOC
753 bool
754
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000755# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
756config MCA
757 bool
758
759config PCI
Kumar Gala08264cb2006-01-10 21:43:56 -0600760 bool "PCI support" if 40x || CPM2 || PPC_83xx || 85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
761 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !85xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000762 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
763 default PCI_QSPAN if !4xx && !CPM2 && 8xx
764 help
765 Find out whether your system includes a PCI bus. PCI is the name of
766 a bus system, i.e. the way the CPU talks to the other stuff inside
767 your box. If you say Y here, the kernel will include drivers and
768 infrastructure code to support PCI bus devices.
769
770config PCI_DOMAINS
771 bool
772 default PCI
773
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000774config PCI_QSPAN
775 bool "QSpan PCI"
776 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000777 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000778 help
779 Say Y here if you have a system based on a Motorola 8xx-series
780 embedded processor with a QSPAN PCI interface, otherwise say N.
781
782config PCI_8260
783 bool
784 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000785 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000786 default y
787
788config 8260_PCI9
789 bool " Enable workaround for MPC826x erratum PCI 9"
790 depends on PCI_8260 && !ADS8272
791 default y
792
793choice
794 prompt " IDMA channel for PCI 9 workaround"
795 depends on 8260_PCI9
796
797config 8260_PCI9_IDMA1
798 bool "IDMA1"
799
800config 8260_PCI9_IDMA2
801 bool "IDMA2"
802
803config 8260_PCI9_IDMA3
804 bool "IDMA3"
805
806config 8260_PCI9_IDMA4
807 bool "IDMA4"
808
809endchoice
810
811source "drivers/pci/Kconfig"
812
813source "drivers/pcmcia/Kconfig"
814
815source "drivers/pci/hotplug/Kconfig"
816
817endmenu
818
819menu "Advanced setup"
820 depends on PPC32
821
822config ADVANCED_OPTIONS
823 bool "Prompt for advanced kernel configuration options"
824 help
825 This option will enable prompting for a variety of advanced kernel
826 configuration options. These options can cause the kernel to not
827 work if they are set incorrectly, but can be used to optimize certain
828 aspects of kernel memory management.
829
830 Unless you know what you are doing, say N here.
831
832comment "Default settings for advanced configuration options are used"
833 depends on !ADVANCED_OPTIONS
834
835config HIGHMEM_START_BOOL
836 bool "Set high memory pool address"
837 depends on ADVANCED_OPTIONS && HIGHMEM
838 help
839 This option allows you to set the base address of the kernel virtual
840 area used to map high memory pages. This can be useful in
841 optimizing the layout of kernel virtual memory.
842
843 Say N here unless you know what you are doing.
844
845config HIGHMEM_START
846 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
847 default "0xfe000000"
848
849config LOWMEM_SIZE_BOOL
850 bool "Set maximum low memory"
851 depends on ADVANCED_OPTIONS
852 help
853 This option allows you to set the maximum amount of memory which
854 will be used as "low memory", that is, memory which the kernel can
855 access directly, without having to set up a kernel virtual mapping.
856 This can be useful in optimizing the layout of kernel virtual
857 memory.
858
859 Say N here unless you know what you are doing.
860
861config LOWMEM_SIZE
862 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
863 default "0x30000000"
864
865config KERNEL_START_BOOL
866 bool "Set custom kernel base address"
867 depends on ADVANCED_OPTIONS
868 help
869 This option allows you to set the kernel virtual address at which
870 the kernel will map low memory (the kernel image will be linked at
871 this address). This can be useful in optimizing the virtual memory
872 layout of the system.
873
874 Say N here unless you know what you are doing.
875
876config KERNEL_START
877 hex "Virtual address of kernel base" if KERNEL_START_BOOL
878 default "0xc0000000"
879
880config TASK_SIZE_BOOL
881 bool "Set custom user task size"
882 depends on ADVANCED_OPTIONS
883 help
884 This option allows you to set the amount of virtual address space
885 allocated to user tasks. This can be useful in optimizing the
886 virtual memory layout of the system.
887
888 Say N here unless you know what you are doing.
889
890config TASK_SIZE
891 hex "Size of user task space" if TASK_SIZE_BOOL
892 default "0x80000000"
893
894config CONSISTENT_START_BOOL
895 bool "Set custom consistent memory pool address"
896 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
897 help
898 This option allows you to set the base virtual address
899 of the the consistent memory pool. This pool of virtual
900 memory is used to make consistent memory allocations.
901
902config CONSISTENT_START
903 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
904 default "0xff100000" if NOT_COHERENT_CACHE
905
906config CONSISTENT_SIZE_BOOL
907 bool "Set custom consistent memory pool size"
908 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
909 help
910 This option allows you to set the size of the the
911 consistent memory pool. This pool of virtual memory
912 is used to make consistent memory allocations.
913
914config CONSISTENT_SIZE
915 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
916 default "0x00200000" if NOT_COHERENT_CACHE
917
918config BOOT_LOAD_BOOL
919 bool "Set the boot link/load address"
920 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
921 help
922 This option allows you to set the initial load address of the zImage
923 or zImage.initrd file. This can be useful if you are on a board
924 which has a small amount of memory.
925
926 Say N here unless you know what you are doing.
927
928config BOOT_LOAD
929 hex "Link/load address for booting" if BOOT_LOAD_BOOL
930 default "0x00400000" if 40x || 8xx || 8260
931 default "0x01000000" if 44x
932 default "0x00800000"
933
934config PIN_TLB
935 bool "Pinned Kernel TLBs (860 ONLY)"
936 depends on ADVANCED_OPTIONS && 8xx
937endmenu
938
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000939if PPC64
940config KERNEL_START
941 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000942 default "0xc000000000000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000943endif
944
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000945source "net/Kconfig"
946
947source "drivers/Kconfig"
948
949source "fs/Kconfig"
950
951# XXX source "arch/ppc/8xx_io/Kconfig"
952
953# XXX source "arch/ppc/8260_io/Kconfig"
954
955source "arch/powerpc/platforms/iseries/Kconfig"
956
957source "lib/Kconfig"
958
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800959menu "Instrumentation Support"
960 depends on EXPERIMENTAL
961
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000962source "arch/powerpc/oprofile/Kconfig"
963
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800964config KPROBES
965 bool "Kprobes (EXPERIMENTAL)"
Linus Torvaldsadd2b6f2006-02-26 20:24:40 -0800966 depends on PPC64 && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800967 help
968 Kprobes allows you to trap at almost any kernel address and
969 execute a callback function. register_kprobe() establishes
970 a probepoint and specifies the callback. Kprobes is useful
971 for kernel debugging, non-intrusive instrumentation and testing.
972 If in doubt, say "N".
973endmenu
974
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000975source "arch/powerpc/Kconfig.debug"
976
977source "security/Kconfig"
978
979config KEYS_COMPAT
980 bool
981 depends on COMPAT && KEYS
982 default y
983
984source "crypto/Kconfig"