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