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