[MIPS] MIPSsim: Move code away from the other MIPS Inc. BSP code.
[safe/jmp/linux-2.6] / arch / mips / Kconfig
1 config MIPS
2         bool
3         default y
4         # Horrible source of confusion.  Die, die, die ...
5         select EMBEDDED
6
7 mainmenu "Linux/MIPS Kernel Configuration"
8
9 menu "Machine selection"
10
11 config ZONE_DMA
12         bool
13
14 choice
15         prompt "System type"
16         default SGI_IP22
17
18 config MACH_ALCHEMY
19         bool "Alchemy processor based machines"
20
21 config BASLER_EXCITE
22         bool "Basler eXcite smart camera"
23         select DMA_COHERENT
24         select HW_HAS_PCI
25         select IRQ_CPU
26         select IRQ_CPU_RM7K
27         select IRQ_CPU_RM9K
28         select MIPS_RM9122
29         select SYS_HAS_CPU_RM9000
30         select SYS_SUPPORTS_32BIT_KERNEL
31         select SYS_SUPPORTS_64BIT_KERNEL
32         select SYS_SUPPORTS_BIG_ENDIAN
33         select SYS_SUPPORTS_KGDB
34         help
35           The eXcite is a smart camera platform manufactured by
36           Basler Vision Technologies AG.
37
38 config BASLER_EXCITE_PROTOTYPE
39         bool "Support for pre-release units"
40         depends on BASLER_EXCITE
41         default n
42         help
43           Pre-series (prototype) units are different from later ones in
44           some ways. Select this option if you have one of these. Please
45           note that a kernel built with this option selected will not be
46           able to run on normal units.
47
48 config MIPS_COBALT
49         bool "Cobalt Server"
50         select DMA_NONCOHERENT
51         select HW_HAS_PCI
52         select I8259
53         select IRQ_CPU
54         select PCI_GT64XXX_PCI0
55         select SYS_HAS_CPU_NEVADA
56         select SYS_HAS_EARLY_PRINTK
57         select SYS_SUPPORTS_32BIT_KERNEL
58         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
59         select SYS_SUPPORTS_LITTLE_ENDIAN
60         select GENERIC_HARDIRQS_NO__DO_IRQ
61
62 config MACH_DECSTATION
63         bool "DECstations"
64         select BOOT_ELF32
65         select DMA_NONCOHERENT
66         select SYS_HAS_EARLY_PRINTK
67         select IRQ_CPU
68         select SYS_HAS_CPU_R3000
69         select SYS_HAS_CPU_R4X00
70         select SYS_SUPPORTS_32BIT_KERNEL
71         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
72         select SYS_SUPPORTS_LITTLE_ENDIAN
73         select SYS_SUPPORTS_128HZ
74         select SYS_SUPPORTS_256HZ
75         select SYS_SUPPORTS_1024HZ
76         help
77           This enables support for DEC's MIPS based workstations.  For details
78           see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
79           DECstation porting pages on <http://decstation.unix-ag.org/>.
80
81           If you have one of the following DECstation Models you definitely
82           want to choose R4xx0 for the CPU Type:
83
84                 DECstation 5000/50
85                 DECstation 5000/150
86                 DECstation 5000/260
87                 DECsystem 5900/260
88
89           otherwise choose R3000.
90
91 config MIPS_EV64120
92         bool "Galileo EV64120 Evaluation board (EXPERIMENTAL)"
93         depends on EXPERIMENTAL
94         select DMA_NONCOHERENT
95         select HW_HAS_PCI
96         select PCI_GT64XXX_PCI0
97         select SYS_HAS_CPU_R5000
98         select SYS_SUPPORTS_32BIT_KERNEL
99         select SYS_SUPPORTS_64BIT_KERNEL
100         select SYS_SUPPORTS_BIG_ENDIAN
101         select SYS_SUPPORTS_KGDB
102         help
103           This is an evaluation board based on the Galileo GT-64120
104           single-chip system controller that contains a MIPS R5000 compatible
105           core running at 75/100MHz.  Their website is located at
106           <http://www.marvell.com/>.  Say Y here if you wish to build a
107           kernel for this platform.
108
109 config MACH_JAZZ
110         bool "Jazz family of machines"
111         select ARC
112         select ARC32
113         select ARCH_MAY_HAVE_PC_FDC
114         select GENERIC_ISA_DMA
115         select I8253
116         select I8259
117         select ISA
118         select SYS_HAS_CPU_R4X00
119         select SYS_SUPPORTS_32BIT_KERNEL
120         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
121         select SYS_SUPPORTS_100HZ
122         select GENERIC_HARDIRQS_NO__DO_IRQ
123         help
124          This a family of machines based on the MIPS R4030 chipset which was
125          used by several vendors to build RISC/os and Windows NT workstations.
126          Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and
127          Olivetti M700-10 workstations.
128
129 config LASAT
130         bool "LASAT Networks platforms"
131         select DMA_NONCOHERENT
132         select SYS_HAS_EARLY_PRINTK
133         select HW_HAS_PCI
134         select PCI_GT64XXX_PCI0
135         select MIPS_NILE4
136         select R5000_CPU_SCACHE
137         select SYS_HAS_CPU_R5000
138         select SYS_SUPPORTS_32BIT_KERNEL
139         select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
140         select SYS_SUPPORTS_LITTLE_ENDIAN
141         select GENERIC_HARDIRQS_NO__DO_IRQ
142
143 config MIPS_ATLAS
144         bool "MIPS Atlas board"
145         select BOOT_ELF32
146         select DMA_NONCOHERENT
147         select SYS_HAS_EARLY_PRINTK
148         select IRQ_CPU
149         select HW_HAS_PCI
150         select MIPS_BOARDS_GEN
151         select MIPS_BONITO64
152         select PCI_GT64XXX_PCI0
153         select MIPS_MSC
154         select RM7000_CPU_SCACHE
155         select SWAP_IO_SPACE
156         select SYS_HAS_CPU_MIPS32_R1
157         select SYS_HAS_CPU_MIPS32_R2
158         select SYS_HAS_CPU_MIPS64_R1
159         select SYS_HAS_CPU_NEVADA
160         select SYS_HAS_CPU_RM7000
161         select SYS_SUPPORTS_32BIT_KERNEL
162         select SYS_SUPPORTS_64BIT_KERNEL
163         select SYS_SUPPORTS_BIG_ENDIAN
164         select SYS_SUPPORTS_LITTLE_ENDIAN
165         select SYS_SUPPORTS_MULTITHREADING if EXPERIMENTAL
166         select SYS_SUPPORTS_SMARTMIPS
167         select GENERIC_HARDIRQS_NO__DO_IRQ
168         help
169           This enables support for the MIPS Technologies Atlas evaluation
170           board.
171
172 config MIPS_MALTA
173         bool "MIPS Malta board"
174         select ARCH_MAY_HAVE_PC_FDC
175         select BOOT_ELF32
176         select HAVE_STD_PC_SERIAL_PORT
177         select DMA_NONCOHERENT
178         select GENERIC_ISA_DMA
179         select IRQ_CPU
180         select HW_HAS_PCI
181         select I8259
182         select MIPS_BOARDS_GEN
183         select MIPS_BONITO64
184         select MIPS_CPU_SCACHE
185         select PCI_GT64XXX_PCI0
186         select MIPS_MSC
187         select SWAP_IO_SPACE
188         select SYS_HAS_CPU_MIPS32_R1
189         select SYS_HAS_CPU_MIPS32_R2
190         select SYS_HAS_CPU_MIPS64_R1
191         select SYS_HAS_CPU_NEVADA
192         select SYS_HAS_CPU_RM7000
193         select SYS_HAS_EARLY_PRINTK
194         select SYS_SUPPORTS_32BIT_KERNEL
195         select SYS_SUPPORTS_64BIT_KERNEL
196         select SYS_SUPPORTS_BIG_ENDIAN
197         select SYS_SUPPORTS_LITTLE_ENDIAN
198         select SYS_SUPPORTS_MULTITHREADING
199         select SYS_SUPPORTS_SMARTMIPS
200         help
201           This enables support for the MIPS Technologies Malta evaluation
202           board.
203
204 config MIPS_SEAD
205         bool "MIPS SEAD board (EXPERIMENTAL)"
206         depends on EXPERIMENTAL
207         select IRQ_CPU
208         select DMA_NONCOHERENT
209         select SYS_HAS_EARLY_PRINTK
210         select MIPS_BOARDS_GEN
211         select SYS_HAS_CPU_MIPS32_R1
212         select SYS_HAS_CPU_MIPS32_R2
213         select SYS_HAS_CPU_MIPS64_R1
214         select SYS_SUPPORTS_32BIT_KERNEL
215         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
216         select SYS_SUPPORTS_BIG_ENDIAN
217         select SYS_SUPPORTS_LITTLE_ENDIAN
218         select SYS_SUPPORTS_SMARTMIPS
219         help
220           This enables support for the MIPS Technologies SEAD evaluation
221           board.
222
223 config WR_PPMC
224         bool "Wind River PPMC board"
225         select IRQ_CPU
226         select BOOT_ELF32
227         select DMA_NONCOHERENT
228         select HW_HAS_PCI
229         select PCI_GT64XXX_PCI0
230         select SWAP_IO_SPACE
231         select SYS_HAS_CPU_MIPS32_R1
232         select SYS_HAS_CPU_MIPS32_R2
233         select SYS_HAS_CPU_MIPS64_R1
234         select SYS_HAS_CPU_NEVADA
235         select SYS_HAS_CPU_RM7000
236         select SYS_SUPPORTS_32BIT_KERNEL
237         select SYS_SUPPORTS_64BIT_KERNEL
238         select SYS_SUPPORTS_BIG_ENDIAN
239         select SYS_SUPPORTS_LITTLE_ENDIAN
240         help
241           This enables support for the Wind River MIPS32 4KC PPMC evaluation
242           board, which is based on GT64120 bridge chip.
243
244 config MIPS_SIM
245         bool 'MIPS simulator (MIPSsim)'
246         select DMA_NONCOHERENT
247         select SYS_HAS_EARLY_PRINTK
248         select IRQ_CPU
249         select SYS_HAS_CPU_MIPS32_R1
250         select SYS_HAS_CPU_MIPS32_R2
251         select SYS_HAS_EARLY_PRINTK
252         select SYS_SUPPORTS_32BIT_KERNEL
253         select SYS_SUPPORTS_BIG_ENDIAN
254         select SYS_SUPPORTS_MULTITHREADING
255         select SYS_SUPPORTS_LITTLE_ENDIAN
256         help
257           This option enables support for MIPS Technologies MIPSsim software
258           emulator.
259
260 config MOMENCO_OCELOT
261         bool "Momentum Ocelot board"
262         select DMA_NONCOHERENT
263         select HW_HAS_PCI
264         select IRQ_CPU
265         select IRQ_CPU_RM7K
266         select PCI_GT64XXX_PCI0
267         select RM7000_CPU_SCACHE
268         select SWAP_IO_SPACE
269         select SYS_HAS_CPU_RM7000
270         select SYS_SUPPORTS_32BIT_KERNEL
271         select SYS_SUPPORTS_64BIT_KERNEL
272         select SYS_SUPPORTS_BIG_ENDIAN
273         select SYS_SUPPORTS_KGDB
274         help
275           The Ocelot is a MIPS-based Single Board Computer (SBC) made by
276           Momentum Computer <http://www.momenco.com/>.
277
278 config MOMENCO_OCELOT_3
279         bool "Momentum Ocelot-3 board"
280         select BOOT_ELF32
281         select DMA_NONCOHERENT
282         select HW_HAS_PCI
283         select IRQ_CPU
284         select IRQ_CPU_RM7K
285         select IRQ_MV64340
286         select PCI_MARVELL
287         select RM7000_CPU_SCACHE
288         select SWAP_IO_SPACE
289         select SYS_HAS_CPU_RM9000
290         select SYS_SUPPORTS_32BIT_KERNEL
291         select SYS_SUPPORTS_64BIT_KERNEL
292         select SYS_SUPPORTS_BIG_ENDIAN
293         help
294           The Ocelot-3 is based off Discovery III System Controller and
295           PMC-Sierra Rm79000 core.
296
297 config MOMENCO_OCELOT_C
298         bool "Momentum Ocelot-C board"
299         select DMA_NONCOHERENT
300         select HW_HAS_PCI
301         select IRQ_CPU
302         select IRQ_MV64340
303         select PCI_MARVELL
304         select RM7000_CPU_SCACHE
305         select SWAP_IO_SPACE
306         select SYS_HAS_CPU_RM7000
307         select SYS_SUPPORTS_32BIT_KERNEL
308         select SYS_SUPPORTS_64BIT_KERNEL
309         select SYS_SUPPORTS_BIG_ENDIAN
310         select GENERIC_HARDIRQS_NO__DO_IRQ
311         help
312           The Ocelot is a MIPS-based Single Board Computer (SBC) made by
313           Momentum Computer <http://www.momenco.com/>.
314
315 config PNX8550_JBS
316         bool "Philips PNX8550 based JBS board"
317         select PNX8550
318         select SYS_SUPPORTS_LITTLE_ENDIAN
319
320 config PNX8550_STB810
321         bool "Philips PNX8550 based STB810 board"
322         select PNX8550
323         select SYS_SUPPORTS_LITTLE_ENDIAN
324
325 config DDB5477
326         bool "NEC DDB Vrc-5477"
327         select DDB5XXX_COMMON
328         select DMA_NONCOHERENT
329         select HW_HAS_PCI
330         select I8259
331         select IRQ_CPU
332         select SYS_HAS_CPU_R5432
333         select SYS_SUPPORTS_32BIT_KERNEL
334         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
335         select SYS_SUPPORTS_KGDB
336         select SYS_SUPPORTS_KGDB
337         select SYS_SUPPORTS_LITTLE_ENDIAN
338         help
339           This enables support for the R5432-based NEC DDB Vrc-5477,
340           or Rockhopper/SolutionGear boards with R5432/R5500 CPUs.
341
342           Features : kernel debugging, serial terminal, NFS root fs, on-board
343           ether port USB, AC97, PCI, etc.
344
345 config MACH_VR41XX
346         bool "NEC VR4100 series based machines"
347         select SYS_HAS_CPU_VR41XX
348         select GENERIC_HARDIRQS_NO__DO_IRQ
349
350 config PMC_YOSEMITE
351         bool "PMC-Sierra Yosemite eval board"
352         select DMA_COHERENT
353         select HW_HAS_PCI
354         select IRQ_CPU
355         select IRQ_CPU_RM7K
356         select IRQ_CPU_RM9K
357         select SWAP_IO_SPACE
358         select SYS_HAS_CPU_RM9000
359         select SYS_HAS_EARLY_PRINTK
360         select SYS_SUPPORTS_32BIT_KERNEL
361         select SYS_SUPPORTS_64BIT_KERNEL
362         select SYS_SUPPORTS_BIG_ENDIAN
363         select SYS_SUPPORTS_HIGHMEM
364         select SYS_SUPPORTS_KGDB
365         select SYS_SUPPORTS_SMP
366         help
367           Yosemite is an evaluation board for the RM9000x2 processor
368           manufactured by PMC-Sierra.
369
370 config QEMU
371         bool "Qemu"
372         select DMA_COHERENT
373         select GENERIC_ISA_DMA
374         select HAVE_STD_PC_SERIAL_PORT
375         select I8253
376         select I8259
377         select ISA
378         select SWAP_IO_SPACE
379         select SYS_HAS_CPU_MIPS32_R1
380         select SYS_SUPPORTS_32BIT_KERNEL
381         select SYS_SUPPORTS_BIG_ENDIAN
382         select SYS_SUPPORTS_LITTLE_ENDIAN
383         select ARCH_SPARSEMEM_ENABLE
384         select GENERIC_HARDIRQS_NO__DO_IRQ
385         select NR_CPUS_DEFAULT_1
386         select SYS_SUPPORTS_SMP
387         help
388           Qemu is a software emulator which among other architectures also
389           can simulate a MIPS32 4Kc system.  This patch adds support for the
390           system architecture that currently is being simulated by Qemu.  It
391           will eventually be removed again when Qemu has the capability to
392           simulate actual MIPS hardware platforms.  More information on Qemu
393           can be found at http://www.linux-mips.org/wiki/Qemu.
394
395 config MARKEINS
396         bool "NEC EMMA2RH Mark-eins"
397         select DMA_NONCOHERENT
398         select HW_HAS_PCI
399         select IRQ_CPU
400         select SWAP_IO_SPACE
401         select SYS_SUPPORTS_32BIT_KERNEL
402         select SYS_SUPPORTS_BIG_ENDIAN
403         select SYS_SUPPORTS_LITTLE_ENDIAN
404         select SYS_HAS_CPU_R5000
405         help
406           This enables support for the R5432-based NEC Mark-eins
407           boards with R5500 CPU.
408
409 config SGI_IP22
410         bool "SGI IP22 (Indy/Indigo2)"
411         select ARC
412         select ARC32
413         select BOOT_ELF32
414         select DMA_NONCOHERENT
415         select HW_HAS_EISA
416         select IP22_CPU_SCACHE
417         select IRQ_CPU
418         select GENERIC_ISA_DMA_SUPPORT_BROKEN
419         select SWAP_IO_SPACE
420         select SYS_HAS_CPU_R4X00
421         select SYS_HAS_CPU_R5000
422         select SYS_HAS_EARLY_PRINTK
423         select SYS_SUPPORTS_32BIT_KERNEL
424         select SYS_SUPPORTS_64BIT_KERNEL
425         select SYS_SUPPORTS_BIG_ENDIAN
426         help
427           This are the SGI Indy, Challenge S and Indigo2, as well as certain
428           OEM variants like the Tandem CMN B006S. To compile a Linux kernel
429           that runs on these, say Y here.
430
431 config SGI_IP27
432         bool "SGI IP27 (Origin200/2000)"
433         select ARC
434         select ARC64
435         select BOOT_ELF64
436         select DMA_IP27
437         select SYS_HAS_EARLY_PRINTK
438         select HW_HAS_PCI
439         select NR_CPUS_DEFAULT_64
440         select PCI_DOMAINS
441         select SYS_HAS_CPU_R10000
442         select SYS_SUPPORTS_64BIT_KERNEL
443         select SYS_SUPPORTS_BIG_ENDIAN
444         select SYS_SUPPORTS_KGDB
445         select SYS_SUPPORTS_NUMA
446         select SYS_SUPPORTS_SMP
447         select GENERIC_HARDIRQS_NO__DO_IRQ
448         help
449           This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
450           workstations.  To compile a Linux kernel that runs on these, say Y
451           here.
452
453 config SGI_IP32
454         bool "SGI IP32 (O2) (EXPERIMENTAL)"
455         depends on EXPERIMENTAL
456         select ARC
457         select ARC32
458         select BOOT_ELF32
459         select DMA_NONCOHERENT
460         select HW_HAS_PCI
461         select R5000_CPU_SCACHE
462         select RM7000_CPU_SCACHE
463         select SYS_HAS_CPU_R5000
464         select SYS_HAS_CPU_R10000 if BROKEN
465         select SYS_HAS_CPU_RM7000
466         select SYS_HAS_CPU_NEVADA
467         select SYS_SUPPORTS_64BIT_KERNEL
468         select SYS_SUPPORTS_BIG_ENDIAN
469         help
470           If you want this kernel to run on SGI O2 workstation, say Y here.
471
472 config SIBYTE_BIGSUR
473         bool "Sibyte BCM91480B-BigSur"
474         select BOOT_ELF32
475         select DMA_COHERENT
476         select NR_CPUS_DEFAULT_4
477         select PCI_DOMAINS
478         select SIBYTE_BCM1x80
479         select SWAP_IO_SPACE
480         select SYS_HAS_CPU_SB1
481         select SYS_SUPPORTS_BIG_ENDIAN
482         select SYS_SUPPORTS_LITTLE_ENDIAN
483
484 config SIBYTE_SWARM
485         bool "Sibyte BCM91250A-SWARM"
486         select BOOT_ELF32
487         select DMA_COHERENT
488         select NR_CPUS_DEFAULT_2
489         select SIBYTE_SB1250
490         select SWAP_IO_SPACE
491         select SYS_HAS_CPU_SB1
492         select SYS_SUPPORTS_BIG_ENDIAN
493         select SYS_SUPPORTS_HIGHMEM
494         select SYS_SUPPORTS_KGDB
495         select SYS_SUPPORTS_LITTLE_ENDIAN
496
497 config SIBYTE_SENTOSA
498         bool "Sibyte BCM91250E-Sentosa"
499         depends on EXPERIMENTAL
500         select BOOT_ELF32
501         select DMA_COHERENT
502         select NR_CPUS_DEFAULT_2
503         select SIBYTE_SB1250
504         select SWAP_IO_SPACE
505         select SYS_HAS_CPU_SB1
506         select SYS_SUPPORTS_BIG_ENDIAN
507         select SYS_SUPPORTS_LITTLE_ENDIAN
508
509 config SIBYTE_RHONE
510         bool "Sibyte BCM91125E-Rhone"
511         depends on EXPERIMENTAL
512         select BOOT_ELF32
513         select DMA_COHERENT
514         select SIBYTE_BCM1125H
515         select SWAP_IO_SPACE
516         select SYS_HAS_CPU_SB1
517         select SYS_SUPPORTS_BIG_ENDIAN
518         select SYS_SUPPORTS_LITTLE_ENDIAN
519
520 config SIBYTE_CARMEL
521         bool "Sibyte BCM91120x-Carmel"
522         depends on EXPERIMENTAL
523         select BOOT_ELF32
524         select DMA_COHERENT
525         select SIBYTE_BCM1120
526         select SWAP_IO_SPACE
527         select SYS_HAS_CPU_SB1
528         select SYS_SUPPORTS_BIG_ENDIAN
529         select SYS_SUPPORTS_LITTLE_ENDIAN
530
531 config SIBYTE_PTSWARM
532         bool "Sibyte BCM91250PT-PTSWARM"
533         depends on EXPERIMENTAL
534         select BOOT_ELF32
535         select DMA_COHERENT
536         select NR_CPUS_DEFAULT_2
537         select SIBYTE_SB1250
538         select SWAP_IO_SPACE
539         select SYS_HAS_CPU_SB1
540         select SYS_SUPPORTS_BIG_ENDIAN
541         select SYS_SUPPORTS_HIGHMEM
542         select SYS_SUPPORTS_LITTLE_ENDIAN
543
544 config SIBYTE_LITTLESUR
545         bool "Sibyte BCM91250C2-LittleSur"
546         depends on EXPERIMENTAL
547         select BOOT_ELF32
548         select DMA_COHERENT
549         select NR_CPUS_DEFAULT_2
550         select SIBYTE_SB1250
551         select SWAP_IO_SPACE
552         select SYS_HAS_CPU_SB1
553         select SYS_SUPPORTS_BIG_ENDIAN
554         select SYS_SUPPORTS_HIGHMEM
555         select SYS_SUPPORTS_LITTLE_ENDIAN
556
557 config SIBYTE_CRHINE
558         bool "Sibyte BCM91120C-CRhine"
559         depends on EXPERIMENTAL
560         select BOOT_ELF32
561         select DMA_COHERENT
562         select SIBYTE_BCM1120
563         select SWAP_IO_SPACE
564         select SYS_HAS_CPU_SB1
565         select SYS_SUPPORTS_BIG_ENDIAN
566         select SYS_SUPPORTS_LITTLE_ENDIAN
567
568 config SIBYTE_CRHONE
569         bool "Sibyte BCM91125C-CRhone"
570         depends on EXPERIMENTAL
571         select BOOT_ELF32
572         select DMA_COHERENT
573         select SIBYTE_BCM1125
574         select SWAP_IO_SPACE
575         select SYS_HAS_CPU_SB1
576         select SYS_SUPPORTS_BIG_ENDIAN
577         select SYS_SUPPORTS_HIGHMEM
578         select SYS_SUPPORTS_LITTLE_ENDIAN
579
580 config SNI_RM
581         bool "SNI RM200/300/400"
582         select ARC if CPU_LITTLE_ENDIAN
583         select ARC32 if CPU_LITTLE_ENDIAN
584         select ARCH_MAY_HAVE_PC_FDC
585         select BOOT_ELF32
586         select DMA_NONCOHERENT
587         select GENERIC_ISA_DMA
588         select HW_HAS_EISA
589         select HW_HAS_PCI
590         select IRQ_CPU
591         select I8253
592         select I8259
593         select ISA
594         select SWAP_IO_SPACE if CPU_BIG_ENDIAN
595         select SYS_HAS_CPU_R4X00
596         select SYS_HAS_CPU_R5000
597         select SYS_HAS_CPU_R10000
598         select R5000_CPU_SCACHE
599         select SYS_HAS_EARLY_PRINTK
600         select SYS_SUPPORTS_32BIT_KERNEL
601         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
602         select SYS_SUPPORTS_BIG_ENDIAN
603         select SYS_SUPPORTS_HIGHMEM
604         select SYS_SUPPORTS_LITTLE_ENDIAN
605         help
606           The SNI RM200/300/400 are MIPS-based machines manufactured by
607           Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
608           Technology and now in turn merged with Fujitsu.  Say Y here to
609           support this machine type.
610
611 config TOSHIBA_JMR3927
612         bool "Toshiba JMR-TX3927 board"
613         select DMA_NONCOHERENT
614         select HW_HAS_PCI
615         select MIPS_TX3927
616         select SWAP_IO_SPACE
617         select SYS_HAS_CPU_TX39XX
618         select SYS_SUPPORTS_32BIT_KERNEL
619         select SYS_SUPPORTS_LITTLE_ENDIAN
620         select SYS_SUPPORTS_BIG_ENDIAN
621         select GENERIC_HARDIRQS_NO__DO_IRQ
622
623 config TOSHIBA_RBTX4927
624         bool "Toshiba TBTX49[23]7 board"
625         select DMA_NONCOHERENT
626         select HAS_TXX9_SERIAL
627         select HW_HAS_PCI
628         select I8259
629         select SWAP_IO_SPACE
630         select SYS_HAS_CPU_TX49XX
631         select SYS_SUPPORTS_32BIT_KERNEL
632         select SYS_SUPPORTS_64BIT_KERNEL
633         select SYS_SUPPORTS_LITTLE_ENDIAN
634         select SYS_SUPPORTS_BIG_ENDIAN
635         select SYS_SUPPORTS_KGDB
636         select GENERIC_HARDIRQS_NO__DO_IRQ
637         help
638           This Toshiba board is based on the TX4927 processor. Say Y here to
639           support this machine type
640
641 config TOSHIBA_RBTX4938
642         bool "Toshiba RBTX4938 board"
643         select HAVE_STD_PC_SERIAL_PORT
644         select DMA_NONCOHERENT
645         select GENERIC_ISA_DMA
646         select HAS_TXX9_SERIAL
647         select HW_HAS_PCI
648         select I8259
649         select SWAP_IO_SPACE
650         select SYS_HAS_CPU_TX49XX
651         select SYS_SUPPORTS_32BIT_KERNEL
652         select SYS_SUPPORTS_LITTLE_ENDIAN
653         select SYS_SUPPORTS_BIG_ENDIAN
654         select SYS_SUPPORTS_KGDB
655         select GENERIC_HARDIRQS_NO__DO_IRQ
656         help
657           This Toshiba board is based on the TX4938 processor. Say Y here to
658           support this machine type
659
660 endchoice
661
662 source "arch/mips/au1000/Kconfig"
663 source "arch/mips/ddb5xxx/Kconfig"
664 source "arch/mips/gt64120/ev64120/Kconfig"
665 source "arch/mips/jazz/Kconfig"
666 source "arch/mips/lasat/Kconfig"
667 source "arch/mips/pmc-sierra/Kconfig"
668 source "arch/mips/sgi-ip27/Kconfig"
669 source "arch/mips/sibyte/Kconfig"
670 source "arch/mips/tx4927/Kconfig"
671 source "arch/mips/tx4938/Kconfig"
672 source "arch/mips/vr41xx/Kconfig"
673 source "arch/mips/philips/pnx8550/common/Kconfig"
674
675 endmenu
676
677 config RWSEM_GENERIC_SPINLOCK
678         bool
679         default y
680
681 config RWSEM_XCHGADD_ALGORITHM
682         bool
683
684 config ARCH_HAS_ILOG2_U32
685         bool
686         default n
687
688 config ARCH_HAS_ILOG2_U64
689         bool
690         default n
691
692 config GENERIC_FIND_NEXT_BIT
693         bool
694         default y
695
696 config GENERIC_HWEIGHT
697         bool
698         default y
699
700 config GENERIC_CALIBRATE_DELAY
701         bool
702         default y
703
704 config GENERIC_TIME
705         bool
706         default y
707
708 config SCHED_NO_NO_OMIT_FRAME_POINTER
709         bool
710         default y
711
712 config GENERIC_HARDIRQS_NO__DO_IRQ
713         bool
714         default n
715
716 #
717 # Select some configuration options automatically based on user selections.
718 #
719 config ARC
720         bool
721
722 config ARCH_MAY_HAVE_PC_FDC
723         bool
724
725 config DMA_COHERENT
726         bool
727
728 config DMA_IP27
729         bool
730
731 config DMA_IP32
732         bool
733         select DMA_NEED_PCI_MAP_STATE
734
735 config DMA_NONCOHERENT
736         bool
737         select DMA_NEED_PCI_MAP_STATE
738
739 config DMA_NEED_PCI_MAP_STATE
740         bool
741
742 config EARLY_PRINTK
743         bool "Early printk" if EMBEDDED && DEBUG_KERNEL
744         depends on SYS_HAS_EARLY_PRINTK
745         default y
746         help
747           This option enables special console drivers which allow the kernel
748           to print messages very early in the bootup process.
749
750           This is useful for kernel debugging when your machine crashes very
751           early before the console code is initialized. For normal operation,
752           it is not recommended because it looks ugly on some machines and
753           doesn't cooperate with an X server. You should normally say N here,
754           unless you want to debug such a crash.
755
756 config SYS_HAS_EARLY_PRINTK
757         bool
758
759 config GENERIC_ISA_DMA
760         bool
761         select ZONE_DMA
762
763 config I8259
764         bool
765
766 config MIPS_BONITO64
767         bool
768
769 config MIPS_MSC
770         bool
771
772 config MIPS_NILE4
773         bool
774
775 config MIPS_DISABLE_OBSOLETE_IDE
776         bool
777
778 config GENERIC_ISA_DMA_SUPPORT_BROKEN
779         bool
780         select ZONE_DMA
781
782 config GENERIC_GPIO
783         bool
784
785 #
786 # Endianess selection.  Sufficiently obscure so many users don't know what to
787 # answer,so we try hard to limit the available choices.  Also the use of a
788 # choice statement should be more obvious to the user.
789 #
790 choice
791         prompt "Endianess selection"
792         help
793           Some MIPS machines can be configured for either little or big endian
794           byte order. These modes require different kernels and a different
795           Linux distribution.  In general there is one preferred byteorder for a
796           particular system but some systems are just as commonly used in the
797           one or the other endianness.
798
799 config CPU_BIG_ENDIAN
800         bool "Big endian"
801         depends on SYS_SUPPORTS_BIG_ENDIAN
802
803 config CPU_LITTLE_ENDIAN
804         bool "Little endian"
805         depends on SYS_SUPPORTS_LITTLE_ENDIAN
806         help
807
808 endchoice
809
810 config SYS_SUPPORTS_APM_EMULATION
811         bool
812
813 config SYS_SUPPORTS_BIG_ENDIAN
814         bool
815
816 config SYS_SUPPORTS_LITTLE_ENDIAN
817         bool
818
819 config IRQ_CPU
820         bool
821
822 config IRQ_CPU_RM7K
823         bool
824
825 config IRQ_CPU_RM9K
826         bool
827
828 config IRQ_MV64340
829         bool
830
831 config DDB5XXX_COMMON
832         bool
833         select SYS_SUPPORTS_KGDB
834
835 config MIPS_BOARDS_GEN
836         bool
837
838 config PCI_GT64XXX_PCI0
839         bool
840
841 config MIPS_TX3927
842         bool
843         select HAS_TXX9_SERIAL
844
845 config MIPS_RM9122
846         bool
847         select SERIAL_RM9000
848
849 config PCI_MARVELL
850         bool
851
852 config PNX8550
853         bool
854         select SOC_PNX8550
855
856 config SOC_PNX8550
857         bool
858         select DMA_NONCOHERENT
859         select HW_HAS_PCI
860         select SYS_HAS_CPU_MIPS32_R1
861         select SYS_HAS_EARLY_PRINTK
862         select SYS_SUPPORTS_32BIT_KERNEL
863         select GENERIC_HARDIRQS_NO__DO_IRQ
864         select SYS_SUPPORTS_KGDB
865         select GENERIC_GPIO
866
867 config SWAP_IO_SPACE
868         bool
869
870 config EMMA2RH
871         bool
872         depends on MARKEINS
873         default y
874
875 config SERIAL_RM9000
876         bool
877
878 #
879 # Unfortunately not all GT64120 systems run the chip at the same clock.
880 # As the user for the clock rate and try to minimize the available options.
881 #
882 choice
883         prompt "Galileo Chip Clock"
884         #default SYSCLK_83 if MIPS_EV64120
885         depends on MIPS_EV64120 || MOMENCO_OCELOT
886         default SYSCLK_83 if MIPS_EV64120
887         default SYSCLK_100 if MOMENCO_OCELOT
888
889 config SYSCLK_75
890         bool "75" if MIPS_EV64120
891
892 config SYSCLK_83
893         bool "83.3" if MIPS_EV64120
894
895 config SYSCLK_100
896         bool "100" if MIPS_EV64120 || MOMENCO_OCELOT
897
898 endchoice
899
900 config ARC32
901         bool
902
903 config BOOT_ELF32
904         bool
905
906 config MIPS_L1_CACHE_SHIFT
907         int
908         default "4" if MACH_DECSTATION || SNI_RM
909         default "7" if SGI_IP27
910         default "5"
911
912 config HAVE_STD_PC_SERIAL_PORT
913         bool
914
915 config ARC_CONSOLE
916         bool "ARC console support"
917         depends on SGI_IP22 || (SNI_RM && CPU_LITTLE_ENDIAN)
918
919 config ARC_MEMORY
920         bool
921         depends on MACH_JAZZ || SNI_RM || SGI_IP32
922         default y
923
924 config ARC_PROMLIB
925         bool
926         depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP32
927         default y
928
929 config ARC64
930         bool
931
932 config BOOT_ELF64
933         bool
934
935 menu "CPU selection"
936
937 choice
938         prompt "CPU type"
939         default CPU_R4X00
940
941 config CPU_MIPS32_R1
942         bool "MIPS32 Release 1"
943         depends on SYS_HAS_CPU_MIPS32_R1
944         select CPU_HAS_LLSC
945         select CPU_HAS_PREFETCH
946         select CPU_SUPPORTS_32BIT_KERNEL
947         select CPU_SUPPORTS_HIGHMEM
948         help
949           Choose this option to build a kernel for release 1 or later of the
950           MIPS32 architecture.  Most modern embedded systems with a 32-bit
951           MIPS processor are based on a MIPS32 processor.  If you know the
952           specific type of processor in your system, choose those that one
953           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
954           Release 2 of the MIPS32 architecture is available since several
955           years so chances are you even have a MIPS32 Release 2 processor
956           in which case you should choose CPU_MIPS32_R2 instead for better
957           performance.
958
959 config CPU_MIPS32_R2
960         bool "MIPS32 Release 2"
961         depends on SYS_HAS_CPU_MIPS32_R2
962         select CPU_HAS_LLSC
963         select CPU_HAS_PREFETCH
964         select CPU_SUPPORTS_32BIT_KERNEL
965         select CPU_SUPPORTS_HIGHMEM
966         help
967           Choose this option to build a kernel for release 2 or later of the
968           MIPS32 architecture.  Most modern embedded systems with a 32-bit
969           MIPS processor are based on a MIPS32 processor.  If you know the
970           specific type of processor in your system, choose those that one
971           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
972
973 config CPU_MIPS64_R1
974         bool "MIPS64 Release 1"
975         depends on SYS_HAS_CPU_MIPS64_R1
976         select CPU_HAS_LLSC
977         select CPU_HAS_PREFETCH
978         select CPU_SUPPORTS_32BIT_KERNEL
979         select CPU_SUPPORTS_64BIT_KERNEL
980         select CPU_SUPPORTS_HIGHMEM
981         help
982           Choose this option to build a kernel for release 1 or later of the
983           MIPS64 architecture.  Many modern embedded systems with a 64-bit
984           MIPS processor are based on a MIPS64 processor.  If you know the
985           specific type of processor in your system, choose those that one
986           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
987           Release 2 of the MIPS64 architecture is available since several
988           years so chances are you even have a MIPS64 Release 2 processor
989           in which case you should choose CPU_MIPS64_R2 instead for better
990           performance.
991
992 config CPU_MIPS64_R2
993         bool "MIPS64 Release 2"
994         depends on SYS_HAS_CPU_MIPS64_R2
995         select CPU_HAS_LLSC
996         select CPU_HAS_PREFETCH
997         select CPU_SUPPORTS_32BIT_KERNEL
998         select CPU_SUPPORTS_64BIT_KERNEL
999         select CPU_SUPPORTS_HIGHMEM
1000         help
1001           Choose this option to build a kernel for release 2 or later of the
1002           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1003           MIPS processor are based on a MIPS64 processor.  If you know the
1004           specific type of processor in your system, choose those that one
1005           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1006
1007 config CPU_R3000
1008         bool "R3000"
1009         depends on SYS_HAS_CPU_R3000
1010         select CPU_HAS_WB
1011         select CPU_SUPPORTS_32BIT_KERNEL
1012         select CPU_SUPPORTS_HIGHMEM
1013         help
1014           Please make sure to pick the right CPU type. Linux/MIPS is not
1015           designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1016           *not* work on R4000 machines and vice versa.  However, since most
1017           of the supported machines have an R4000 (or similar) CPU, R4x00
1018           might be a safe bet.  If the resulting kernel does not work,
1019           try to recompile with R3000.
1020
1021 config CPU_TX39XX
1022         bool "R39XX"
1023         depends on SYS_HAS_CPU_TX39XX
1024         select CPU_SUPPORTS_32BIT_KERNEL
1025
1026 config CPU_VR41XX
1027         bool "R41xx"
1028         depends on SYS_HAS_CPU_VR41XX
1029         select CPU_SUPPORTS_32BIT_KERNEL
1030         select CPU_SUPPORTS_64BIT_KERNEL
1031         help
1032           The options selects support for the NEC VR4100 series of processors.
1033           Only choose this option if you have one of these processors as a
1034           kernel built with this option will not run on any other type of
1035           processor or vice versa.
1036
1037 config CPU_R4300
1038         bool "R4300"
1039         depends on SYS_HAS_CPU_R4300
1040         select CPU_HAS_LLSC
1041         select CPU_SUPPORTS_32BIT_KERNEL
1042         select CPU_SUPPORTS_64BIT_KERNEL
1043         help
1044           MIPS Technologies R4300-series processors.
1045
1046 config CPU_R4X00
1047         bool "R4x00"
1048         depends on SYS_HAS_CPU_R4X00
1049         select CPU_HAS_LLSC
1050         select CPU_SUPPORTS_32BIT_KERNEL
1051         select CPU_SUPPORTS_64BIT_KERNEL
1052         help
1053           MIPS Technologies R4000-series processors other than 4300, including
1054           the R4000, R4400, R4600, and 4700.
1055
1056 config CPU_TX49XX
1057         bool "R49XX"
1058         depends on SYS_HAS_CPU_TX49XX
1059         select CPU_HAS_LLSC
1060         select CPU_HAS_PREFETCH
1061         select CPU_SUPPORTS_32BIT_KERNEL
1062         select CPU_SUPPORTS_64BIT_KERNEL
1063
1064 config CPU_R5000
1065         bool "R5000"
1066         depends on SYS_HAS_CPU_R5000
1067         select CPU_HAS_LLSC
1068         select CPU_SUPPORTS_32BIT_KERNEL
1069         select CPU_SUPPORTS_64BIT_KERNEL
1070         help
1071           MIPS Technologies R5000-series processors other than the Nevada.
1072
1073 config CPU_R5432
1074         bool "R5432"
1075         depends on SYS_HAS_CPU_R5432
1076         select CPU_HAS_LLSC
1077         select CPU_SUPPORTS_32BIT_KERNEL
1078         select CPU_SUPPORTS_64BIT_KERNEL
1079
1080 config CPU_R6000
1081         bool "R6000"
1082         depends on EXPERIMENTAL
1083         select CPU_HAS_LLSC
1084         depends on SYS_HAS_CPU_R6000
1085         select CPU_SUPPORTS_32BIT_KERNEL
1086         help
1087           MIPS Technologies R6000 and R6000A series processors.  Note these
1088           processors are extremely rare and the support for them is incomplete.
1089
1090 config CPU_NEVADA
1091         bool "RM52xx"
1092         depends on SYS_HAS_CPU_NEVADA
1093         select CPU_HAS_LLSC
1094         select CPU_SUPPORTS_32BIT_KERNEL
1095         select CPU_SUPPORTS_64BIT_KERNEL
1096         help
1097           QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1098
1099 config CPU_R8000
1100         bool "R8000"
1101         depends on EXPERIMENTAL
1102         depends on SYS_HAS_CPU_R8000
1103         select CPU_HAS_LLSC
1104         select CPU_HAS_PREFETCH
1105         select CPU_SUPPORTS_64BIT_KERNEL
1106         help
1107           MIPS Technologies R8000 processors.  Note these processors are
1108           uncommon and the support for them is incomplete.
1109
1110 config CPU_R10000
1111         bool "R10000"
1112         depends on SYS_HAS_CPU_R10000
1113         select CPU_HAS_LLSC
1114         select CPU_HAS_PREFETCH
1115         select CPU_SUPPORTS_32BIT_KERNEL
1116         select CPU_SUPPORTS_64BIT_KERNEL
1117         select CPU_SUPPORTS_HIGHMEM
1118         help
1119           MIPS Technologies R10000-series processors.
1120
1121 config CPU_RM7000
1122         bool "RM7000"
1123         depends on SYS_HAS_CPU_RM7000
1124         select CPU_HAS_LLSC
1125         select CPU_HAS_PREFETCH
1126         select CPU_SUPPORTS_32BIT_KERNEL
1127         select CPU_SUPPORTS_64BIT_KERNEL
1128         select CPU_SUPPORTS_HIGHMEM
1129
1130 config CPU_RM9000
1131         bool "RM9000"
1132         depends on SYS_HAS_CPU_RM9000
1133         select CPU_HAS_LLSC
1134         select CPU_HAS_PREFETCH
1135         select CPU_SUPPORTS_32BIT_KERNEL
1136         select CPU_SUPPORTS_64BIT_KERNEL
1137         select CPU_SUPPORTS_HIGHMEM
1138         select WEAK_ORDERING
1139
1140 config CPU_SB1
1141         bool "SB1"
1142         depends on SYS_HAS_CPU_SB1
1143         select CPU_HAS_LLSC
1144         select CPU_SUPPORTS_32BIT_KERNEL
1145         select CPU_SUPPORTS_64BIT_KERNEL
1146         select CPU_SUPPORTS_HIGHMEM
1147         select WEAK_ORDERING
1148
1149 endchoice
1150
1151 config SYS_HAS_CPU_MIPS32_R1
1152         bool
1153
1154 config SYS_HAS_CPU_MIPS32_R2
1155         bool
1156
1157 config SYS_HAS_CPU_MIPS64_R1
1158         bool
1159
1160 config SYS_HAS_CPU_MIPS64_R2
1161         bool
1162
1163 config SYS_HAS_CPU_R3000
1164         bool
1165
1166 config SYS_HAS_CPU_TX39XX
1167         bool
1168
1169 config SYS_HAS_CPU_VR41XX
1170         bool
1171
1172 config SYS_HAS_CPU_R4300
1173         bool
1174
1175 config SYS_HAS_CPU_R4X00
1176         bool
1177
1178 config SYS_HAS_CPU_TX49XX
1179         bool
1180
1181 config SYS_HAS_CPU_R5000
1182         bool
1183
1184 config SYS_HAS_CPU_R5432
1185         bool
1186
1187 config SYS_HAS_CPU_R6000
1188         bool
1189
1190 config SYS_HAS_CPU_NEVADA
1191         bool
1192
1193 config SYS_HAS_CPU_R8000
1194         bool
1195
1196 config SYS_HAS_CPU_R10000
1197         bool
1198
1199 config SYS_HAS_CPU_RM7000
1200         bool
1201
1202 config SYS_HAS_CPU_RM9000
1203         bool
1204
1205 config SYS_HAS_CPU_SB1
1206         bool
1207
1208 config WEAK_ORDERING
1209         bool
1210 endmenu
1211
1212 #
1213 # These two indicate any level of the MIPS32 and MIPS64 architecture
1214 #
1215 config CPU_MIPS32
1216         bool
1217         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1218
1219 config CPU_MIPS64
1220         bool
1221         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1222
1223 #
1224 # These two indicate the revision of the architecture, either Release 1 or Release 2
1225 #
1226 config CPU_MIPSR1
1227         bool
1228         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1229
1230 config CPU_MIPSR2
1231         bool
1232         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2
1233
1234 config SYS_SUPPORTS_32BIT_KERNEL
1235         bool
1236 config SYS_SUPPORTS_64BIT_KERNEL
1237         bool
1238 config CPU_SUPPORTS_32BIT_KERNEL
1239         bool
1240 config CPU_SUPPORTS_64BIT_KERNEL
1241         bool
1242
1243 menu "Kernel type"
1244
1245 choice
1246
1247         prompt "Kernel code model"
1248         help
1249           You should only select this option if you have a workload that
1250           actually benefits from 64-bit processing or if your machine has
1251           large memory.  You will only be presented a single option in this
1252           menu if your system does not support both 32-bit and 64-bit kernels.
1253
1254 config 32BIT
1255         bool "32-bit kernel"
1256         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1257         select TRAD_SIGNALS
1258         help
1259           Select this option if you want to build a 32-bit kernel.
1260 config 64BIT
1261         bool "64-bit kernel"
1262         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1263         help
1264           Select this option if you want to build a 64-bit kernel.
1265
1266 endchoice
1267
1268 choice
1269         prompt "Kernel page size"
1270         default PAGE_SIZE_4KB
1271
1272 config PAGE_SIZE_4KB
1273         bool "4kB"
1274         help
1275          This option select the standard 4kB Linux page size.  On some
1276          R3000-family processors this is the only available page size.  Using
1277          4kB page size will minimize memory consumption and is therefore
1278          recommended for low memory systems.
1279
1280 config PAGE_SIZE_8KB
1281         bool "8kB"
1282         depends on EXPERIMENTAL && CPU_R8000
1283         help
1284           Using 8kB page size will result in higher performance kernel at
1285           the price of higher memory consumption.  This option is available
1286           only on the R8000 processor.  Not that at the time of this writing
1287           this option is still high experimental; there are also issues with
1288           compatibility of user applications.
1289
1290 config PAGE_SIZE_16KB
1291         bool "16kB"
1292         depends on !CPU_R3000 && !CPU_TX39XX
1293         help
1294           Using 16kB page size will result in higher performance kernel at
1295           the price of higher memory consumption.  This option is available on
1296           all non-R3000 family processors.  Note that you will need a suitable
1297           Linux distribution to support this.
1298
1299 config PAGE_SIZE_64KB
1300         bool "64kB"
1301         depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1302         help
1303           Using 64kB page size will result in higher performance kernel at
1304           the price of higher memory consumption.  This option is available on
1305           all non-R3000 family processor.  Not that at the time of this
1306           writing this option is still high experimental.
1307
1308 endchoice
1309
1310 config BOARD_SCACHE
1311         bool
1312
1313 config IP22_CPU_SCACHE
1314         bool
1315         select BOARD_SCACHE
1316
1317 #
1318 # Support for a MIPS32 / MIPS64 style S-caches
1319 #
1320 config MIPS_CPU_SCACHE
1321         bool
1322         select BOARD_SCACHE
1323
1324 config R5000_CPU_SCACHE
1325         bool
1326         select BOARD_SCACHE
1327
1328 config RM7000_CPU_SCACHE
1329         bool
1330         select BOARD_SCACHE
1331
1332 config SIBYTE_DMA_PAGEOPS
1333         bool "Use DMA to clear/copy pages"
1334         depends on CPU_SB1
1335         help
1336           Instead of using the CPU to zero and copy pages, use a Data Mover
1337           channel.  These DMA channels are otherwise unused by the standard
1338           SiByte Linux port.  Seems to give a small performance benefit.
1339
1340 config CPU_HAS_PREFETCH
1341         bool
1342
1343 choice
1344         prompt "MIPS MT options"
1345
1346 config MIPS_MT_DISABLED
1347         bool "Disable multithreading support."
1348         help
1349           Use this option if your workload can't take advantage of
1350           MIPS hardware multithreading support.  On systems that don't have
1351           the option of an MT-enabled processor this option will be the only
1352           option in this menu.
1353
1354 config MIPS_MT_SMP
1355         bool "Use 1 TC on each available VPE for SMP"
1356         depends on SYS_SUPPORTS_MULTITHREADING
1357         select CPU_MIPSR2_IRQ_VI
1358         select CPU_MIPSR2_IRQ_EI
1359         select CPU_MIPSR2_SRS
1360         select MIPS_MT
1361         select NR_CPUS_DEFAULT_2
1362         select SMP
1363         select SYS_SUPPORTS_SMP
1364         help
1365           This is a kernel model which is also known a VSMP or lately
1366           has been marketesed into SMVP.
1367
1368 config MIPS_MT_SMTC
1369         bool "SMTC: Use all TCs on all VPEs for SMP"
1370         depends on CPU_MIPS32_R2
1371         #depends on CPU_MIPS64_R2               # once there is hardware ...
1372         depends on SYS_SUPPORTS_MULTITHREADING
1373         select CPU_MIPSR2_IRQ_VI
1374         select CPU_MIPSR2_IRQ_EI
1375         select CPU_MIPSR2_SRS
1376         select MIPS_MT
1377         select NR_CPUS_DEFAULT_8
1378         select SMP
1379         select SYS_SUPPORTS_SMP
1380         help
1381           This is a kernel model which is known a SMTC or lately has been
1382           marketesed into SMVP.
1383
1384 config MIPS_VPE_LOADER
1385         bool "VPE loader support."
1386         depends on SYS_SUPPORTS_MULTITHREADING
1387         select CPU_MIPSR2_IRQ_VI
1388         select CPU_MIPSR2_IRQ_EI
1389         select CPU_MIPSR2_SRS
1390         select MIPS_MT
1391         help
1392           Includes a loader for loading an elf relocatable object
1393           onto another VPE and running it.
1394
1395 endchoice
1396
1397 config MIPS_MT
1398         bool
1399
1400 config SYS_SUPPORTS_MULTITHREADING
1401         bool
1402
1403 config MIPS_MT_FPAFF
1404         bool "Dynamic FPU affinity for FP-intensive threads"
1405         depends on MIPS_MT
1406         default y
1407
1408 config MIPS_MT_SMTC_INSTANT_REPLAY
1409         bool "Low-latency Dispatch of Deferred SMTC IPIs"
1410         depends on MIPS_MT_SMTC && !PREEMPT
1411         default y
1412         help
1413           SMTC pseudo-interrupts between TCs are deferred and queued
1414           if the target TC is interrupt-inhibited (IXMT). In the first
1415           SMTC prototypes, these queued IPIs were serviced on return
1416           to user mode, or on entry into the kernel idle loop. The
1417           INSTANT_REPLAY option dispatches them as part of local_irq_restore()
1418           processing, which adds runtime overhead (hence the option to turn
1419           it off), but ensures that IPIs are handled promptly even under
1420           heavy I/O interrupt load.
1421
1422 config MIPS_VPE_LOADER_TOM
1423         bool "Load VPE program into memory hidden from linux"
1424         depends on MIPS_VPE_LOADER
1425         default y
1426         help
1427           The loader can use memory that is present but has been hidden from
1428           Linux using the kernel command line option "mem=xxMB". It's up to
1429           you to ensure the amount you put in the option and the space your
1430           program requires is less or equal to the amount physically present.
1431
1432 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1433 config MIPS_VPE_APSP_API
1434         bool "Enable support for AP/SP API (RTLX)"
1435         depends on MIPS_VPE_LOADER
1436         help
1437
1438 config MIPS_APSP_KSPD
1439         bool "Enable KSPD"
1440         depends on MIPS_VPE_APSP_API
1441         default y
1442         help
1443           KSPD is a kernel daemon that accepts syscall requests from the SP
1444           side, actions them and returns the results. It also handles the
1445           "exit" syscall notifying other kernel modules the SP program is
1446           exiting.  You probably want to say yes here.
1447
1448 config SB1_PASS_1_WORKAROUNDS
1449         bool
1450         depends on CPU_SB1_PASS_1
1451         default y
1452
1453 config SB1_PASS_2_WORKAROUNDS
1454         bool
1455         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1456         default y
1457
1458 config SB1_PASS_2_1_WORKAROUNDS
1459         bool
1460         depends on CPU_SB1 && CPU_SB1_PASS_2
1461         default y
1462
1463 config 64BIT_PHYS_ADDR
1464         bool "Support for 64-bit physical address space"
1465         depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT
1466
1467 config CPU_HAS_LLSC
1468         bool
1469
1470 config CPU_HAS_SMARTMIPS
1471         depends on SYS_SUPPORTS_SMARTMIPS
1472         bool "Support for the SmartMIPS ASE"
1473         help
1474           SmartMIPS is a extension of the MIPS32 architecture aimed at
1475           increased security at both hardware and software level for
1476           smartcards.  Enabling this option will allow proper use of the
1477           SmartMIPS instructions by Linux applications.  However a kernel with
1478           this option will not work on a MIPS core without SmartMIPS core.  If
1479           you don't know you probably don't have SmartMIPS and should say N
1480           here.
1481
1482 config CPU_HAS_WB
1483         bool
1484
1485 #
1486 # Vectored interrupt mode is an R2 feature
1487 #
1488 config CPU_MIPSR2_IRQ_VI
1489         bool
1490
1491 #
1492 # Extended interrupt mode is an R2 feature
1493 #
1494 config CPU_MIPSR2_IRQ_EI
1495         bool
1496
1497 #
1498 # Shadow registers are an R2 feature
1499 #
1500 config CPU_MIPSR2_SRS
1501         bool
1502
1503 config CPU_HAS_SYNC
1504         bool
1505         depends on !CPU_R3000
1506         default y
1507
1508 #
1509 # Use the generic interrupt handling code in kernel/irq/:
1510 #
1511 config GENERIC_HARDIRQS
1512         bool
1513         default y
1514
1515 config GENERIC_IRQ_PROBE
1516         bool
1517         default y
1518
1519 config IRQ_PER_CPU
1520         bool
1521
1522 #
1523 # - Highmem only makes sense for the 32-bit kernel.
1524 # - The current highmem code will only work properly on physically indexed
1525 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
1526 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
1527 #   moment we protect the user and offer the highmem option only on machines
1528 #   where it's known to be safe.  This will not offer highmem on a few systems
1529 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1530 #   indexed CPUs but we're playing safe.
1531 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1532 #   know they might have memory configurations that could make use of highmem
1533 #   support.
1534 #
1535 config HIGHMEM
1536         bool "High Memory Support"
1537         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1538
1539 config CPU_SUPPORTS_HIGHMEM
1540         bool
1541
1542 config SYS_SUPPORTS_HIGHMEM
1543         bool
1544
1545 config SYS_SUPPORTS_SMARTMIPS
1546         bool
1547
1548 config ARCH_FLATMEM_ENABLE
1549         def_bool y
1550         depends on !NUMA
1551
1552 config ARCH_DISCONTIGMEM_ENABLE
1553         bool
1554         default y if SGI_IP27
1555         help
1556           Say Y to support efficient handling of discontiguous physical memory,
1557           for architectures which are either NUMA (Non-Uniform Memory Access)
1558           or have huge holes in the physical address space for other reasons.
1559           See <file:Documentation/vm/numa> for more.
1560
1561 config ARCH_SPARSEMEM_ENABLE
1562         bool
1563         select SPARSEMEM_STATIC
1564
1565 config NUMA
1566         bool "NUMA Support"
1567         depends on SYS_SUPPORTS_NUMA
1568         help
1569           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
1570           Access).  This option improves performance on systems with more
1571           than two nodes; on two node systems it is generally better to
1572           leave it disabled; on single node systems disable this option
1573           disabled.
1574
1575 config SYS_SUPPORTS_NUMA
1576         bool
1577
1578 config NODES_SHIFT
1579         int
1580         default "6"
1581         depends on NEED_MULTIPLE_NODES
1582
1583 source "mm/Kconfig"
1584
1585 config SMP
1586         bool "Multi-Processing support"
1587         depends on SYS_SUPPORTS_SMP
1588         select IRQ_PER_CPU
1589         help
1590           This enables support for systems with more than one CPU. If you have
1591           a system with only one CPU, like most personal computers, say N. If
1592           you have a system with more than one CPU, say Y.
1593
1594           If you say N here, the kernel will run on single and multiprocessor
1595           machines, but will use only one CPU of a multiprocessor machine. If
1596           you say Y here, the kernel will run on many, but not all,
1597           singleprocessor machines. On a singleprocessor machine, the kernel
1598           will run faster if you say N here.
1599
1600           People using multiprocessor machines who say Y here should also say
1601           Y to "Enhanced Real Time Clock Support", below.
1602
1603           See also the <file:Documentation/smp.txt> and the SMP-HOWTO
1604           available at <http://www.tldp.org/docs.html#howto>.
1605
1606           If you don't know what to do here, say N.
1607
1608 config SYS_SUPPORTS_SMP
1609         bool
1610
1611 config NR_CPUS_DEFAULT_1
1612         bool
1613
1614 config NR_CPUS_DEFAULT_2
1615         bool
1616
1617 config NR_CPUS_DEFAULT_4
1618         bool
1619
1620 config NR_CPUS_DEFAULT_8
1621         bool
1622
1623 config NR_CPUS_DEFAULT_16
1624         bool
1625
1626 config NR_CPUS_DEFAULT_32
1627         bool
1628
1629 config NR_CPUS_DEFAULT_64
1630         bool
1631
1632 config NR_CPUS
1633         int "Maximum number of CPUs (2-64)"
1634         range 1 64 if NR_CPUS_DEFAULT_1
1635         depends on SMP
1636         default "1" if NR_CPUS_DEFAULT_1
1637         default "2" if NR_CPUS_DEFAULT_2
1638         default "4" if NR_CPUS_DEFAULT_4
1639         default "8" if NR_CPUS_DEFAULT_8
1640         default "16" if NR_CPUS_DEFAULT_16
1641         default "32" if NR_CPUS_DEFAULT_32
1642         default "64" if NR_CPUS_DEFAULT_64
1643         help
1644           This allows you to specify the maximum number of CPUs which this
1645           kernel will support.  The maximum supported value is 32 for 32-bit
1646           kernel and 64 for 64-bit kernels; the minimum value which makes
1647           sense is 1 for Qemu (useful only for kernel debugging purposes)
1648           and 2 for all others.
1649
1650           This is purely to save memory - each supported CPU adds
1651           approximately eight kilobytes to the kernel image.  For best
1652           performance should round up your number of processors to the next
1653           power of two.
1654
1655 #
1656 # Timer Interrupt Frequency Configuration
1657 #
1658
1659 choice
1660         prompt "Timer frequency"
1661         default HZ_250
1662         help
1663          Allows the configuration of the timer frequency.
1664
1665         config HZ_48
1666                 bool "48 HZ" if SYS_SUPPORTS_48HZ
1667
1668         config HZ_100
1669                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
1670
1671         config HZ_128
1672                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
1673
1674         config HZ_250
1675                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
1676
1677         config HZ_256
1678                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
1679
1680         config HZ_1000
1681                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
1682
1683         config HZ_1024
1684                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
1685
1686 endchoice
1687
1688 config SYS_SUPPORTS_48HZ
1689         bool
1690
1691 config SYS_SUPPORTS_100HZ
1692         bool
1693
1694 config SYS_SUPPORTS_128HZ
1695         bool
1696
1697 config SYS_SUPPORTS_250HZ
1698         bool
1699
1700 config SYS_SUPPORTS_256HZ
1701         bool
1702
1703 config SYS_SUPPORTS_1000HZ
1704         bool
1705
1706 config SYS_SUPPORTS_1024HZ
1707         bool
1708
1709 config SYS_SUPPORTS_ARBIT_HZ
1710         bool
1711         default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
1712                      !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
1713                      !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
1714                      !SYS_SUPPORTS_1024HZ
1715
1716 config HZ
1717         int
1718         default 48 if HZ_48
1719         default 100 if HZ_100
1720         default 128 if HZ_128
1721         default 250 if HZ_250
1722         default 256 if HZ_256
1723         default 1000 if HZ_1000
1724         default 1024 if HZ_1024
1725
1726 source "kernel/Kconfig.preempt"
1727
1728 config MIPS_INSANE_LARGE
1729         bool "Support for large 64-bit configurations"
1730         depends on CPU_R10000 && 64BIT
1731         help
1732           MIPS R10000 does support a 44 bit / 16TB address space as opposed to
1733           previous 64-bit processors which only supported 40 bit / 1TB. If you
1734           need processes of more than 1TB virtual address space, say Y here.
1735           This will result in additional memory usage, so it is not
1736           recommended for normal users.
1737
1738 config KEXEC
1739         bool "Kexec system call (EXPERIMENTAL)"
1740         depends on EXPERIMENTAL
1741         help
1742           kexec is a system call that implements the ability to shutdown your
1743           current kernel, and to start another kernel.  It is like a reboot
1744           but it is independent of the system firmware.   And like a reboot
1745           you can start any kernel with it, not just Linux.
1746
1747           The name comes from the similiarity to the exec system call.
1748
1749           It is an ongoing process to be certain the hardware in a machine
1750           is properly shutdown, so do not be surprised if this code does not
1751           initially work for you.  It may help to enable device hotplugging
1752           support.  As of this writing the exact hardware interface is
1753           strongly in flux, so no good recommendation can be made.
1754
1755 config SECCOMP
1756         bool "Enable seccomp to safely compute untrusted bytecode"
1757         depends on PROC_FS && BROKEN
1758         default y
1759         help
1760           This kernel feature is useful for number crunching applications
1761           that may need to compute untrusted bytecode during their
1762           execution. By using pipes or other transports made available to
1763           the process as file descriptors supporting the read/write
1764           syscalls, it's possible to isolate those applications in
1765           their own address space using seccomp. Once seccomp is
1766           enabled via /proc/<pid>/seccomp, it cannot be disabled
1767           and the task is only allowed to execute a few safe syscalls
1768           defined by each seccomp mode.
1769
1770           If unsure, say Y. Only embedded should say N here.
1771
1772 endmenu
1773
1774 config RWSEM_GENERIC_SPINLOCK
1775         bool
1776         default y
1777
1778 config LOCKDEP_SUPPORT
1779         bool
1780         default y
1781
1782 config STACKTRACE_SUPPORT
1783         bool
1784         default y
1785
1786 source "init/Kconfig"
1787
1788 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1789
1790 config HW_HAS_EISA
1791         bool
1792 config HW_HAS_PCI
1793         bool
1794
1795 config PCI
1796         bool "Support for PCI controller"
1797         depends on HW_HAS_PCI
1798         help
1799           Find out whether you have a PCI motherboard. PCI is the name of a
1800           bus system, i.e. the way the CPU talks to the other stuff inside
1801           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
1802           say Y, otherwise N.
1803
1804           The PCI-HOWTO, available from
1805           <http://www.tldp.org/docs.html#howto>, contains valuable
1806           information about which PCI hardware does work under Linux and which
1807           doesn't.
1808
1809 config PCI_DOMAINS
1810         bool
1811         depends on PCI
1812
1813 source "drivers/pci/Kconfig"
1814
1815 #
1816 # ISA support is now enabled via select.  Too many systems still have the one
1817 # or other ISA chip on the board that users don't know about so don't expect
1818 # users to choose the right thing ...
1819 #
1820 config ISA
1821         bool
1822
1823 config EISA
1824         bool "EISA support"
1825         depends on HW_HAS_EISA
1826         select ISA
1827         select GENERIC_ISA_DMA
1828         ---help---
1829           The Extended Industry Standard Architecture (EISA) bus was
1830           developed as an open alternative to the IBM MicroChannel bus.
1831
1832           The EISA bus provided some of the features of the IBM MicroChannel
1833           bus while maintaining backward compatibility with cards made for
1834           the older ISA bus.  The EISA bus saw limited use between 1988 and
1835           1995 when it was made obsolete by the PCI bus.
1836
1837           Say Y here if you are building a kernel for an EISA-based machine.
1838
1839           Otherwise, say N.
1840
1841 source "drivers/eisa/Kconfig"
1842
1843 config TC
1844         bool "TURBOchannel support"
1845         depends on MACH_DECSTATION
1846         help
1847           TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
1848           processors.  Documentation on writing device drivers for TurboChannel
1849           is available at:
1850           <http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3HD-TET1_html/TITLE.html>.
1851
1852 #config ACCESSBUS
1853 #       bool "Access.Bus support"
1854 #       depends on TC
1855
1856 config MMU
1857         bool
1858         default y
1859
1860 config I8253
1861         bool
1862
1863 source "drivers/pcmcia/Kconfig"
1864
1865 source "drivers/pci/hotplug/Kconfig"
1866
1867 endmenu
1868
1869 menu "Executable file formats"
1870
1871 source "fs/Kconfig.binfmt"
1872
1873 config TRAD_SIGNALS
1874         bool
1875
1876 config BUILD_ELF64
1877         bool "Use 64-bit ELF format for building"
1878         depends on 64BIT
1879         help
1880           A 64-bit kernel is usually built using the 64-bit ELF binary object
1881           format as it's one that allows arbitrary 64-bit constructs.  For
1882           kernels that are loaded within the KSEG compatibility segments the
1883           32-bit ELF format can optionally be used resulting in a somewhat
1884           smaller binary, but this option is not explicitly supported by the
1885           toolchain and since binutils 2.14 it does not even work at all.
1886
1887           Say Y to use the 64-bit format or N to use the 32-bit one.
1888
1889           If unsure say Y.
1890
1891 config BINFMT_IRIX
1892         bool "Include IRIX binary compatibility"
1893         depends on CPU_BIG_ENDIAN && 32BIT && BROKEN
1894
1895 config MIPS32_COMPAT
1896         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
1897         depends on 64BIT
1898         help
1899           Select this option if you want Linux/MIPS 32-bit binary
1900           compatibility. Since all software available for Linux/MIPS is
1901           currently 32-bit you should say Y here.
1902
1903 config COMPAT
1904         bool
1905         depends on MIPS32_COMPAT
1906         default y
1907
1908 config SYSVIPC_COMPAT
1909         bool
1910         depends on COMPAT && SYSVIPC
1911         default y
1912
1913 config MIPS32_O32
1914         bool "Kernel support for o32 binaries"
1915         depends on MIPS32_COMPAT
1916         help
1917           Select this option if you want to run o32 binaries.  These are pure
1918           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
1919           existing binaries are in this format.
1920
1921           If unsure, say Y.
1922
1923 config MIPS32_N32
1924         bool "Kernel support for n32 binaries"
1925         depends on MIPS32_COMPAT
1926         help
1927           Select this option if you want to run n32 binaries.  These are
1928           64-bit binaries using 32-bit quantities for addressing and certain
1929           data that would normally be 64-bit.  They are used in special
1930           cases.
1931
1932           If unsure, say N.
1933
1934 config BINFMT_ELF32
1935         bool
1936         default y if MIPS32_O32 || MIPS32_N32
1937
1938 endmenu
1939
1940 menu "Power management options"
1941
1942 source "kernel/power/Kconfig"
1943
1944 endmenu
1945
1946 source "net/Kconfig"
1947
1948 source "drivers/Kconfig"
1949
1950 source "fs/Kconfig"
1951
1952 source "arch/mips/oprofile/Kconfig"
1953
1954 source "arch/mips/Kconfig.debug"
1955
1956 source "security/Kconfig"
1957
1958 source "crypto/Kconfig"
1959
1960 source "lib/Kconfig"