[POWERPC] Cell iommu support
[linux-2.6-block.git] / arch / powerpc / Kconfig
CommitLineData
14cf11af
PM
1# 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
14cf11af
PM
29config GENERIC_HARDIRQS
30 bool
31 default y
32
0d7012a9
IM
33config IRQ_PER_CPU
34 bool
35 default y
36
14cf11af
PM
37config RWSEM_GENERIC_SPINLOCK
38 bool
39
40config RWSEM_XCHGADD_ALGORITHM
41 bool
42 default y
43
e779b2f9
AM
44config GENERIC_HWEIGHT
45 bool
46 default y
47
14cf11af
PM
48config GENERIC_CALIBRATE_DELAY
49 bool
50 default y
51
0a9cb46a
JM
52config GENERIC_FIND_NEXT_BIT
53 bool
54 default y
55
14cf11af
PM
56config PPC
57 bool
58 default y
59
60config EARLY_PRINTK
61 bool
51d3082f 62 default y
14cf11af
PM
63
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
08264cbc
KG
86config PPC_OF
87 def_bool y
88
89config PPC_UDBG_16550
90 bool
91 default n
92
08264cbc
KG
93config GENERIC_TBSYNC
94 bool
95 default y if PPC32 && SMP
96 default n
97
e65e1fc2
AV
98config AUDIT_ARCH
99 bool
100 default y
101
f4fc4a5b
KG
102config 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
14cf11af
PM
108menu "Processor support"
109choice
110 prompt "Processor Type"
111 depends on PPC32
112 default 6xx
113
08264cbc 114config CLASSIC32
14cf11af
PM
115 bool "6xx/7xx/74xx"
116 select PPC_FPU
08264cbc 117 select 6xx
14cf11af
PM
118 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"
08264cbc
KG
131 select 6xx
132 select PPC_FPU
14cf11af
PM
133
134config PPC_82xx
135 bool "Freescale 82xx"
08264cbc
KG
136 select 6xx
137 select PPC_FPU
14cf11af
PM
138
139config PPC_83xx
140 bool "Freescale 83xx"
08264cbc
KG
141 select 6xx
142 select FSL_SOC
143 select 83xx
144 select PPC_FPU
14cf11af 145
63dafe57
BB
146config PPC_85xx
147 bool "Freescale 85xx"
148 select E500
149 select FSL_SOC
150 select 85xx
151
c9b484b5
JL
152config 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
14cf11af
PM
161config 40x
162 bool "AMCC 40x"
4c75a6f4 163 select PPC_DCR_NATIVE
14cf11af
PM
164
165config 44x
166 bool "AMCC 44x"
4c75a6f4 167 select PPC_DCR_NATIVE
14cf11af 168
14cf11af
PM
169config 8xx
170 bool "Freescale 8xx"
171
172config E200
173 bool "Freescale e200"
174
14cf11af
PM
175endchoice
176
177config POWER4_ONLY
178 bool "Optimize for POWER4"
187a0067 179 depends on PPC64
14cf11af
PM
180 default n
181 ---help---
182 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
183 The resulting binary will not work on POWER3 or RS64 processors
184 when compiled with binutils 2.15 or later.
185
186config POWER3
187 bool
187a0067 188 depends on PPC64
14cf11af
PM
189 default y if !POWER4_ONLY
190
191config POWER4
187a0067 192 depends on PPC64
14cf11af
PM
193 def_bool y
194
08264cbc
KG
195config 6xx
196 bool
197
198# this is temp to handle compat with arch=ppc
199config 83xx
200 bool
201
63dafe57
BB
202# this is temp to handle compat with arch=ppc
203config 85xx
204 bool
205
206config E500
207 bool
208
14cf11af 209config PPC_FPU
187a0067
PM
210 bool
211 default y if PPC64
14cf11af 212
4c75a6f4
BH
213config PPC_DCR_NATIVE
214 bool
215 default n
216
217config PPC_DCR_MMIO
218 bool
219 default n
220
221config PPC_DCR
222 bool
223 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
224 default y
225
4c9d2800
BH
226config PPC_OF_PLATFORM_PCI
227 bool
228 depends on PPC64 # not supported on 32 bits yet
229 default n
230
14cf11af
PM
231config BOOKE
232 bool
233 depends on E200 || E500
234 default y
235
236config FSL_BOOKE
237 bool
238 depends on E200 || E500
239 default y
240
241config PTE_64BIT
242 bool
243 depends on 44x || E500
244 default y if 44x
245 default y if E500 && PHYS_64BIT
246
247config PHYS_64BIT
248 bool 'Large physical address support' if E500
249 depends on 44x || E500
250 default y if 44x
251 ---help---
252 This option enables kernel support for larger than 32-bit physical
253 addresses. This features is not be available on all e500 cores.
254
255 If in doubt, say N here.
256
257config ALTIVEC
258 bool "AltiVec Support"
08264cbc 259 depends on CLASSIC32 || POWER4
14cf11af
PM
260 ---help---
261 This option enables kernel support for the Altivec extensions to the
262 PowerPC processor. The kernel currently supports saving and restoring
263 altivec registers, and turning on the 'altivec enable' bit so user
264 processes can execute altivec instructions.
265
266 This option is only usefully if you have a processor that supports
267 altivec (G4, otherwise known as 74xx series), but does not have
268 any affect on a non-altivec cpu (it does, however add code to the
269 kernel).
270
271 If in doubt, say Y here.
272
273config SPE
274 bool "SPE Support"
275 depends on E200 || E500
63dafe57 276 default y
14cf11af
PM
277 ---help---
278 This option enables kernel support for the Signal Processing
279 Extensions (SPE) to the PowerPC processor. The kernel currently
280 supports saving and restoring SPE registers, and turning on the
281 'spe enable' bit so user processes can execute SPE instructions.
282
283 This option is only useful if you have a processor that supports
284 SPE (e500, otherwise known as 85xx series), but does not have any
285 effect on a non-spe cpu (it does, however add code to the kernel).
286
287 If in doubt, say Y here.
288
289config PPC_STD_MMU
290 bool
291 depends on 6xx || POWER3 || POWER4 || PPC64
292 default y
293
294config PPC_STD_MMU_32
295 def_bool y
296 depends on PPC_STD_MMU && PPC32
297
c6622f63
PM
298config VIRT_CPU_ACCOUNTING
299 bool "Deterministic task and CPU time accounting"
300 depends on PPC64
301 default y
302 help
303 Select this option to enable more accurate task and CPU time
304 accounting. This is done by reading a CPU counter on each
305 kernel entry and exit and on transitions within the kernel
306 between system, softirq and hardirq state, so there is a
307 small performance impact. This also enables accounting of
308 stolen time on logically-partitioned systems running on
309 IBM POWER5-based machines.
310
311 If in doubt, say Y here.
312
14cf11af
PM
313config SMP
314 depends on PPC_STD_MMU
315 bool "Symmetric multi-processing support"
316 ---help---
317 This enables support for systems with more than one CPU. If you have
318 a system with only one CPU, say N. If you have a system with more
319 than one CPU, say Y. Note that the kernel does not currently
320 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
321 since they have inadequate hardware support for multiprocessor
322 operation.
323
324 If you say N here, the kernel will run on single and multiprocessor
325 machines, but will use only one CPU of a multiprocessor machine. If
326 you say Y here, the kernel will run on single-processor machines.
327 On a single-processor machine, the kernel will run faster if you say
328 N here.
329
330 If you don't know what to do here, say N.
331
332config NR_CPUS
e8a167ac 333 int "Maximum number of CPUs (2-128)"
14cf11af
PM
334 range 2 128
335 depends on SMP
336 default "32" if PPC64
337 default "4"
338
339config NOT_COHERENT_CACHE
340 bool
341 depends on 4xx || 8xx || E200
342 default y
343endmenu
344
345source "init/Kconfig"
346
347menu "Platform support"
08264cbc 348 depends on PPC64 || CLASSIC32
14cf11af
PM
349
350choice
351 prompt "Machine type"
352 default PPC_MULTIPLATFORM
353
354config PPC_MULTIPLATFORM
355 bool "Generic desktop/server/laptop"
356 help
357 Select this option if configuring for an IBM pSeries or
358 RS/6000 machine, an Apple machine, or a PReP, CHRP,
359 Maple or Cell-based machine.
360
14cf11af
PM
361config EMBEDDED6xx
362 bool "Embedded 6xx/7xx/7xxx-based board"
c5d56332 363 depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
14cf11af
PM
364
365config APUS
366 bool "Amiga-APUS"
367 depends on PPC32 && BROKEN
368 help
369 Select APUS if configuring for a PowerUP Amiga.
370 More information is available at:
371 <http://linux-apus.sourceforge.net/>.
372endchoice
373
98658538
LY
374config QUICC_ENGINE
375 bool
376 depends on PPC_MPC836x || PPC_MPC832x
377 default y
378 help
379 The QUICC Engine (QE) is a new generation of communications
380 coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
381 Selecting this option means that you wish to build a kernel
382 for a machine with a QE coprocessor.
383
14cf11af
PM
384config PPC_PSERIES
385 depends on PPC_MULTIPLATFORM && PPC64
4a3ecc62 386 bool "IBM pSeries & new (POWER5-based) iSeries"
7233593b 387 select MPIC
f9bd170a 388 select PPC_I8259
033ef338
PM
389 select PPC_RTAS
390 select RTAS_ERROR_LOGGING
13b8a272 391 select PPC_UDBG_16550
14cf11af
PM
392 default y
393
a542dbd3
SR
394config PPC_ISERIES
395 bool "IBM Legacy iSeries"
396 depends on PPC_MULTIPLATFORM && PPC64
4cb3cee0 397 select PPC_INDIRECT_IO
a542dbd3 398
14cf11af 399config PPC_CHRP
4a3ecc62 400 bool "Common Hardware Reference Platform (CHRP) based machines"
14cf11af 401 depends on PPC_MULTIPLATFORM && PPC32
7233593b 402 select MPIC
f9bd170a 403 select PPC_I8259
25635c71 404 select PPC_INDIRECT_PCI
033ef338 405 select PPC_RTAS
830825d6 406 select PPC_MPC106
13b8a272 407 select PPC_UDBG_16550
14cf11af
PM
408 default y
409
c37858d3
ND
410config PPC_EFIKA
411 bool "bPlan Efika 5k2. MPC5200B based computer"
412 depends on PPC_MULTIPLATFORM && PPC32
413 select PPC_RTAS
414 select RTAS_PROC
415 select PPC_MPC52xx
416 default y
417
14cf11af 418config PPC_PMAC
4a3ecc62 419 bool "Apple PowerMac based machines"
14cf11af 420 depends on PPC_MULTIPLATFORM
7233593b 421 select MPIC
25635c71 422 select PPC_INDIRECT_PCI if PPC32
b6a4ce52 423 select PPC_MPC106 if PPC32
14cf11af
PM
424 default y
425
426config PPC_PMAC64
427 bool
428 depends on PPC_PMAC && POWER4
7233593b 429 select MPIC
35499c01 430 select U3_DART
1beb6a7d 431 select MPIC_BROKEN_U3
8ad200d7 432 select GENERIC_TBSYNC
f39224a8 433 select PPC_970_NAP
14cf11af
PM
434 default y
435
436config PPC_PREP
4a3ecc62 437 bool "PowerPC Reference Platform (PReP) based machines"
5be396b0 438 depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
7233593b 439 select MPIC
f9bd170a 440 select PPC_I8259
25635c71 441 select PPC_INDIRECT_PCI
13b8a272 442 select PPC_UDBG_16550
14cf11af
PM
443 default y
444
445config PPC_MAPLE
446 depends on PPC_MULTIPLATFORM && PPC64
4a3ecc62 447 bool "Maple 970FX Evaluation Board"
7233593b 448 select MPIC
14cf11af
PM
449 select U3_DART
450 select MPIC_BROKEN_U3
8ad200d7 451 select GENERIC_TBSYNC
13b8a272 452 select PPC_UDBG_16550
f39224a8 453 select PPC_970_NAP
14cf11af
PM
454 default n
455 help
456 This option enables support for the Maple 970FX Evaluation Board.
3cb2fccc 457 For more information, refer to <http://www.970eval.com>
14cf11af 458
1e76875e
OJ
459config PPC_PASEMI
460 depends on PPC_MULTIPLATFORM && PPC64
461 bool "PA Semi SoC-based platforms"
462 default n
463 select MPIC
464 select PPC_UDBG_16550
465 select GENERIC_TBSYNC
466 help
467 This option enables support for PA Semi's PWRficient line
468 of SoC processors, including PA6T-1682M
469
f3f66f59 470config PPC_CELL
c01ea72a
GL
471 bool
472 default n
473
474config PPC_CELL_NATIVE
475 bool
476 select PPC_CELL
4c75a6f4 477 select PPC_DCR_MMIO
4c9d2800 478 select PPC_OF_PLATFORM_PCI
014da7ff 479 select PPC_INDIRECT_IO
21fb5a1d 480 select MPIC
c01ea72a
GL
481 default n
482
483config PPC_IBM_CELL_BLADE
f127a2b5 484 bool "IBM Cell Blade"
14cf11af 485 depends on PPC_MULTIPLATFORM && PPC64
c01ea72a 486 select PPC_CELL_NATIVE
033ef338 487 select PPC_RTAS
edf03c1e 488 select MMIO_NVRAM
13b8a272 489 select PPC_UDBG_16550
94b60ec1 490 select UDBG_RTAS_CONSOLE
14cf11af 491
cc46bb98 492config UDBG_RTAS_CONSOLE
9a2ded55
MN
493 bool "RTAS based debug console"
494 depends on PPC_RTAS
cc46bb98 495 default n
14cf11af 496
14cf11af
PM
497config XICS
498 depends on PPC_PSERIES
499 bool
500 default y
501
502config U3_DART
503 bool
504 depends on PPC_MULTIPLATFORM && PPC64
505 default n
506
033ef338
PM
507config PPC_RTAS
508 bool
509 default n
510
511config RTAS_ERROR_LOGGING
512 bool
513 depends on PPC_RTAS
514 default n
515
f4fcbbe9
PM
516config RTAS_PROC
517 bool "Proc interface to RTAS"
e9add2ee 518 depends on PPC_RTAS
f4fcbbe9
PM
519 default y
520
521config RTAS_FLASH
522 tristate "Firmware flash interface"
523 depends on PPC64 && RTAS_PROC
e9add2ee 524
edf03c1e
AB
525config MMIO_NVRAM
526 bool
527 default n
528
14cf11af
PM
529config MPIC_BROKEN_U3
530 bool
531 depends on PPC_MAPLE
532 default y
533
14cf11af
PM
534config IBMVIO
535 depends on PPC_PSERIES || PPC_ISERIES
536 bool
537 default y
538
d7a30103
HS
539config IBMEBUS
540 depends on PPC_PSERIES
541 bool "Support for GX bus based adapters"
d7a30103
HS
542 help
543 Bus device driver for GX bus based adapters.
544
830825d6
PM
545config PPC_MPC106
546 bool
547 default n
548
f39224a8
PM
549config PPC_970_NAP
550 bool
551 default n
552
4cb3cee0
BH
553config PPC_INDIRECT_IO
554 bool
555 select GENERIC_IOMAP
556 default n
557
558config GENERIC_IOMAP
559 bool
560 default n
561
14cf11af
PM
562source "drivers/cpufreq/Kconfig"
563
564config CPU_FREQ_PMAC
565 bool "Support for Apple PowerBooks"
566 depends on CPU_FREQ && ADB_PMU && PPC32
567 select CPU_FREQ_TABLE
568 help
569 This adds support for frequency switching on Apple PowerBooks,
570 this currently includes some models of iBook & Titanium
571 PowerBook.
572
4350147a
BH
573config CPU_FREQ_PMAC64
574 bool "Support for some Apple G5s"
7ed14c21 575 depends on CPU_FREQ && PPC64
4350147a
BH
576 select CPU_FREQ_TABLE
577 help
578 This adds support for frequency switching on Apple iMac G5,
579 and some of the more recent desktop G5 machines as well.
580
14cf11af
PM
581config PPC601_SYNC_FIX
582 bool "Workarounds for PPC601 bugs"
583 depends on 6xx && (PPC_PREP || PPC_PMAC)
584 help
585 Some versions of the PPC601 (the first PowerPC chip) have bugs which
586 mean that extra synchronization instructions are required near
587 certain instructions, typically those that make major changes to the
588 CPU state. These extra instructions reduce performance slightly.
589 If you say N here, these extra instructions will not be included,
590 resulting in a kernel which will run faster but may not run at all
591 on some systems with the PPC601 chip.
592
593 If in doubt, say Y here.
594
595config TAU
9b781727 596 bool "On-chip CPU temperature sensor support"
14cf11af
PM
597 depends on 6xx
598 help
599 G3 and G4 processors have an on-chip temperature sensor called the
600 'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
601 temperature within 2-4 degrees Celsius. This option shows the current
602 on-die temperature in /proc/cpuinfo if the cpu supports it.
603
604 Unfortunately, on some chip revisions, this sensor is very inaccurate
9b781727 605 and in many cases, does not work at all, so don't assume the cpu
14cf11af
PM
606 temp is actually what /proc/cpuinfo says it is.
607
608config TAU_INT
609 bool "Interrupt driven TAU driver (DANGEROUS)"
610 depends on TAU
611 ---help---
612 The TAU supports an interrupt driven mode which causes an interrupt
613 whenever the temperature goes out of range. This is the fastest way
614 to get notified the temp has exceeded a range. With this option off,
615 a timer is used to re-check the temperature periodically.
616
617 However, on some cpus it appears that the TAU interrupt hardware
618 is buggy and can cause a situation which would lead unexplained hard
619 lockups.
620
621 Unless you are extending the TAU driver, or enjoy kernel/hardware
622 debugging, leave this option off.
623
624config TAU_AVERAGE
625 bool "Average high and low temp"
626 depends on TAU
627 ---help---
628 The TAU hardware can compare the temperature to an upper and lower
629 bound. The default behavior is to show both the upper and lower
630 bound in /proc/cpuinfo. If the range is large, the temperature is
631 either changing a lot, or the TAU hardware is broken (likely on some
632 G4's). If the range is small (around 4 degrees), the temperature is
633 relatively stable. If you say Y here, a single temperature value,
634 halfway between the upper and lower bounds, will be reported in
635 /proc/cpuinfo.
636
637 If in doubt, say N here.
c2201536 638
14cf11af
PM
639endmenu
640
641source arch/powerpc/platforms/embedded6xx/Kconfig
642source arch/powerpc/platforms/4xx/Kconfig
ed943c1f 643source arch/powerpc/platforms/82xx/Kconfig
08264cbc 644source arch/powerpc/platforms/83xx/Kconfig
14cf11af 645source arch/powerpc/platforms/85xx/Kconfig
c9b484b5 646source arch/powerpc/platforms/86xx/Kconfig
14cf11af 647source arch/powerpc/platforms/8xx/Kconfig
67207b96 648source arch/powerpc/platforms/cell/Kconfig
14cf11af
PM
649
650menu "Kernel options"
651
652config HIGHMEM
653 bool "High memory support"
654 depends on PPC32
655
656source kernel/Kconfig.hz
657source kernel/Kconfig.preempt
658source "fs/Kconfig.binfmt"
659
660# We optimistically allocate largepages from the VM, so make the limit
661# large enough (16MB). This badly named config option is actually
662# max order + 1
663config FORCE_MAX_ZONEORDER
664 int
665 depends on PPC64
02864867 666 default "9" if PPC_64K_PAGES
14cf11af
PM
667 default "13"
668
669config MATH_EMULATION
670 bool "Math emulation"
671 depends on 4xx || 8xx || E200 || E500
672 ---help---
673 Some PowerPC chips designed for embedded applications do not have
674 a floating-point unit and therefore do not implement the
675 floating-point instructions in the PowerPC instruction set. If you
676 say Y here, the kernel will include code to emulate a floating-point
677 unit, which will allow programs that use floating-point
678 instructions to run.
679
680config IOMMU_VMERGE
681 bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
682 depends on EXPERIMENTAL && PPC64
683 default n
684 help
685 Cause IO segments sent to a device for DMA to be merged virtually
686 by the IOMMU when they happen to have been allocated contiguously.
687 This doesn't add pressure to the IOMMU allocator. However, some
688 drivers don't support getting large merged segments coming back
689 from *_map_sg(). Say Y if you know the drivers you are using are
690 properly handling this case.
691
692config HOTPLUG_CPU
693 bool "Support for enabling/disabling CPUs"
694 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
695 ---help---
696 Say Y here to be able to disable and re-enable individual
697 CPUs at runtime on SMP machines.
698
699 Say N if you are unsure.
700
cc57637b
YG
701config ARCH_ENABLE_MEMORY_HOTPLUG
702 def_bool y
703
14cf11af
PM
704config KEXEC
705 bool "kexec system call (EXPERIMENTAL)"
706 depends on PPC_MULTIPLATFORM && EXPERIMENTAL
707 help
708 kexec is a system call that implements the ability to shutdown your
709 current kernel, and to start another kernel. It is like a reboot
1f1332f7 710 but it is independent of the system firmware. And like a reboot
14cf11af
PM
711 you can start any kernel with it, not just Linux.
712
1f1332f7 713 The name comes from the similarity to the exec system call.
14cf11af
PM
714
715 It is an ongoing process to be certain the hardware in a machine
716 is properly shutdown, so do not be surprised if this code does not
717 initially work for you. It may help to enable device hotplugging
718 support. As of this writing the exact hardware interface is
719 strongly in flux, so no good recommendation can be made.
720
e8625d46 721config CRASH_DUMP
cd9c99d7 722 bool "Build a kdump crash kernel (EXPERIMENTAL)"
e8625d46
HM
723 depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
724 help
725 Build a kernel suitable for use as a kdump capture kernel.
726 The kernel will be linked at a different address than normal, and
727 so can only be used for Kdump.
728
729 Don't change this unless you know what you are doing.
730
14cf11af
PM
731config EMBEDDEDBOOT
732 bool
733 depends on 8xx || 8260
734 default y
735
736config PC_KEYBOARD
737 bool "PC PS/2 style Keyboard"
738 depends on 4xx || CPM2
739
740config PPCBUG_NVRAM
741 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
742 default y if PPC_PREP
743
744config IRQ_ALL_CPUS
745 bool "Distribute interrupts on all CPUs by default"
746 depends on SMP && !MV64360
747 help
748 This option gives the kernel permission to distribute IRQs across
749 multiple CPUs. Saying N here will route all IRQs to the first
750 CPU. Generally saying Y is safe, although some problems have been
751 reported with SMP Power Macintoshes with this option enabled.
752
753source "arch/powerpc/platforms/pseries/Kconfig"
754
ffa27b6b
AW
755config NUMA
756 bool "NUMA support"
757 depends on PPC64
758 default y if SMP && PPC_PSERIES
759
c80d79d7
YG
760config NODES_SHIFT
761 int
762 default "4"
763 depends on NEED_MULTIPLE_NODES
764
14cf11af
PM
765config ARCH_SELECT_MEMORY_MODEL
766 def_bool y
767 depends on PPC64
768
769config ARCH_FLATMEM_ENABLE
9100b205
AW
770 def_bool y
771 depends on (PPC64 && !NUMA) || PPC32
14cf11af 772
45fb6cea 773config ARCH_SPARSEMEM_ENABLE
14cf11af 774 def_bool y
9100b205 775 depends on PPC64
14cf11af 776
45fb6cea 777config ARCH_SPARSEMEM_DEFAULT
14cf11af 778 def_bool y
36b600f2 779 depends on (SMP && PPC_PSERIES) || PPC_CELL
14cf11af 780
c67c3cb4 781config ARCH_POPULATES_NODE_MAP
14cf11af 782 def_bool y
c67c3cb4
MG
783
784source "mm/Kconfig"
14cf11af 785
7e9191da
MK
786config ARCH_MEMORY_PROBE
787 def_bool y
788 depends on MEMORY_HOTPLUG
789
75167957
AW
790# Some NUMA nodes have memory ranges that span
791# other nodes. Even though a pfn is valid and
792# between a node's start and end pfns, it may not
793# reside on that node. See memmap_init_zone()
794# for details.
795config NODES_SPAN_OTHER_NODES
796 def_bool y
797 depends on NEED_MULTIPLE_NODES
798
3c726f8d
BH
799config PPC_64K_PAGES
800 bool "64k page size"
863c84b9 801 depends on PPC64
3c726f8d
BH
802 help
803 This option changes the kernel logical page size to 64k. On machines
804 without processor support for 64k pages, the kernel will simulate
805 them by loading each individual 4k page on demand transparently,
806 while on hardware with such support, it will be used to map
807 normal application pages.
808
14cf11af
PM
809config SCHED_SMT
810 bool "SMT (Hyperthreading) scheduler support"
811 depends on PPC64 && SMP
14cf11af
PM
812 help
813 SMT scheduler support improves the CPU scheduler's decision making
814 when dealing with POWER5 cpus at a cost of slightly increased
815 overhead in some places. If unsure say N here.
816
817config PROC_DEVICETREE
5f296755
PM
818 bool "Support for device tree in /proc"
819 depends on PROC_FS
14cf11af
PM
820 help
821 This option adds a device-tree directory under /proc which contains
822 an image of the device tree that the kernel copies from Open
5f296755 823 Firmware or other boot firmware. If unsure, say Y here.
14cf11af
PM
824
825source "arch/powerpc/platforms/prep/Kconfig"
826
827config CMDLINE_BOOL
828 bool "Default bootloader kernel arguments"
829 depends on !PPC_ISERIES
830
831config CMDLINE
832 string "Initial kernel command string"
833 depends on CMDLINE_BOOL
834 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
835 help
836 On some platforms, there is currently no way for the boot loader to
837 pass arguments to the kernel. For these platforms, you can supply
838 some command-line options at build time by entering them here. In
839 most cases you will need to specify the root device here.
840
841if !44x || BROKEN
842source kernel/power/Kconfig
843endif
844
845config SECCOMP
846 bool "Enable seccomp to safely compute untrusted bytecode"
847 depends on PROC_FS
848 default y
849 help
850 This kernel feature is useful for number crunching applications
851 that may need to compute untrusted bytecode during their
852 execution. By using pipes or other transports made available to
853 the process as file descriptors supporting the read/write
854 syscalls, it's possible to isolate those applications in
855 their own address space using seccomp. Once seccomp is
856 enabled via /proc/<pid>/seccomp, it cannot be disabled
857 and the task is only allowed to execute a few safe syscalls
858 defined by each seccomp mode.
859
860 If unsure, say Y. Only embedded should say N here.
861
862endmenu
863
864config ISA_DMA_API
865 bool
866 default y
867
868menu "Bus options"
869
870config ISA
871 bool "Support for ISA-bus hardware"
872 depends on PPC_PREP || PPC_CHRP
f9bd170a 873 select PPC_I8259
14cf11af
PM
874 help
875 Find out whether you have ISA slots on your motherboard. ISA is the
876 name of a bus system, i.e. the way the CPU talks to the other stuff
877 inside your box. If you have an Apple machine, say N here; if you
878 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
879 you have an embedded board, consult your board documentation.
880
881config GENERIC_ISA_DMA
882 bool
883 depends on PPC64 || POWER4 || 6xx && !CPM2
884 default y
885
7233593b
ZR
886config MPIC
887 bool
888 default n
889
890config MPIC_WEIRD
891 bool
892 default n
893
f9bd170a
PM
894config PPC_I8259
895 bool
f9bd170a
PM
896 default n
897
25635c71
PM
898config PPC_INDIRECT_PCI
899 bool
900 depends on PCI
63dafe57 901 default y if 40x || 44x
25635c71
PM
902 default n
903
14cf11af
PM
904config EISA
905 bool
906
907config SBUS
908 bool
909
08264cbc
KG
910config FSL_SOC
911 bool
912
14cf11af
PM
913# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
914config MCA
915 bool
916
917config PCI
53158620
JL
918 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
919 || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2
920 default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
921 && !PPC_85xx && !PPC_86xx
14cf11af
PM
922 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
923 default PCI_QSPAN if !4xx && !CPM2 && 8xx
924 help
925 Find out whether your system includes a PCI bus. PCI is the name of
926 a bus system, i.e. the way the CPU talks to the other stuff inside
927 your box. If you say Y here, the kernel will include drivers and
928 infrastructure code to support PCI bus devices.
929
930config PCI_DOMAINS
931 bool
932 default PCI
933
14cf11af
PM
934config PCI_QSPAN
935 bool "QSpan PCI"
936 depends on !4xx && !CPM2 && 8xx
f9bd170a 937 select PPC_I8259
14cf11af
PM
938 help
939 Say Y here if you have a system based on a Motorola 8xx-series
940 embedded processor with a QSPAN PCI interface, otherwise say N.
941
942config PCI_8260
943 bool
944 depends on PCI && 8260
25635c71 945 select PPC_INDIRECT_PCI
14cf11af
PM
946 default y
947
948config 8260_PCI9
4a3ecc62 949 bool "Enable workaround for MPC826x erratum PCI 9"
14cf11af
PM
950 depends on PCI_8260 && !ADS8272
951 default y
952
953choice
4a3ecc62 954 prompt "IDMA channel for PCI 9 workaround"
14cf11af
PM
955 depends on 8260_PCI9
956
957config 8260_PCI9_IDMA1
958 bool "IDMA1"
959
960config 8260_PCI9_IDMA2
961 bool "IDMA2"
962
963config 8260_PCI9_IDMA3
964 bool "IDMA3"
965
966config 8260_PCI9_IDMA4
967 bool "IDMA4"
968
969endchoice
970
bb53bb3d
JM
971source "drivers/pci/pcie/Kconfig"
972
14cf11af
PM
973source "drivers/pci/Kconfig"
974
975source "drivers/pcmcia/Kconfig"
976
977source "drivers/pci/hotplug/Kconfig"
978
979endmenu
980
981menu "Advanced setup"
982 depends on PPC32
983
984config ADVANCED_OPTIONS
985 bool "Prompt for advanced kernel configuration options"
986 help
987 This option will enable prompting for a variety of advanced kernel
988 configuration options. These options can cause the kernel to not
989 work if they are set incorrectly, but can be used to optimize certain
990 aspects of kernel memory management.
991
992 Unless you know what you are doing, say N here.
993
994comment "Default settings for advanced configuration options are used"
995 depends on !ADVANCED_OPTIONS
996
997config HIGHMEM_START_BOOL
998 bool "Set high memory pool address"
999 depends on ADVANCED_OPTIONS && HIGHMEM
1000 help
1001 This option allows you to set the base address of the kernel virtual
1002 area used to map high memory pages. This can be useful in
1003 optimizing the layout of kernel virtual memory.
1004
1005 Say N here unless you know what you are doing.
1006
1007config HIGHMEM_START
1008 hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
1009 default "0xfe000000"
1010
1011config LOWMEM_SIZE_BOOL
1012 bool "Set maximum low memory"
1013 depends on ADVANCED_OPTIONS
1014 help
1015 This option allows you to set the maximum amount of memory which
1016 will be used as "low memory", that is, memory which the kernel can
1017 access directly, without having to set up a kernel virtual mapping.
1018 This can be useful in optimizing the layout of kernel virtual
1019 memory.
1020
1021 Say N here unless you know what you are doing.
1022
1023config LOWMEM_SIZE
1024 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1025 default "0x30000000"
1026
1027config KERNEL_START_BOOL
1028 bool "Set custom kernel base address"
1029 depends on ADVANCED_OPTIONS
1030 help
1031 This option allows you to set the kernel virtual address at which
1032 the kernel will map low memory (the kernel image will be linked at
1033 this address). This can be useful in optimizing the virtual memory
1034 layout of the system.
1035
1036 Say N here unless you know what you are doing.
1037
1038config KERNEL_START
1039 hex "Virtual address of kernel base" if KERNEL_START_BOOL
1040 default "0xc0000000"
1041
1042config TASK_SIZE_BOOL
1043 bool "Set custom user task size"
1044 depends on ADVANCED_OPTIONS
1045 help
1046 This option allows you to set the amount of virtual address space
1047 allocated to user tasks. This can be useful in optimizing the
1048 virtual memory layout of the system.
1049
1050 Say N here unless you know what you are doing.
1051
1052config TASK_SIZE
1053 hex "Size of user task space" if TASK_SIZE_BOOL
1054 default "0x80000000"
1055
1056config CONSISTENT_START_BOOL
1057 bool "Set custom consistent memory pool address"
1058 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1059 help
1060 This option allows you to set the base virtual address
4b3f686d 1061 of the consistent memory pool. This pool of virtual
14cf11af
PM
1062 memory is used to make consistent memory allocations.
1063
1064config CONSISTENT_START
1065 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
1066 default "0xff100000" if NOT_COHERENT_CACHE
1067
1068config CONSISTENT_SIZE_BOOL
1069 bool "Set custom consistent memory pool size"
1070 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1071 help
4b3f686d 1072 This option allows you to set the size of the
14cf11af
PM
1073 consistent memory pool. This pool of virtual memory
1074 is used to make consistent memory allocations.
1075
1076config CONSISTENT_SIZE
1077 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1078 default "0x00200000" if NOT_COHERENT_CACHE
1079
1080config BOOT_LOAD_BOOL
1081 bool "Set the boot link/load address"
1082 depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1083 help
1084 This option allows you to set the initial load address of the zImage
1085 or zImage.initrd file. This can be useful if you are on a board
1086 which has a small amount of memory.
1087
1088 Say N here unless you know what you are doing.
1089
1090config BOOT_LOAD
1091 hex "Link/load address for booting" if BOOT_LOAD_BOOL
1092 default "0x00400000" if 40x || 8xx || 8260
1093 default "0x01000000" if 44x
1094 default "0x00800000"
1095
1096config PIN_TLB
1097 bool "Pinned Kernel TLBs (860 ONLY)"
1098 depends on ADVANCED_OPTIONS && 8xx
1099endmenu
1100
cabb5587
SR
1101if PPC64
1102config KERNEL_START
1103 hex
eeb2d218 1104 default "0xc000000000000000"
cabb5587
SR
1105endif
1106
14cf11af
PM
1107source "net/Kconfig"
1108
1109source "drivers/Kconfig"
1110
1111source "fs/Kconfig"
1112
1113# XXX source "arch/ppc/8xx_io/Kconfig"
1114
1115# XXX source "arch/ppc/8260_io/Kconfig"
1116
98658538
LY
1117source "arch/powerpc/sysdev/qe_lib/Kconfig"
1118
14cf11af
PM
1119source "arch/powerpc/platforms/iseries/Kconfig"
1120
1121source "lib/Kconfig"
1122
cd6b0762
PP
1123menu "Instrumentation Support"
1124 depends on EXPERIMENTAL
1125
14cf11af
PM
1126source "arch/powerpc/oprofile/Kconfig"
1127
cd6b0762
PP
1128config KPROBES
1129 bool "Kprobes (EXPERIMENTAL)"
3a872d89 1130 depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES
cd6b0762
PP
1131 help
1132 Kprobes allows you to trap at almost any kernel address and
1133 execute a callback function. register_kprobe() establishes
1134 a probepoint and specifies the callback. Kprobes is useful
1135 for kernel debugging, non-intrusive instrumentation and testing.
1136 If in doubt, say "N".
1137endmenu
1138
14cf11af
PM
1139source "arch/powerpc/Kconfig.debug"
1140
1141source "security/Kconfig"
1142
1143config KEYS_COMPAT
1144 bool
1145 depends on COMPAT && KEYS
1146 default y
1147
1148source "crypto/Kconfig"