[PATCH] ppc64: prep for NUMA sparsemem rework 2
[linux-2.6] / arch / ppc / 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 MMU
8         bool
9         default y
10
11 config UID16
12         bool
13
14 config GENERIC_HARDIRQS
15         bool
16         default y
17
18 config RWSEM_GENERIC_SPINLOCK
19         bool
20
21 config RWSEM_XCHGADD_ALGORITHM
22         bool
23         default y
24
25 config GENERIC_CALIBRATE_DELAY
26         bool
27         default y
28
29 config PPC
30         bool
31         default y
32
33 config PPC32
34         bool
35         default y
36
37 # All PPCs use generic nvram driver through ppc_md
38 config GENERIC_NVRAM
39         bool
40         default y
41
42 config SCHED_NO_NO_OMIT_FRAME_POINTER
43         bool
44         default y
45
46 config ARCH_MAY_HAVE_PC_FDC
47         bool
48         default y
49
50 source "init/Kconfig"
51
52 menu "Processor"
53
54 choice
55         prompt "Processor Type"
56         default 6xx
57
58 config 6xx
59         bool "6xx/7xx/74xx/52xx/82xx/83xx"
60         select PPC_FPU
61         help
62           There are four types of PowerPC chips supported.  The more common
63           types (601, 603, 604, 740, 750, 7400), the Motorola embedded
64           versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the IBM embedded
65           versions (403 and 405) and the high end 64 bit Power processors
66           (POWER 3, POWER4, and IBM 970 also known as G5)
67           Unless you are building a kernel for one of the embedded processor
68           systems, 64 bit IBM RS/6000 or an Apple G5, choose 6xx.
69           Note that the kernel runs in 32-bit mode even on 64-bit chips.
70           Also note that because the 52xx, 82xx, & 83xx family has a 603e core,
71           specific support for that chipset is asked later on.
72
73 config 40x
74         bool "40x"
75
76 config 44x
77         bool "44x"
78
79 config POWER3
80         select PPC_FPU
81         bool "POWER3"
82
83 config POWER4
84         select PPC_FPU
85         bool "POWER4 and 970 (G5)"
86
87 config 8xx
88         bool "8xx"
89
90 config E200
91         bool "e200"
92
93 config E500
94         bool "e500"
95
96 endchoice
97
98 config PPC_FPU
99         bool
100
101 config BOOKE
102         bool
103         depends on E200 || E500
104         default y
105
106 config FSL_BOOKE
107         bool
108         depends on E200 || E500
109         default y
110
111 config PTE_64BIT
112         bool
113         depends on 44x || E500
114         default y if 44x
115         default y if E500 && PHYS_64BIT
116
117 config PHYS_64BIT
118         bool 'Large physical address support' if E500
119         depends on 44x || E500
120         default y if 44x
121         ---help---
122           This option enables kernel support for larger than 32-bit physical
123           addresses.  This features is not be available on all e500 cores.
124
125           If in doubt, say N here.
126
127 config ALTIVEC
128         bool "AltiVec Support"
129         depends on 6xx || POWER4
130         depends on !8260 && !83xx
131         ---help---
132           This option enables kernel support for the Altivec extensions to the
133           PowerPC processor. The kernel currently supports saving and restoring
134           altivec registers, and turning on the 'altivec enable' bit so user
135           processes can execute altivec instructions.
136
137           This option is only usefully if you have a processor that supports
138           altivec (G4, otherwise known as 74xx series), but does not have
139           any affect on a non-altivec cpu (it does, however add code to the
140           kernel).
141
142           If in doubt, say Y here.
143
144 config SPE
145         bool "SPE Support"
146         depends on E200 || E500
147         ---help---
148           This option enables kernel support for the Signal Processing
149           Extensions (SPE) to the PowerPC processor. The kernel currently
150           supports saving and restoring SPE registers, and turning on the
151           'spe enable' bit so user processes can execute SPE instructions.
152
153           This option is only useful if you have a processor that supports
154           SPE (e500, otherwise known as 85xx series), but does not have any
155           effect on a non-spe cpu (it does, however add code to the kernel).
156
157           If in doubt, say Y here.
158
159 config TAU
160         bool "Thermal Management Support"
161         depends on 6xx && !8260 && !83xx
162         help
163           G3 and G4 processors have an on-chip temperature sensor called the
164           'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
165           temperature within 2-4 degrees Celsius. This option shows the current
166           on-die temperature in /proc/cpuinfo if the cpu supports it.
167
168           Unfortunately, on some chip revisions, this sensor is very inaccurate
169           and in some cases, does not work at all, so don't assume the cpu
170           temp is actually what /proc/cpuinfo says it is.
171
172 config TAU_INT
173         bool "Interrupt driven TAU driver (DANGEROUS)"
174         depends on TAU
175         ---help---
176           The TAU supports an interrupt driven mode which causes an interrupt
177           whenever the temperature goes out of range. This is the fastest way
178           to get notified the temp has exceeded a range. With this option off,
179           a timer is used to re-check the temperature periodically.
180
181           However, on some cpus it appears that the TAU interrupt hardware
182           is buggy and can cause a situation which would lead unexplained hard
183           lockups.
184
185           Unless you are extending the TAU driver, or enjoy kernel/hardware
186           debugging, leave this option off.
187
188 config TAU_AVERAGE
189         bool "Average high and low temp"
190         depends on TAU
191         ---help---
192           The TAU hardware can compare the temperature to an upper and lower
193           bound.  The default behavior is to show both the upper and lower
194           bound in /proc/cpuinfo. If the range is large, the temperature is
195           either changing a lot, or the TAU hardware is broken (likely on some
196           G4's). If the range is small (around 4 degrees), the temperature is
197           relatively stable.  If you say Y here, a single temperature value,
198           halfway between the upper and lower bounds, will be reported in
199           /proc/cpuinfo.
200
201           If in doubt, say N here.
202
203 config MATH_EMULATION
204         bool "Math emulation"
205         depends on 4xx || 8xx || E200 || E500
206         ---help---
207           Some PowerPC chips designed for embedded applications do not have
208           a floating-point unit and therefore do not implement the
209           floating-point instructions in the PowerPC instruction set.  If you
210           say Y here, the kernel will include code to emulate a floating-point
211           unit, which will allow programs that use floating-point
212           instructions to run.
213
214           If you have an Apple machine or an IBM RS/6000 or pSeries machine,
215           or any machine with a 6xx, 7xx or 7xxx series processor, say N
216           here.  Saying Y here will not hurt performance (on any machine) but
217           will increase the size of the kernel.
218
219 config KEXEC
220         bool "kexec system call (EXPERIMENTAL)"
221         depends on EXPERIMENTAL
222         help
223           kexec is a system call that implements the ability to shutdown your
224           current kernel, and to start another kernel.  It is like a reboot
225           but it is indepedent of the system firmware.   And like a reboot
226           you can start any kernel with it, not just Linux.
227
228           The name comes from the similiarity to the exec system call.
229
230           It is an ongoing process to be certain the hardware in a machine
231           is properly shutdown, so do not be surprised if this code does not
232           initially work for you.  It may help to enable device hotplugging
233           support.  As of this writing the exact hardware interface is
234           strongly in flux, so no good recommendation can be made.
235
236           In the GameCube implementation, kexec allows you to load and
237           run DOL files, including kernel and homebrew DOLs.
238
239 source "drivers/cpufreq/Kconfig"
240
241 config CPU_FREQ_PMAC
242         bool "Support for Apple PowerBooks"
243         depends on CPU_FREQ && ADB_PMU
244         select CPU_FREQ_TABLE
245         help
246           This adds support for frequency switching on Apple PowerBooks,
247           this currently includes some models of iBook & Titanium
248           PowerBook.
249
250 config PPC601_SYNC_FIX
251         bool "Workarounds for PPC601 bugs"
252         depends on 6xx && (PPC_PREP || PPC_PMAC)
253         help
254           Some versions of the PPC601 (the first PowerPC chip) have bugs which
255           mean that extra synchronization instructions are required near
256           certain instructions, typically those that make major changes to the
257           CPU state.  These extra instructions reduce performance slightly.
258           If you say N here, these extra instructions will not be included,
259           resulting in a kernel which will run faster but may not run at all
260           on some systems with the PPC601 chip.
261
262           If in doubt, say Y here.
263
264 config HOTPLUG_CPU
265         bool "Support for enabling/disabling CPUs"
266         depends on SMP && HOTPLUG && EXPERIMENTAL && PPC_PMAC
267         ---help---
268           Say Y here to be able to disable and re-enable individual
269           CPUs at runtime on SMP machines.
270
271           Say N if you are unsure.
272
273 source arch/ppc/platforms/4xx/Kconfig
274 source arch/ppc/platforms/85xx/Kconfig
275
276 config PPC64BRIDGE
277         bool
278         depends on POWER3 || POWER4
279         default y
280
281 config PPC_STD_MMU
282         bool
283         depends on 6xx || POWER3 || POWER4
284         default y
285
286 config NOT_COHERENT_CACHE
287         bool
288         depends on 4xx || 8xx || E200
289         default y
290
291 endmenu
292
293 menu "Platform options"
294
295 config FADS
296         bool
297
298 choice
299         prompt "8xx Machine Type"
300         depends on 8xx
301         default RPXLITE
302
303 config RPXLITE
304         bool "RPX-Lite"
305         ---help---
306           Single-board computers based around the PowerPC MPC8xx chips and
307           intended for embedded applications.  The following types are
308           supported:
309
310           RPX-Lite:
311           Embedded Planet RPX Lite. PC104 form-factor SBC based on the MPC823.
312
313           RPX-Classic:
314           Embedded Planet RPX Classic Low-fat. Credit-card-size SBC based on
315           the MPC 860
316
317           BSE-IP:
318           Bright Star Engineering ip-Engine.
319
320           TQM823L:
321           TQM850L:
322           TQM855L:
323           TQM860L:
324           MPC8xx based family of mini modules, half credit card size,
325           up to 64 MB of RAM, 8 MB Flash, (Fast) Ethernet, 2 x serial ports,
326           2 x CAN bus interface, ...
327           Manufacturer: TQ Components, www.tq-group.de
328           Date of Release: October (?) 1999
329           End of Life: not yet :-)
330           URL:
331           - module: <http://www.denx.de/PDF/TQM8xxLHWM201.pdf>
332           - starter kit: <http://www.denx.de/PDF/STK8xxLHWM201.pdf>
333           - images: <http://www.denx.de/embedded-ppc-en.html>
334
335           FPS850L:
336           FingerPrint Sensor System (based on TQM850L)
337           Manufacturer: IKENDI AG, <http://www.ikendi.com/>
338           Date of Release: November 1999
339           End of life: end 2000 ?
340           URL: see TQM850L
341
342           IVMS8:
343           MPC860 based board used in the "Integrated Voice Mail System",
344           Small Version (8 voice channels)
345           Manufacturer: Speech Design, <http://www.speech-design.de/>
346           Date of Release: December 2000 (?)
347           End of life: -
348           URL: <http://www.speech-design.de/>
349
350           IVML24:
351           MPC860 based board used in the "Integrated Voice Mail System",
352           Large Version (24 voice channels)
353           Manufacturer: Speech Design, <http://www.speech-design.de/>
354           Date of Release: March 2001  (?)
355           End of life: -
356           URL: <http://www.speech-design.de/>
357
358           HERMES:
359           Hermes-Pro ISDN/LAN router with integrated 8 x hub
360           Manufacturer: Multidata Gesellschaft fur Datentechnik und Informatik
361           <http://www.multidata.de/>
362           Date of Release: 2000 (?)
363           End of life: -
364           URL: <http://www.multidata.de/english/products/hpro.htm>
365
366           IP860:
367           VMEBus IP (Industry Pack) carrier board with MPC860
368           Manufacturer: MicroSys GmbH, <http://www.microsys.de/>
369           Date of Release: ?
370           End of life: -
371           URL: <http://www.microsys.de/html/ip860.html>
372
373           PCU_E:
374           PCU = Peripheral Controller Unit, Extended
375           Manufacturer: Siemens AG, ICN (Information and Communication Networks)
376                 <http://www.siemens.de/page/1,3771,224315-1-999_2_226207-0,00.html>
377           Date of Release: April 2001
378           End of life: August 2001
379           URL: n. a.
380
381 config RPXCLASSIC
382         bool "RPX-Classic"
383         help
384           The RPX-Classic is a single-board computer based on the Motorola
385           MPC860.  It features 16MB of DRAM and a variable amount of flash,
386           I2C EEPROM, thermal monitoring, a PCMCIA slot, a DIP switch and two
387           LEDs.  Variants with Ethernet ports exist.  Say Y here to support it
388           directly.
389
390 config BSEIP
391         bool "BSE-IP"
392         help
393           Say Y here to support the Bright Star Engineering ipEngine SBC.
394           This is a credit-card-sized device featuring a MPC823 processor,
395           26MB DRAM, 4MB flash, Ethernet, a 16K-gate FPGA, USB, an LCD/video
396           controller, and two RS232 ports.
397
398 config MPC8XXFADS
399         bool "FADS"
400         select FADS
401
402 config MPC86XADS
403         bool "MPC86XADS"
404         help
405           MPC86x Application Development System by Freescale Semiconductor.
406           The MPC86xADS is meant to serve as a platform for s/w and h/w
407           development around the MPC86X processor families.
408         select FADS
409
410 config MPC885ADS
411         bool "MPC885ADS"
412         help
413           Freescale Semiconductor MPC885 Application Development System (ADS).
414           Also known as DUET.
415           The MPC885ADS is meant to serve as a platform for s/w and h/w
416           development around the MPC885 processor family.
417
418 config TQM823L
419         bool "TQM823L"
420         help
421           Say Y here to support the TQM823L, one of an MPC8xx-based family of
422           mini SBCs (half credit-card size) from TQ Components first released
423           in late 1999.  Technical references are at
424           <http://www.denx.de/PDF/TQM8xxLHWM201.pdf>, and
425           <http://www.denx.de/PDF/STK8xxLHWM201.pdf>, and an image at
426           <http://www.denx.de/embedded-ppc-en.html>.
427
428 config TQM850L
429         bool "TQM850L"
430         help
431           Say Y here to support the TQM850L, one of an MPC8xx-based family of
432           mini SBCs (half credit-card size) from TQ Components first released
433           in late 1999.  Technical references are at
434           <http://www.denx.de/PDF/TQM8xxLHWM201.pdf>, and
435           <http://www.denx.de/PDF/STK8xxLHWM201.pdf>, and an image at
436           <http://www.denx.de/embedded-ppc-en.html>.
437
438 config TQM855L
439         bool "TQM855L"
440         help
441           Say Y here to support the TQM855L, one of an MPC8xx-based family of
442           mini SBCs (half credit-card size) from TQ Components first released
443           in late 1999.  Technical references are at
444           <http://www.denx.de/PDF/TQM8xxLHWM201.pdf>, and
445           <http://www.denx.de/PDF/STK8xxLHWM201.pdf>, and an image at
446           <http://www.denx.de/embedded-ppc-en.html>.
447
448 config TQM860L
449         bool "TQM860L"
450         help
451           Say Y here to support the TQM860L, one of an MPC8xx-based family of
452           mini SBCs (half credit-card size) from TQ Components first released
453           in late 1999.  Technical references are at
454           <http://www.denx.de/PDF/TQM8xxLHWM201.pdf>, and
455           <http://www.denx.de/PDF/STK8xxLHWM201.pdf>, and an image at
456           <http://www.denx.de/embedded-ppc-en.html>.
457
458 config FPS850L
459         bool "FPS850L"
460
461 config IVMS8
462         bool "IVMS8"
463         help
464           Say Y here to support the Integrated Voice-Mail Small 8-channel SBC
465           from Speech Design, released March 2001.  The manufacturer's website
466           is at <http://www.speech-design.de/>.
467
468 config IVML24
469         bool "IVML24"
470         help
471           Say Y here to support the Integrated Voice-Mail Large 24-channel SBC
472           from Speech Design, released March 2001.  The manufacturer's website
473           is at <http://www.speech-design.de/>.
474
475 config HERMES_PRO
476         bool "HERMES"
477
478 config IP860
479         bool "IP860"
480
481 config LWMON
482         bool "LWMON"
483
484 config PCU_E
485         bool "PCU_E"
486
487 config CCM
488         bool "CCM"
489
490 config LANTEC
491         bool "LANTEC"
492
493 config MBX
494         bool "MBX"
495         help
496           MBX is a line of Motorola single-board computer based around the
497           MPC821 and MPC860 processors, and intended for embedded-controller
498           applications.  Say Y here to support these boards directly.
499
500 config WINCEPT
501         bool "WinCept"
502         help
503           The Wincept 100/110 is a Motorola single-board computer based on the
504           MPC821 PowerPC, introduced in 1998 and designed to be used in
505           thin-client machines.  Say Y to support it directly.
506
507 endchoice
508
509 choice
510         prompt "Machine Type"
511         depends on 6xx || POWER3 || POWER4
512         default PPC_MULTIPLATFORM
513         ---help---
514           Linux currently supports several different kinds of PowerPC-based
515           machines: Apple Power Macintoshes and clones (such as the Motorola
516           Starmax series), PReP (PowerPC Reference Platform) machines (such
517           as the Motorola PowerStacks, Motorola cPCI/VME embedded systems,
518           and some IBM RS/6000 systems), CHRP (Common Hardware Reference
519           Platform) machines (including all of the recent IBM RS/6000 and
520           pSeries machines), and several embedded PowerPC systems containing
521           4xx, 6xx, 7xx, 8xx, 74xx, and 82xx processors.  Currently, the
522           default option is to build a kernel which works on the first three.
523
524           Select CHRP/PowerMac/PReP if configuring for an IBM RS/6000 or
525           pSeries machine, a Power Macintosh (including iMacs, iBooks and
526           Powerbooks), or a PReP machine.
527
528           Select Gemini if configuring for a Synergy Microsystems' Gemini
529           series Single Board Computer.  More information is available at:
530           <http://www.synergymicro.com/PressRel/97_10_15.html>.
531
532           Select APUS if configuring for a PowerUP Amiga.  More information is
533           available at: <http://linux-apus.sourceforge.net/>.
534
535 config PPC_MULTIPLATFORM
536         bool "CHRP/PowerMac/PReP"
537
538 config APUS
539         bool "Amiga-APUS"
540         depends on BROKEN
541         help
542           Select APUS if configuring for a PowerUP Amiga.
543           More information is available at:
544           <http://linux-apus.sourceforge.net/>.
545
546 config KATANA
547         bool "Artesyn-Katana"
548         help
549           Select KATANA if configuring an Artesyn KATANA 750i or 3750
550           cPCI board.
551
552 config WILLOW
553         bool "Cogent-Willow"
554
555 config CPCI690
556         bool "Force-CPCI690"
557         help
558           Select CPCI690 if configuring a Force CPCI690 cPCI board.
559
560 config POWERPMC250
561         bool "Force-PowerPMC250"
562
563 config CHESTNUT
564         bool "IBM 750FX Eval board or 750GX Eval board"
565         help
566           Select CHESTNUT if configuring an IBM 750FX Eval Board or a
567           IBM 750GX Eval board.
568
569 config SPRUCE
570         bool "IBM-Spruce"
571         select PPC_INDIRECT_PCI
572
573 config HDPU
574         bool "Sky-HDPU"
575         help
576           Select HDPU if configuring a Sky Computers Compute Blade.
577
578 config HDPU_FEATURES
579         depends HDPU
580         tristate "HDPU-Features"
581         help
582           Select to enable HDPU enhanced features.
583
584 config EV64260
585         bool "Marvell-EV64260BP"
586         help
587           Select EV64260 if configuring a Marvell (formerly Galileo)
588           EV64260BP Evaluation platform.
589
590 config LOPEC
591         bool "Motorola-LoPEC"
592         select PPC_I8259
593
594 config MVME5100
595         bool "Motorola-MVME5100"
596         select PPC_INDIRECT_PCI
597
598 config PPLUS
599         bool "Motorola-PowerPlus"
600         select PPC_I8259
601         select PPC_INDIRECT_PCI
602
603 config PRPMC750
604         bool "Motorola-PrPMC750"
605         select PPC_INDIRECT_PCI
606
607 config PRPMC800
608         bool "Motorola-PrPMC800"
609         select PPC_INDIRECT_PCI
610
611 config SANDPOINT
612         bool "Motorola-Sandpoint"
613         select PPC_I8259
614         help
615           Select SANDPOINT if configuring for a Motorola Sandpoint X3
616           (any flavor).
617
618 config RADSTONE_PPC7D
619         bool "Radstone Technology PPC7D board"
620         select PPC_I8259
621
622 config PAL4
623         bool "SBS-Palomar4"
624
625 config GEMINI
626         bool "Synergy-Gemini"
627         depends on BROKEN
628         select PPC_INDIRECT_PCI
629         help
630           Select Gemini if configuring for a Synergy Microsystems' Gemini
631           series Single Board Computer.  More information is available at:
632           <http://www.synergymicro.com/PressRel/97_10_15.html>.
633
634 config EST8260
635         bool "EST8260"
636         ---help---
637           The EST8260 is a single-board computer manufactured by Wind River
638           Systems, Inc. (formerly Embedded Support Tools Corp.) and based on
639           the MPC8260.  Wind River Systems has a website at
640           <http://www.windriver.com/>, but the EST8260 cannot be found on it
641           and has probably been discontinued or rebadged.
642
643 config SBC82xx
644         bool "SBC82xx"
645         ---help---
646           SBC PowerQUICC II, single-board computer with MPC82xx CPU
647           Manufacturer: Wind River Systems, Inc.
648           Date of Release: May 2003
649           End of Life: -
650           URL: <http://www.windriver.com/>
651
652 config SBS8260
653         bool "SBS8260"
654
655 config RPX8260
656         bool "RPXSUPER"
657
658 config TQM8260
659         bool "TQM8260"
660         ---help---
661           MPC8260 based module, little larger than credit card,
662           up to 128 MB global + 64 MB local RAM, 32 MB Flash,
663           32 kB EEPROM, 256 kB L@ Cache, 10baseT + 100baseT Ethernet,
664           2 x serial ports, ...
665           Manufacturer: TQ Components, www.tq-group.de
666           Date of Release: June 2001
667           End of Life: not yet :-)
668           URL: <http://www.denx.de/PDF/TQM82xx_SPEC_Rev005.pdf>
669
670 config ADS8272
671         bool "ADS8272"
672
673 config PQ2FADS
674         bool "Freescale-PQ2FADS"
675         help
676           Select PQ2FADS if you wish to configure for a Freescale
677           PQ2FADS board (-VR or -ZU).
678
679 config LITE5200
680         bool "Freescale LITE5200 / (IceCube)"
681         select PPC_MPC52xx
682         help
683           Support for the LITE5200 dev board for the MPC5200 from Freescale.
684           This is for the LITE5200 version 2.0 board. Don't know if it changes
685           much but it's only been tested on this board version. I think this
686           board is also known as IceCube.
687
688 config MPC834x_SYS
689         bool "Freescale MPC834x SYS"
690         help
691           This option enables support for the MPC 834x SYS evaluation board.
692
693           Be aware that PCI buses can only function when SYS board is plugged
694           into the PIB (Platform IO Board) board from Freescale which provide
695           3 PCI slots.  The PIBs PCI initialization is the bootloader's
696           responsiblilty.
697
698 config EV64360
699         bool "Marvell-EV64360BP"
700         help
701           Select EV64360 if configuring a Marvell EV64360BP Evaluation
702           platform.
703 endchoice
704
705 config PQ2ADS
706         bool
707         depends on ADS8272
708         default y
709
710 config TQM8xxL
711         bool
712         depends on 8xx && (TQM823L || TQM850L || FPS850L || TQM855L || TQM860L)
713         default y
714
715 config EMBEDDEDBOOT
716         bool
717         depends on 8xx || 8260
718         default y
719
720 config PPC_MPC52xx
721         bool
722
723 config 8260
724         bool "CPM2 Support" if WILLOW
725         depends on 6xx
726         default y if TQM8260 || RPX8260 || EST8260 || SBS8260 || SBC82xx || PQ2FADS
727         help
728           The MPC8260 is a typical embedded CPU made by Motorola.  Selecting
729           this option means that you wish to build a kernel for a machine with
730           an 8260 class CPU.
731
732 config 8272
733         bool
734         depends on 6xx
735         default y if ADS8272
736         select 8260
737         help
738           The MPC8272 CPM has a different internal dpram setup than other CPM2
739           devices
740
741 config 83xx
742         bool
743         default y if MPC834x_SYS
744
745 config MPC834x
746         bool
747         default y if MPC834x_SYS
748
749 config CPM1
750         bool
751         depends on 8xx
752         default y
753         help
754           The CPM1 (Communications Processor Module) is a coprocessor on
755           embedded CPUs made by Motorola.  Selecting this option means that
756           you wish to build a kernel for a machine with a CPM1 coprocessor
757           on it (8xx, 827x, 8560).
758
759 config CPM2
760         bool
761         depends on 8260 || MPC8560 || MPC8555
762         default y
763         help
764           The CPM2 (Communications Processor Module) is a coprocessor on
765           embedded CPUs made by Motorola.  Selecting this option means that
766           you wish to build a kernel for a machine with a CPM2 coprocessor
767           on it (826x, 827x, 8560).
768
769 config PPC_CHRP
770         bool "  Common Hardware Reference Platform (CHRP) based machines"
771         depends on PPC_MULTIPLATFORM
772         select PPC_I8259
773         select PPC_INDIRECT_PCI
774         default y
775
776 config PPC_PMAC
777         bool "  Apple PowerMac based machines"
778         depends on PPC_MULTIPLATFORM
779         select PPC_INDIRECT_PCI
780         default y
781
782 config PPC_PMAC64
783         bool
784         depends on PPC_PMAC && POWER4
785         default y
786
787 config PPC_PREP
788         bool "  PowerPC Reference Platform (PReP) based machines"
789         depends on PPC_MULTIPLATFORM
790         select PPC_I8259
791         select PPC_INDIRECT_PCI
792         default y
793
794 config PPC_OF
795         bool
796         depends on PPC_PMAC || PPC_CHRP
797         default y
798
799 config PPC_GEN550
800         bool
801         depends on SANDPOINT || SPRUCE || PPLUS || \
802                 PRPMC750 || PRPMC800 || LOPEC || \
803                 (EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D || \
804                 83xx
805         default y
806
807 config FORCE
808         bool
809         depends on 6xx && POWERPMC250
810         default y
811
812 config GT64260
813         bool
814         depends on EV64260 || CPCI690
815         default y
816
817 config MV64360          # Really MV64360 & MV64460
818         bool
819         depends on CHESTNUT || KATANA || RADSTONE_PPC7D || HDPU || EV64360
820         default y
821
822 config MV64X60
823         bool
824         depends on (GT64260 || MV64360)
825         select PPC_INDIRECT_PCI
826         default y
827
828 menu "Set bridge options"
829         depends on MV64X60
830
831 config NOT_COHERENT_CACHE
832         bool "Turn off Cache Coherency"
833         default n
834         help
835           Some 64x60 bridges lock up when trying to enforce cache coherency.
836           When this option is selected, cache coherency will be turned off.
837           Note that this can cause other problems (e.g., stale data being
838           speculatively loaded via a cached mapping).  Use at your own risk.
839
840 config MV64X60_BASE
841         hex "Set bridge base used by firmware"
842         default "0xf1000000"
843         help
844           A firmware can leave the base address of the bridge's registers at
845           a non-standard location.  If so, set this value to reflect the
846           address of that non-standard location.
847
848 config MV64X60_NEW_BASE
849         hex "Set bridge base used by kernel"
850         default "0xf1000000"
851         help
852           If the current base address of the bridge's registers is not where
853           you want it, set this value to the address that you want it moved to.
854
855 endmenu
856
857 config NONMONARCH_SUPPORT
858         bool "Enable Non-Monarch Support"
859         depends on PRPMC800
860
861 config HARRIER
862         bool
863         depends on PRPMC800
864         default y
865
866 config EPIC_SERIAL_MODE
867         bool
868         depends on 6xx && (LOPEC || SANDPOINT)
869         default y
870
871 config MPC10X_BRIDGE
872         bool
873         depends on POWERPMC250 || LOPEC || SANDPOINT
874         select PPC_INDIRECT_PCI
875         default y
876
877 config MPC10X_OPENPIC
878         bool
879         depends on POWERPMC250 || LOPEC || SANDPOINT
880         default y
881
882 config MPC10X_STORE_GATHERING
883         bool "Enable MPC10x store gathering"
884         depends on MPC10X_BRIDGE
885
886 config SANDPOINT_ENABLE_UART1
887         bool "Enable DUART mode on Sandpoint"
888         depends on SANDPOINT
889         help
890           If this option is enabled then the MPC824x processor will run
891           in DUART mode instead of UART mode.
892
893 config HARRIER_STORE_GATHERING
894         bool "Enable Harrier store gathering"
895         depends on HARRIER
896
897 config MVME5100_IPMC761_PRESENT
898         bool "MVME5100 configured with an IPMC761"
899         depends on MVME5100
900         select PPC_I8259
901
902 config SPRUCE_BAUD_33M
903         bool "Spruce baud clock support"
904         depends on SPRUCE
905
906 config PC_KEYBOARD
907         bool "PC PS/2 style Keyboard"
908         depends on 4xx || CPM2
909
910 config PPCBUG_NVRAM
911         bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
912         default y if PPC_PREP
913
914 config SMP
915         depends on PPC_STD_MMU
916         bool "Symmetric multi-processing support"
917         ---help---
918           This enables support for systems with more than one CPU. If you have
919           a system with only one CPU, say N. If you have a system with more
920           than one CPU, say Y.  Note that the kernel does not currently
921           support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
922           since they have inadequate hardware support for multiprocessor
923           operation.
924
925           If you say N here, the kernel will run on single and multiprocessor
926           machines, but will use only one CPU of a multiprocessor machine. If
927           you say Y here, the kernel will run on single-processor machines.
928           On a single-processor machine, the kernel will run faster if you say
929           N here.
930
931           If you don't know what to do here, say N.
932
933 config IRQ_ALL_CPUS
934         bool "Distribute interrupts on all CPUs by default"
935         depends on SMP && !MV64360
936         help
937           This option gives the kernel permission to distribute IRQs across
938           multiple CPUs.  Saying N here will route all IRQs to the first
939           CPU.  Generally saying Y is safe, although some problems have been
940           reported with SMP Power Macintoshes with this option enabled.
941
942 config NR_CPUS
943         int "Maximum number of CPUs (2-32)"
944         range 2 32
945         depends on SMP
946         default "4"
947
948 config HIGHMEM
949         bool "High memory support"
950
951 source kernel/Kconfig.hz
952 source kernel/Kconfig.preempt
953 source "mm/Kconfig"
954
955 source "fs/Kconfig.binfmt"
956
957 config PROC_DEVICETREE
958         bool "Support for Open Firmware device tree in /proc"
959         depends on PPC_OF && PROC_FS
960         help
961           This option adds a device-tree directory under /proc which contains
962           an image of the device tree that the kernel copies from Open
963           Firmware. If unsure, say Y here.
964
965 config PREP_RESIDUAL
966         bool "Support for PReP Residual Data"
967         depends on PPC_PREP
968         help
969           Some PReP systems have residual data passed to the kernel by the
970           firmware.  This allows detection of memory size, devices present and
971           other useful pieces of information.  Sometimes this information is
972           not present or incorrect, in which case it could lead to the machine 
973           behaving incorrectly.  If this happens, either disable PREP_RESIDUAL
974           or pass the 'noresidual' option to the kernel.
975
976           If you are running a PReP system, say Y here, otherwise say N.
977
978 config PROC_PREPRESIDUAL
979         bool "Support for reading of PReP Residual Data in /proc"
980         depends on PREP_RESIDUAL && PROC_FS
981         help
982           Enabling this option will create a /proc/residual file which allows
983           you to get at the residual data on PReP systems.  You will need a tool
984           (lsresidual) to parse it.  If you aren't on a PReP system, you don't
985           want this.
986
987 config CMDLINE_BOOL
988         bool "Default bootloader kernel arguments"
989
990 config CMDLINE
991         string "Initial kernel command string"
992         depends on CMDLINE_BOOL
993         default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
994         help
995           On some platforms, there is currently no way for the boot loader to
996           pass arguments to the kernel. For these platforms, you can supply
997           some command-line options at build time by entering them here.  In
998           most cases you will need to specify the root device here.
999
1000 config AMIGA
1001         bool
1002         depends on APUS
1003         default y
1004         help
1005           This option enables support for the Amiga series of computers.
1006
1007 config ZORRO
1008         bool
1009         depends on APUS
1010         default y
1011         help
1012           This enables support for the Zorro bus in the Amiga. If you have
1013           expansion cards in your Amiga that conform to the Amiga
1014           AutoConfig(tm) specification, say Y, otherwise N. Note that even
1015           expansion cards that do not fit in the Zorro slots but fit in e.g.
1016           the CPU slot may fall in this category, so you have to say Y to let
1017           Linux use these.
1018
1019 config ABSTRACT_CONSOLE
1020         bool
1021         depends on APUS
1022         default y
1023
1024 config APUS_FAST_EXCEPT
1025         bool
1026         depends on APUS
1027         default y
1028
1029 config AMIGA_PCMCIA
1030         bool "Amiga 1200/600 PCMCIA support"
1031         depends on APUS && EXPERIMENTAL
1032         help
1033           Include support in the kernel for pcmcia on Amiga 1200 and Amiga
1034           600. If you intend to use pcmcia cards say Y; otherwise say N.
1035
1036 config AMIGA_BUILTIN_SERIAL
1037         tristate "Amiga builtin serial support"
1038         depends on APUS
1039         help
1040           If you want to use your Amiga's built-in serial port in Linux,
1041           answer Y.
1042
1043           To compile this driver as a module, choose M here.
1044
1045 config GVPIOEXT
1046         tristate "GVP IO-Extender support"
1047         depends on APUS
1048         help
1049           If you want to use a GVP IO-Extender serial card in Linux, say Y.
1050           Otherwise, say N.
1051
1052 config GVPIOEXT_LP
1053         tristate "GVP IO-Extender parallel printer support"
1054         depends on GVPIOEXT
1055         help
1056           Say Y to enable driving a printer from the parallel port on your
1057           GVP IO-Extender card, N otherwise.
1058
1059 config GVPIOEXT_PLIP
1060         tristate "GVP IO-Extender PLIP support"
1061         depends on GVPIOEXT
1062         help
1063           Say Y to enable doing IP over the parallel port on your GVP
1064           IO-Extender card, N otherwise.
1065
1066 config MULTIFACE_III_TTY
1067         tristate "Multiface Card III serial support"
1068         depends on APUS
1069         help
1070           If you want to use a Multiface III card's serial port in Linux,
1071           answer Y.
1072
1073           To compile this driver as a module, choose M here.
1074
1075 config A2232
1076         tristate "Commodore A2232 serial support (EXPERIMENTAL)"
1077         depends on EXPERIMENTAL && APUS
1078         ---help---
1079           This option supports the 2232 7-port serial card shipped with the
1080           Amiga 2000 and other Zorro-bus machines, dating from 1989.  At
1081           a max of 19,200 bps, the ports are served by a 6551 ACIA UART chip
1082           each, plus a 8520 CIA, and a master 6502 CPU and buffer as well. The
1083           ports were connected with 8 pin DIN connectors on the card bracket,
1084           for which 8 pin to DB25 adapters were supplied. The card also had
1085           jumpers internally to toggle various pinning configurations.
1086
1087           This driver can be built as a module; but then "generic_serial"
1088           will also be built as a module. This has to be loaded before
1089           "ser_a2232". If you want to do this, answer M here.
1090
1091 config WHIPPET_SERIAL
1092         tristate "Hisoft Whippet PCMCIA serial support"
1093         depends on AMIGA_PCMCIA
1094         help
1095           HiSoft has a web page at <http://www.hisoft.co.uk/>, but there
1096           is no listing for the Whippet in their Amiga section.
1097
1098 config APNE
1099         tristate "PCMCIA NE2000 support"
1100         depends on AMIGA_PCMCIA
1101         help
1102           If you have a PCMCIA NE2000 compatible adapter, say Y.  Otherwise,
1103           say N.
1104
1105           To compile this driver as a module, choose M here: the
1106           module will be called apne.
1107
1108 config SERIAL_CONSOLE
1109         bool "Support for serial port console"
1110         depends on APUS && (AMIGA_BUILTIN_SERIAL=y || GVPIOEXT=y || MULTIFACE_III_TTY=y)
1111
1112 config HEARTBEAT
1113         bool "Use power LED as a heartbeat"
1114         depends on APUS
1115         help
1116           Use the power-on LED on your machine as a load meter.  The exact
1117           behavior is platform-dependent, but normally the flash frequency is
1118           a hyperbolic function of the 5-minute load average.
1119
1120 config PROC_HARDWARE
1121         bool "/proc/hardware support"
1122         depends on APUS
1123
1124 source "drivers/zorro/Kconfig"
1125
1126 if !44x || BROKEN
1127 source kernel/power/Kconfig
1128 endif
1129
1130 config SECCOMP
1131         bool "Enable seccomp to safely compute untrusted bytecode"
1132         depends on PROC_FS
1133         default y
1134         help
1135           This kernel feature is useful for number crunching applications
1136           that may need to compute untrusted bytecode during their
1137           execution. By using pipes or other transports made available to
1138           the process as file descriptors supporting the read/write
1139           syscalls, it's possible to isolate those applications in
1140           their own address space using seccomp. Once seccomp is
1141           enabled via /proc/<pid>/seccomp, it cannot be disabled
1142           and the task is only allowed to execute a few safe syscalls
1143           defined by each seccomp mode.
1144
1145           If unsure, say Y. Only embedded should say N here.
1146
1147 endmenu
1148
1149 config ISA_DMA_API
1150         bool
1151         default y
1152
1153 menu "Bus options"
1154
1155 config ISA
1156         bool "Support for ISA-bus hardware"
1157         depends on PPC_PREP || PPC_CHRP
1158         select PPC_I8259
1159         help
1160           Find out whether you have ISA slots on your motherboard.  ISA is the
1161           name of a bus system, i.e. the way the CPU talks to the other stuff
1162           inside your box.  If you have an Apple machine, say N here; if you
1163           have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
1164           you have an embedded board, consult your board documentation.
1165
1166 config GENERIC_ISA_DMA
1167         bool
1168         depends on POWER3 || POWER4 || 6xx && !CPM2
1169         default y
1170
1171 config PPC_I8259
1172         bool
1173         default y if 85xx
1174         default n
1175
1176 config PPC_INDIRECT_PCI
1177         bool
1178         depends on PCI
1179         default y if 40x || 44x || 85xx || 83xx
1180         default n
1181
1182 config EISA
1183         bool
1184         help
1185           The Extended Industry Standard Architecture (EISA) bus is a bus
1186           architecture used on some older intel-based PCs.
1187
1188 config SBUS
1189         bool
1190
1191 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
1192 config MCA
1193         bool
1194
1195 config PCI
1196         bool "PCI support" if 40x || CPM2 || 83xx || 85xx || PPC_MPC52xx
1197         default y if !40x && !CPM2 && !8xx && !APUS && !83xx && !85xx
1198         default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
1199         default PCI_QSPAN if !4xx && !CPM2 && 8xx
1200         help
1201           Find out whether your system includes a PCI bus. PCI is the name of
1202           a bus system, i.e. the way the CPU talks to the other stuff inside
1203           your box.  If you say Y here, the kernel will include drivers and
1204           infrastructure code to support PCI bus devices.
1205
1206 config PCI_DOMAINS
1207         bool
1208         default PCI
1209
1210 config MPC83xx_PCI2
1211         bool "  Supprt for 2nd PCI host controller"
1212         depends on PCI && MPC834x
1213         default y if MPC834x_SYS
1214
1215 config PCI_QSPAN
1216         bool "QSpan PCI"
1217         depends on !4xx && !CPM2 && 8xx
1218         select PPC_I8259
1219         help
1220           Say Y here if you have a system based on a Motorola 8xx-series
1221           embedded processor with a QSPAN PCI interface, otherwise say N.
1222
1223 config PCI_8260
1224         bool
1225         depends on PCI && 8260
1226         select PPC_INDIRECT_PCI
1227         default y
1228
1229 config 8260_PCI9
1230         bool "  Enable workaround for MPC826x erratum PCI 9"
1231         depends on PCI_8260 && !ADS8272
1232         default y
1233
1234 choice
1235         prompt "  IDMA channel for PCI 9 workaround"
1236         depends on 8260_PCI9
1237
1238 config 8260_PCI9_IDMA1
1239         bool "IDMA1"
1240
1241 config 8260_PCI9_IDMA2
1242         bool "IDMA2"
1243
1244 config 8260_PCI9_IDMA3
1245         bool "IDMA3"
1246
1247 config 8260_PCI9_IDMA4
1248         bool "IDMA4"
1249
1250 endchoice
1251
1252 config PCI_PERMEDIA
1253         bool "PCI for Permedia2"
1254         depends on !4xx && !8xx && APUS
1255
1256 source "drivers/pci/Kconfig"
1257
1258 source "drivers/pcmcia/Kconfig"
1259
1260 config RAPIDIO
1261         bool "RapidIO support" if MPC8540 || MPC8560
1262         help
1263           If you say Y here, the kernel will include drivers and
1264           infrastructure code to support RapidIO interconnect devices.
1265
1266 source "drivers/rapidio/Kconfig"
1267
1268 endmenu
1269
1270 menu "Advanced setup"
1271
1272 config ADVANCED_OPTIONS
1273         bool "Prompt for advanced kernel configuration options"
1274         help
1275           This option will enable prompting for a variety of advanced kernel
1276           configuration options.  These options can cause the kernel to not
1277           work if they are set incorrectly, but can be used to optimize certain
1278           aspects of kernel memory management.
1279
1280           Unless you know what you are doing, say N here.
1281
1282 comment "Default settings for advanced configuration options are used"
1283         depends on !ADVANCED_OPTIONS
1284
1285 config HIGHMEM_START_BOOL
1286         bool "Set high memory pool address"
1287         depends on ADVANCED_OPTIONS && HIGHMEM
1288         help
1289           This option allows you to set the base address of the kernel virtual
1290           area used to map high memory pages.  This can be useful in
1291           optimizing the layout of kernel virtual memory.
1292
1293           Say N here unless you know what you are doing.
1294
1295 config HIGHMEM_START
1296         hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
1297         default "0xfe000000"
1298
1299 config LOWMEM_SIZE_BOOL
1300         bool "Set maximum low memory"
1301         depends on ADVANCED_OPTIONS
1302         help
1303           This option allows you to set the maximum amount of memory which
1304           will be used as "low memory", that is, memory which the kernel can
1305           access directly, without having to set up a kernel virtual mapping.
1306           This can be useful in optimizing the layout of kernel virtual
1307           memory.
1308
1309           Say N here unless you know what you are doing.
1310
1311 config LOWMEM_SIZE
1312         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1313         default "0x30000000"
1314
1315 config KERNEL_START_BOOL
1316         bool "Set custom kernel base address"
1317         depends on ADVANCED_OPTIONS
1318         help
1319           This option allows you to set the kernel virtual address at which
1320           the kernel will map low memory (the kernel image will be linked at
1321           this address).  This can be useful in optimizing the virtual memory
1322           layout of the system.
1323
1324           Say N here unless you know what you are doing.
1325
1326 config KERNEL_START
1327         hex "Virtual address of kernel base" if KERNEL_START_BOOL
1328         default "0xc0000000"
1329
1330 config TASK_SIZE_BOOL
1331         bool "Set custom user task size"
1332         depends on ADVANCED_OPTIONS
1333         help
1334           This option allows you to set the amount of virtual address space
1335           allocated to user tasks.  This can be useful in optimizing the
1336           virtual memory layout of the system.
1337
1338           Say N here unless you know what you are doing.
1339
1340 config TASK_SIZE
1341         hex "Size of user task space" if TASK_SIZE_BOOL
1342         default "0x80000000"
1343
1344 config CONSISTENT_START_BOOL
1345         bool "Set custom consistent memory pool address"
1346         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1347         help
1348           This option allows you to set the base virtual address
1349           of the the consistent memory pool.  This pool of virtual
1350           memory is used to make consistent memory allocations.
1351
1352 config CONSISTENT_START
1353         hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
1354         default "0xff100000" if NOT_COHERENT_CACHE
1355
1356 config CONSISTENT_SIZE_BOOL
1357         bool "Set custom consistent memory pool size"
1358         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1359         help
1360           This option allows you to set the size of the the
1361           consistent memory pool.  This pool of virtual memory
1362           is used to make consistent memory allocations.
1363
1364 config CONSISTENT_SIZE
1365         hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1366         default "0x00200000" if NOT_COHERENT_CACHE
1367
1368 config BOOT_LOAD_BOOL
1369         bool "Set the boot link/load address"
1370         depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1371         help
1372           This option allows you to set the initial load address of the zImage
1373           or zImage.initrd file.  This can be useful if you are on a board
1374           which has a small amount of memory.
1375
1376           Say N here unless you know what you are doing.
1377
1378 config BOOT_LOAD
1379         hex "Link/load address for booting" if BOOT_LOAD_BOOL
1380         default "0x00400000" if 40x || 8xx || 8260
1381         default "0x01000000" if 44x
1382         default "0x00800000"
1383
1384 config PIN_TLB
1385         bool "Pinned Kernel TLBs (860 ONLY)"
1386         depends on ADVANCED_OPTIONS && 8xx
1387 endmenu
1388
1389 source "net/Kconfig"
1390
1391 source "drivers/Kconfig"
1392
1393 source "fs/Kconfig"
1394
1395 source "arch/ppc/8xx_io/Kconfig"
1396
1397 source "arch/ppc/8260_io/Kconfig"
1398
1399
1400 menu "IBM 40x options"
1401         depends on 40x
1402
1403 config SERIAL_SICC
1404         bool "SICC Serial port"
1405         depends on STB03xxx
1406
1407 config UART1_DFLT_CONSOLE
1408         bool
1409         depends on SERIAL_SICC && UART0_TTYS1
1410         default y
1411
1412 config SERIAL_SICC_CONSOLE
1413         bool
1414         depends on SERIAL_SICC && UART0_TTYS1
1415         default y
1416
1417 endmenu
1418
1419 source "lib/Kconfig"
1420
1421 source "arch/powerpc/oprofile/Kconfig"
1422
1423 source "arch/ppc/Kconfig.debug"
1424
1425 source "security/Kconfig"
1426
1427 source "crypto/Kconfig"