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