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