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