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