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