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