Merge branch 'intx' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6
[sfrench/cifs-2.6.git] / 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         default n
474         help
475           This option enables support for the Maple 970FX Evaluation Board.
476           For more information, refer to <http://www.970eval.com>
477
478 config PPC_PASEMI
479         depends on PPC_MULTIPLATFORM && PPC64
480         bool "PA Semi SoC-based platforms"
481         default n
482         select MPIC
483         select PPC_UDBG_16550
484         select GENERIC_TBSYNC
485         select PPC_NATIVE
486         help
487           This option enables support for PA Semi's PWRficient line
488           of SoC processors, including PA6T-1682M
489
490 config PPC_CELL
491         bool
492         default n
493
494 config PPC_CELL_NATIVE
495         bool
496         select PPC_CELL
497         select PPC_DCR_MMIO
498         select PPC_OF_PLATFORM_PCI
499         select PPC_INDIRECT_IO
500         select PPC_NATIVE
501         select MPIC
502         default n
503
504 config PPC_IBM_CELL_BLADE
505         bool "IBM Cell Blade"
506         depends on PPC_MULTIPLATFORM && PPC64
507         select PPC_CELL_NATIVE
508         select PPC_RTAS
509         select MMIO_NVRAM
510         select PPC_UDBG_16550
511         select UDBG_RTAS_CONSOLE
512
513 config PPC_PS3
514         bool "Sony PS3"
515         depends on PPC_MULTIPLATFORM && PPC64
516         select PPC_CELL
517         help
518           This option enables support for the Sony PS3 game console
519           and other platforms using the PS3 hypervisor.
520
521 config PPC_NATIVE
522         bool
523         depends on PPC_MULTIPLATFORM
524         help
525           Support for running natively on the hardware, i.e. without
526           a hypervisor. This option is not user-selectable but should
527           be selected by all platforms that need it.
528
529 config UDBG_RTAS_CONSOLE
530         bool "RTAS based debug console"
531         depends on PPC_RTAS
532         default n
533
534 config XICS
535         depends on PPC_PSERIES
536         bool
537         default y
538
539 config U3_DART
540         bool 
541         depends on PPC_MULTIPLATFORM && PPC64
542         default n
543
544 config PPC_RTAS
545         bool
546         default n
547
548 config RTAS_ERROR_LOGGING
549         bool
550         depends on PPC_RTAS
551         default n
552
553 config RTAS_PROC
554         bool "Proc interface to RTAS"
555         depends on PPC_RTAS
556         default y
557
558 config RTAS_FLASH
559         tristate "Firmware flash interface"
560         depends on PPC64 && RTAS_PROC
561
562 config MMIO_NVRAM
563         bool
564         default n
565
566 config MPIC_BROKEN_U3
567         bool
568         depends on PPC_MAPLE
569         default y
570
571 config IBMVIO
572         depends on PPC_PSERIES || PPC_ISERIES
573         bool
574         default y
575
576 config IBMEBUS
577         depends on PPC_PSERIES
578         bool "Support for GX bus based adapters"
579         help
580           Bus device driver for GX bus based adapters.
581
582 config PPC_MPC106
583         bool
584         default n
585
586 config PPC_970_NAP
587         bool
588         default n
589
590 config PPC_INDIRECT_IO
591         bool
592         select GENERIC_IOMAP
593         default n
594
595 config GENERIC_IOMAP
596         bool
597         default n
598
599 source "drivers/cpufreq/Kconfig"
600
601 config CPU_FREQ_PMAC
602         bool "Support for Apple PowerBooks"
603         depends on CPU_FREQ && ADB_PMU && PPC32
604         select CPU_FREQ_TABLE
605         help
606           This adds support for frequency switching on Apple PowerBooks,
607           this currently includes some models of iBook & Titanium
608           PowerBook.
609
610 config CPU_FREQ_PMAC64
611         bool "Support for some Apple G5s"
612         depends on CPU_FREQ && PPC64
613         select CPU_FREQ_TABLE
614         help
615           This adds support for frequency switching on Apple iMac G5,
616           and some of the more recent desktop G5 machines as well.
617
618 config PPC601_SYNC_FIX
619         bool "Workarounds for PPC601 bugs"
620         depends on 6xx && (PPC_PREP || PPC_PMAC)
621         help
622           Some versions of the PPC601 (the first PowerPC chip) have bugs which
623           mean that extra synchronization instructions are required near
624           certain instructions, typically those that make major changes to the
625           CPU state.  These extra instructions reduce performance slightly.
626           If you say N here, these extra instructions will not be included,
627           resulting in a kernel which will run faster but may not run at all
628           on some systems with the PPC601 chip.
629
630           If in doubt, say Y here.
631
632 config TAU
633         bool "On-chip CPU temperature sensor support"
634         depends on 6xx
635         help
636           G3 and G4 processors have an on-chip temperature sensor called the
637           'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
638           temperature within 2-4 degrees Celsius. This option shows the current
639           on-die temperature in /proc/cpuinfo if the cpu supports it.
640
641           Unfortunately, on some chip revisions, this sensor is very inaccurate
642           and in many cases, does not work at all, so don't assume the cpu
643           temp is actually what /proc/cpuinfo says it is.
644
645 config TAU_INT
646         bool "Interrupt driven TAU driver (DANGEROUS)"
647         depends on TAU
648         ---help---
649           The TAU supports an interrupt driven mode which causes an interrupt
650           whenever the temperature goes out of range. This is the fastest way
651           to get notified the temp has exceeded a range. With this option off,
652           a timer is used to re-check the temperature periodically.
653
654           However, on some cpus it appears that the TAU interrupt hardware
655           is buggy and can cause a situation which would lead unexplained hard
656           lockups.
657
658           Unless you are extending the TAU driver, or enjoy kernel/hardware
659           debugging, leave this option off.
660
661 config TAU_AVERAGE
662         bool "Average high and low temp"
663         depends on TAU
664         ---help---
665           The TAU hardware can compare the temperature to an upper and lower
666           bound.  The default behavior is to show both the upper and lower
667           bound in /proc/cpuinfo. If the range is large, the temperature is
668           either changing a lot, or the TAU hardware is broken (likely on some
669           G4's). If the range is small (around 4 degrees), the temperature is
670           relatively stable.  If you say Y here, a single temperature value,
671           halfway between the upper and lower bounds, will be reported in
672           /proc/cpuinfo.
673
674           If in doubt, say N here.
675
676 endmenu
677
678 source arch/powerpc/platforms/embedded6xx/Kconfig
679 source arch/powerpc/platforms/4xx/Kconfig
680 source arch/powerpc/platforms/82xx/Kconfig
681 source arch/powerpc/platforms/83xx/Kconfig
682 source arch/powerpc/platforms/85xx/Kconfig
683 source arch/powerpc/platforms/86xx/Kconfig
684 source arch/powerpc/platforms/8xx/Kconfig
685 source arch/powerpc/platforms/cell/Kconfig
686 source arch/powerpc/platforms/ps3/Kconfig
687
688 menu "Kernel options"
689
690 config HIGHMEM
691         bool "High memory support"
692         depends on PPC32
693
694 source kernel/Kconfig.hz
695 source kernel/Kconfig.preempt
696 source "fs/Kconfig.binfmt"
697
698 # We optimistically allocate largepages from the VM, so make the limit
699 # large enough (16MB). This badly named config option is actually
700 # max order + 1
701 config FORCE_MAX_ZONEORDER
702         int
703         depends on PPC64
704         default "9" if PPC_64K_PAGES
705         default "13"
706
707 config MATH_EMULATION
708         bool "Math emulation"
709         depends on 4xx || 8xx || E200 || E500
710         ---help---
711           Some PowerPC chips designed for embedded applications do not have
712           a floating-point unit and therefore do not implement the
713           floating-point instructions in the PowerPC instruction set.  If you
714           say Y here, the kernel will include code to emulate a floating-point
715           unit, which will allow programs that use floating-point
716           instructions to run.
717
718 config IOMMU_VMERGE
719         bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
720         depends on EXPERIMENTAL && PPC64
721         default n
722         help
723           Cause IO segments sent to a device for DMA to be merged virtually
724           by the IOMMU when they happen to have been allocated contiguously.
725           This doesn't add pressure to the IOMMU allocator. However, some
726           drivers don't support getting large merged segments coming back
727           from *_map_sg(). Say Y if you know the drivers you are using are
728           properly handling this case.
729
730 config HOTPLUG_CPU
731         bool "Support for enabling/disabling CPUs"
732         depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
733         ---help---
734           Say Y here to be able to disable and re-enable individual
735           CPUs at runtime on SMP machines.
736
737           Say N if you are unsure.
738
739 config ARCH_ENABLE_MEMORY_HOTPLUG
740         def_bool y
741
742 config KEXEC
743         bool "kexec system call (EXPERIMENTAL)"
744         depends on PPC_MULTIPLATFORM && EXPERIMENTAL
745         help
746           kexec is a system call that implements the ability to shutdown your
747           current kernel, and to start another kernel.  It is like a reboot
748           but it is independent of the system firmware.   And like a reboot
749           you can start any kernel with it, not just Linux.
750
751           The name comes from the similarity to the exec system call.
752
753           It is an ongoing process to be certain the hardware in a machine
754           is properly shutdown, so do not be surprised if this code does not
755           initially work for you.  It may help to enable device hotplugging
756           support.  As of this writing the exact hardware interface is
757           strongly in flux, so no good recommendation can be made.
758
759 config CRASH_DUMP
760         bool "Build a kdump crash kernel (EXPERIMENTAL)"
761         depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
762         help
763           Build a kernel suitable for use as a kdump capture kernel.
764           The kernel will be linked at a different address than normal, and
765           so can only be used for Kdump.
766
767           Don't change this unless you know what you are doing.
768
769 config EMBEDDEDBOOT
770         bool
771         depends on 8xx || 8260
772         default y
773
774 config PC_KEYBOARD
775         bool "PC PS/2 style Keyboard"
776         depends on 4xx || CPM2
777
778 config PPCBUG_NVRAM
779         bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
780         default y if PPC_PREP
781
782 config IRQ_ALL_CPUS
783         bool "Distribute interrupts on all CPUs by default"
784         depends on SMP && !MV64360
785         help
786           This option gives the kernel permission to distribute IRQs across
787           multiple CPUs.  Saying N here will route all IRQs to the first
788           CPU.  Generally saying Y is safe, although some problems have been
789           reported with SMP Power Macintoshes with this option enabled.
790
791 source "arch/powerpc/platforms/pseries/Kconfig"
792
793 config NUMA
794         bool "NUMA support"
795         depends on PPC64
796         default y if SMP && PPC_PSERIES
797
798 config NODES_SHIFT
799         int
800         default "4"
801         depends on NEED_MULTIPLE_NODES
802
803 config ARCH_SELECT_MEMORY_MODEL
804         def_bool y
805         depends on PPC64
806
807 config ARCH_FLATMEM_ENABLE
808         def_bool y
809         depends on (PPC64 && !NUMA) || PPC32
810
811 config ARCH_SPARSEMEM_ENABLE
812         def_bool y
813         depends on PPC64
814
815 config ARCH_SPARSEMEM_DEFAULT
816         def_bool y
817         depends on (SMP && PPC_PSERIES) || PPC_CELL
818
819 config ARCH_POPULATES_NODE_MAP
820         def_bool y
821
822 source "mm/Kconfig"
823
824 config ARCH_MEMORY_PROBE
825         def_bool y
826         depends on MEMORY_HOTPLUG
827
828 # Some NUMA nodes have memory ranges that span
829 # other nodes.  Even though a pfn is valid and
830 # between a node's start and end pfns, it may not
831 # reside on that node.  See memmap_init_zone()
832 # for details.
833 config NODES_SPAN_OTHER_NODES
834         def_bool y
835         depends on NEED_MULTIPLE_NODES
836
837 config PPC_64K_PAGES
838         bool "64k page size"
839         depends on PPC64
840         help
841           This option changes the kernel logical page size to 64k. On machines
842           without processor support for 64k pages, the kernel will simulate
843           them by loading each individual 4k page on demand transparently,
844           while on hardware with such support, it will be used to map
845           normal application pages.
846
847 config SCHED_SMT
848         bool "SMT (Hyperthreading) scheduler support"
849         depends on PPC64 && SMP
850         help
851           SMT scheduler support improves the CPU scheduler's decision making
852           when dealing with POWER5 cpus at a cost of slightly increased
853           overhead in some places. If unsure say N here.
854
855 config PROC_DEVICETREE
856         bool "Support for device tree in /proc"
857         depends on PROC_FS
858         help
859           This option adds a device-tree directory under /proc which contains
860           an image of the device tree that the kernel copies from Open
861           Firmware or other boot firmware. If unsure, say Y here.
862
863 source "arch/powerpc/platforms/prep/Kconfig"
864
865 config CMDLINE_BOOL
866         bool "Default bootloader kernel arguments"
867
868 config CMDLINE
869         string "Initial kernel command string"
870         depends on CMDLINE_BOOL
871         default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
872         help
873           On some platforms, there is currently no way for the boot loader to
874           pass arguments to the kernel. For these platforms, you can supply
875           some command-line options at build time by entering them here.  In
876           most cases you will need to specify the root device here.
877
878 if !44x || BROKEN
879 source kernel/power/Kconfig
880 endif
881
882 config SECCOMP
883         bool "Enable seccomp to safely compute untrusted bytecode"
884         depends on PROC_FS
885         default y
886         help
887           This kernel feature is useful for number crunching applications
888           that may need to compute untrusted bytecode during their
889           execution. By using pipes or other transports made available to
890           the process as file descriptors supporting the read/write
891           syscalls, it's possible to isolate those applications in
892           their own address space using seccomp. Once seccomp is
893           enabled via /proc/<pid>/seccomp, it cannot be disabled
894           and the task is only allowed to execute a few safe syscalls
895           defined by each seccomp mode.
896
897           If unsure, say Y. Only embedded should say N here.
898
899 endmenu
900
901 config ISA_DMA_API
902         bool
903         default y
904
905 menu "Bus options"
906
907 config ISA
908         bool "Support for ISA-bus hardware"
909         depends on PPC_PREP || PPC_CHRP
910         select PPC_I8259
911         help
912           Find out whether you have ISA slots on your motherboard.  ISA is the
913           name of a bus system, i.e. the way the CPU talks to the other stuff
914           inside your box.  If you have an Apple machine, say N here; if you
915           have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
916           you have an embedded board, consult your board documentation.
917
918 config GENERIC_ISA_DMA
919         bool
920         depends on PPC64 || POWER4 || 6xx && !CPM2
921         default y
922
923 config MPIC
924         bool
925         default n
926
927 config MPIC_WEIRD
928         bool
929         default n
930
931 config PPC_I8259
932         bool
933         default n
934
935 config PPC_INDIRECT_PCI
936         bool
937         depends on PCI
938         default y if 40x || 44x
939         default n
940
941 config EISA
942         bool
943
944 config SBUS
945         bool
946
947 config FSL_SOC
948         bool
949
950 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
951 config MCA
952         bool
953
954 config PCI
955         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
956                 || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3
957         default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
958                 && !PPC_85xx && !PPC_86xx
959         default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
960         default PCI_QSPAN if !4xx && !CPM2 && 8xx
961         help
962           Find out whether your system includes a PCI bus. PCI is the name of
963           a bus system, i.e. the way the CPU talks to the other stuff inside
964           your box.  If you say Y here, the kernel will include drivers and
965           infrastructure code to support PCI bus devices.
966
967 config PCI_DOMAINS
968         bool
969         default PCI
970
971 config PCI_QSPAN
972         bool "QSpan PCI"
973         depends on !4xx && !CPM2 && 8xx
974         select PPC_I8259
975         help
976           Say Y here if you have a system based on a Motorola 8xx-series
977           embedded processor with a QSPAN PCI interface, otherwise say N.
978
979 config PCI_8260
980         bool
981         depends on PCI && 8260
982         select PPC_INDIRECT_PCI
983         default y
984
985 config 8260_PCI9
986         bool "Enable workaround for MPC826x erratum PCI 9"
987         depends on PCI_8260 && !ADS8272
988         default y
989
990 choice
991         prompt "IDMA channel for PCI 9 workaround"
992         depends on 8260_PCI9
993
994 config 8260_PCI9_IDMA1
995         bool "IDMA1"
996
997 config 8260_PCI9_IDMA2
998         bool "IDMA2"
999
1000 config 8260_PCI9_IDMA3
1001         bool "IDMA3"
1002
1003 config 8260_PCI9_IDMA4
1004         bool "IDMA4"
1005
1006 endchoice
1007
1008 source "drivers/pci/pcie/Kconfig"
1009
1010 source "drivers/pci/Kconfig"
1011
1012 source "drivers/pcmcia/Kconfig"
1013
1014 source "drivers/pci/hotplug/Kconfig"
1015
1016 endmenu
1017
1018 menu "Advanced setup"
1019         depends on PPC32
1020
1021 config ADVANCED_OPTIONS
1022         bool "Prompt for advanced kernel configuration options"
1023         help
1024           This option will enable prompting for a variety of advanced kernel
1025           configuration options.  These options can cause the kernel to not
1026           work if they are set incorrectly, but can be used to optimize certain
1027           aspects of kernel memory management.
1028
1029           Unless you know what you are doing, say N here.
1030
1031 comment "Default settings for advanced configuration options are used"
1032         depends on !ADVANCED_OPTIONS
1033
1034 config HIGHMEM_START_BOOL
1035         bool "Set high memory pool address"
1036         depends on ADVANCED_OPTIONS && HIGHMEM
1037         help
1038           This option allows you to set the base address of the kernel virtual
1039           area used to map high memory pages.  This can be useful in
1040           optimizing the layout of kernel virtual memory.
1041
1042           Say N here unless you know what you are doing.
1043
1044 config HIGHMEM_START
1045         hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
1046         default "0xfe000000"
1047
1048 config LOWMEM_SIZE_BOOL
1049         bool "Set maximum low memory"
1050         depends on ADVANCED_OPTIONS
1051         help
1052           This option allows you to set the maximum amount of memory which
1053           will be used as "low memory", that is, memory which the kernel can
1054           access directly, without having to set up a kernel virtual mapping.
1055           This can be useful in optimizing the layout of kernel virtual
1056           memory.
1057
1058           Say N here unless you know what you are doing.
1059
1060 config LOWMEM_SIZE
1061         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1062         default "0x30000000"
1063
1064 config KERNEL_START_BOOL
1065         bool "Set custom kernel base address"
1066         depends on ADVANCED_OPTIONS
1067         help
1068           This option allows you to set the kernel virtual address at which
1069           the kernel will map low memory (the kernel image will be linked at
1070           this address).  This can be useful in optimizing the virtual memory
1071           layout of the system.
1072
1073           Say N here unless you know what you are doing.
1074
1075 config KERNEL_START
1076         hex "Virtual address of kernel base" if KERNEL_START_BOOL
1077         default "0xc0000000"
1078
1079 config TASK_SIZE_BOOL
1080         bool "Set custom user task size"
1081         depends on ADVANCED_OPTIONS
1082         help
1083           This option allows you to set the amount of virtual address space
1084           allocated to user tasks.  This can be useful in optimizing the
1085           virtual memory layout of the system.
1086
1087           Say N here unless you know what you are doing.
1088
1089 config TASK_SIZE
1090         hex "Size of user task space" if TASK_SIZE_BOOL
1091         default "0x80000000"
1092
1093 config CONSISTENT_START_BOOL
1094         bool "Set custom consistent memory pool address"
1095         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1096         help
1097           This option allows you to set the base virtual address
1098           of the consistent memory pool.  This pool of virtual
1099           memory is used to make consistent memory allocations.
1100
1101 config CONSISTENT_START
1102         hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
1103         default "0xff100000" if NOT_COHERENT_CACHE
1104
1105 config CONSISTENT_SIZE_BOOL
1106         bool "Set custom consistent memory pool size"
1107         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1108         help
1109           This option allows you to set the size of the
1110           consistent memory pool.  This pool of virtual memory
1111           is used to make consistent memory allocations.
1112
1113 config CONSISTENT_SIZE
1114         hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1115         default "0x00200000" if NOT_COHERENT_CACHE
1116
1117 config BOOT_LOAD_BOOL
1118         bool "Set the boot link/load address"
1119         depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1120         help
1121           This option allows you to set the initial load address of the zImage
1122           or zImage.initrd file.  This can be useful if you are on a board
1123           which has a small amount of memory.
1124
1125           Say N here unless you know what you are doing.
1126
1127 config BOOT_LOAD
1128         hex "Link/load address for booting" if BOOT_LOAD_BOOL
1129         default "0x00400000" if 40x || 8xx || 8260
1130         default "0x01000000" if 44x
1131         default "0x00800000"
1132
1133 config PIN_TLB
1134         bool "Pinned Kernel TLBs (860 ONLY)"
1135         depends on ADVANCED_OPTIONS && 8xx
1136 endmenu
1137
1138 if PPC64
1139 config KERNEL_START
1140         hex
1141         default "0xc000000000000000"
1142 endif
1143
1144 source "net/Kconfig"
1145
1146 source "drivers/Kconfig"
1147
1148 source "fs/Kconfig"
1149
1150 # XXX source "arch/ppc/8xx_io/Kconfig"
1151
1152 # XXX source "arch/ppc/8260_io/Kconfig"
1153
1154 source "arch/powerpc/sysdev/qe_lib/Kconfig"
1155
1156 source "arch/powerpc/platforms/iseries/Kconfig"
1157
1158 source "lib/Kconfig"
1159
1160 menu "Instrumentation Support"
1161         depends on EXPERIMENTAL
1162
1163 source "arch/powerpc/oprofile/Kconfig"
1164
1165 config KPROBES
1166         bool "Kprobes (EXPERIMENTAL)"
1167         depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES
1168         help
1169           Kprobes allows you to trap at almost any kernel address and
1170           execute a callback function.  register_kprobe() establishes
1171           a probepoint and specifies the callback.  Kprobes is useful
1172           for kernel debugging, non-intrusive instrumentation and testing.
1173           If in doubt, say "N".
1174 endmenu
1175
1176 source "arch/powerpc/Kconfig.debug"
1177
1178 source "security/Kconfig"
1179
1180 config KEYS_COMPAT
1181         bool
1182         depends on COMPAT && KEYS
1183         default y
1184
1185 source "crypto/Kconfig"