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