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