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