Merge branches 'next/ar7', 'next/ath79', 'next/bcm63xx', 'next/bmips', 'next/cavium...
[linux-3.10.git] / arch / mips / Kconfig
1 config MIPS
2         bool
3         default y
4         select HAVE_GENERIC_DMA_COHERENT
5         select HAVE_IDE
6         select HAVE_OPROFILE
7         select HAVE_IRQ_WORK
8         select HAVE_PERF_EVENTS
9         select PERF_USE_VMALLOC
10         select HAVE_ARCH_KGDB
11         select HAVE_FUNCTION_TRACER
12         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
13         select HAVE_DYNAMIC_FTRACE
14         select HAVE_FTRACE_MCOUNT_RECORD
15         select HAVE_C_RECORDMCOUNT
16         select HAVE_FUNCTION_GRAPH_TRACER
17         select HAVE_KPROBES
18         select HAVE_KRETPROBES
19         select RTC_LIB if !MACH_LOONGSON
20         select GENERIC_ATOMIC64 if !64BIT
21         select HAVE_DMA_ATTRS
22         select HAVE_DMA_API_DEBUG
23         select HAVE_GENERIC_HARDIRQS
24         select GENERIC_IRQ_PROBE
25         select GENERIC_IRQ_SHOW
26         select HAVE_ARCH_JUMP_LABEL
27         select IRQ_FORCED_THREADING
28
29 menu "Machine selection"
30
31 config ZONE_DMA
32         bool
33
34 choice
35         prompt "System type"
36         default SGI_IP22
37
38 config MIPS_ALCHEMY
39         bool "Alchemy processor based machines"
40         select 64BIT_PHYS_ADDR
41         select CEVT_R4K_LIB
42         select CSRC_R4K_LIB
43         select IRQ_CPU
44         select SYS_HAS_CPU_MIPS32_R1
45         select SYS_SUPPORTS_32BIT_KERNEL
46         select SYS_SUPPORTS_APM_EMULATION
47         select GENERIC_GPIO
48         select ARCH_WANT_OPTIONAL_GPIOLIB
49         select SYS_SUPPORTS_ZBOOT
50         select USB_ARCH_HAS_OHCI
51         select USB_ARCH_HAS_EHCI
52
53 config AR7
54         bool "Texas Instruments AR7"
55         select BOOT_ELF32
56         select DMA_NONCOHERENT
57         select CEVT_R4K
58         select CSRC_R4K
59         select IRQ_CPU
60         select NO_EXCEPT_FILL
61         select SWAP_IO_SPACE
62         select SYS_HAS_CPU_MIPS32_R1
63         select SYS_HAS_EARLY_PRINTK
64         select SYS_SUPPORTS_32BIT_KERNEL
65         select SYS_SUPPORTS_LITTLE_ENDIAN
66         select SYS_SUPPORTS_ZBOOT_UART16550
67         select ARCH_REQUIRE_GPIOLIB
68         select GCD
69         select VLYNQ
70         help
71           Support for the Texas Instruments AR7 System-on-a-Chip
72           family: TNETD7100, 7200 and 7300.
73
74 config ATH79
75         bool "Atheros AR71XX/AR724X/AR913X based boards"
76         select ARCH_REQUIRE_GPIOLIB
77         select BOOT_RAW
78         select CEVT_R4K
79         select CSRC_R4K
80         select DMA_NONCOHERENT
81         select IRQ_CPU
82         select MIPS_MACHINE
83         select SYS_HAS_CPU_MIPS32_R2
84         select SYS_HAS_EARLY_PRINTK
85         select SYS_SUPPORTS_32BIT_KERNEL
86         select SYS_SUPPORTS_BIG_ENDIAN
87         help
88           Support for the Atheros AR71XX/AR724X/AR913X SoCs.
89
90 config BCM47XX
91         bool "Broadcom BCM47XX based boards"
92         select CEVT_R4K
93         select CSRC_R4K
94         select DMA_NONCOHERENT
95         select HW_HAS_PCI
96         select IRQ_CPU
97         select SYS_SUPPORTS_32BIT_KERNEL
98         select SYS_SUPPORTS_LITTLE_ENDIAN
99         select GENERIC_GPIO
100         select SYS_HAS_EARLY_PRINTK
101         select CFE
102         help
103          Support for BCM47XX based boards
104
105 config BCM63XX
106         bool "Broadcom BCM63XX based boards"
107         select CEVT_R4K
108         select CSRC_R4K
109         select DMA_NONCOHERENT
110         select IRQ_CPU
111         select SYS_HAS_CPU_MIPS32_R1
112         select SYS_SUPPORTS_32BIT_KERNEL
113         select SYS_SUPPORTS_BIG_ENDIAN
114         select SYS_HAS_EARLY_PRINTK
115         select SWAP_IO_SPACE
116         select ARCH_REQUIRE_GPIOLIB
117         help
118          Support for BCM63XX based boards
119
120 config MIPS_COBALT
121         bool "Cobalt Server"
122         select CEVT_R4K
123         select CSRC_R4K
124         select CEVT_GT641XX
125         select DMA_NONCOHERENT
126         select HW_HAS_PCI
127         select I8253
128         select I8259
129         select IRQ_CPU
130         select IRQ_GT641XX
131         select PCI_GT64XXX_PCI0
132         select PCI
133         select SYS_HAS_CPU_NEVADA
134         select SYS_HAS_EARLY_PRINTK
135         select SYS_SUPPORTS_32BIT_KERNEL
136         select SYS_SUPPORTS_64BIT_KERNEL
137         select SYS_SUPPORTS_LITTLE_ENDIAN
138
139 config MACH_DECSTATION
140         bool "DECstations"
141         select BOOT_ELF32
142         select CEVT_DS1287
143         select CEVT_R4K
144         select CSRC_IOASIC
145         select CSRC_R4K
146         select CPU_DADDI_WORKAROUNDS if 64BIT
147         select CPU_R4000_WORKAROUNDS if 64BIT
148         select CPU_R4400_WORKAROUNDS if 64BIT
149         select DMA_NONCOHERENT
150         select NO_IOPORT
151         select IRQ_CPU
152         select SYS_HAS_CPU_R3000
153         select SYS_HAS_CPU_R4X00
154         select SYS_SUPPORTS_32BIT_KERNEL
155         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
156         select SYS_SUPPORTS_LITTLE_ENDIAN
157         select SYS_SUPPORTS_128HZ
158         select SYS_SUPPORTS_256HZ
159         select SYS_SUPPORTS_1024HZ
160         help
161           This enables support for DEC's MIPS based workstations.  For details
162           see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
163           DECstation porting pages on <http://decstation.unix-ag.org/>.
164
165           If you have one of the following DECstation Models you definitely
166           want to choose R4xx0 for the CPU Type:
167
168                 DECstation 5000/50
169                 DECstation 5000/150
170                 DECstation 5000/260
171                 DECsystem 5900/260
172
173           otherwise choose R3000.
174
175 config MACH_JAZZ
176         bool "Jazz family of machines"
177         select ARC
178         select ARC32
179         select ARCH_MAY_HAVE_PC_FDC
180         select CEVT_R4K
181         select CSRC_R4K
182         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
183         select GENERIC_ISA_DMA
184         select HAVE_PCSPKR_PLATFORM
185         select IRQ_CPU
186         select I8253
187         select I8259
188         select ISA
189         select SYS_HAS_CPU_R4X00
190         select SYS_SUPPORTS_32BIT_KERNEL
191         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
192         select SYS_SUPPORTS_100HZ
193         help
194          This a family of machines based on the MIPS R4030 chipset which was
195          used by several vendors to build RISC/os and Windows NT workstations.
196          Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
197          Olivetti M700-10 workstations.
198
199 config MACH_JZ4740
200         bool "Ingenic JZ4740 based machines"
201         select SYS_HAS_CPU_MIPS32_R1
202         select SYS_SUPPORTS_32BIT_KERNEL
203         select SYS_SUPPORTS_LITTLE_ENDIAN
204         select DMA_NONCOHERENT
205         select IRQ_CPU
206         select GENERIC_GPIO
207         select ARCH_REQUIRE_GPIOLIB
208         select SYS_HAS_EARLY_PRINTK
209         select HAVE_PWM
210         select HAVE_CLK
211         select GENERIC_IRQ_CHIP
212
213 config LANTIQ
214         bool "Lantiq based platforms"
215         select DMA_NONCOHERENT
216         select IRQ_CPU
217         select CEVT_R4K
218         select CSRC_R4K
219         select SYS_HAS_CPU_MIPS32_R1
220         select SYS_HAS_CPU_MIPS32_R2
221         select SYS_SUPPORTS_BIG_ENDIAN
222         select SYS_SUPPORTS_32BIT_KERNEL
223         select SYS_SUPPORTS_MULTITHREADING
224         select SYS_HAS_EARLY_PRINTK
225         select ARCH_REQUIRE_GPIOLIB
226         select SWAP_IO_SPACE
227         select BOOT_RAW
228         select HAVE_CLK
229         select MIPS_MACHINE
230
231 config LASAT
232         bool "LASAT Networks platforms"
233         select CEVT_R4K
234         select CSRC_R4K
235         select DMA_NONCOHERENT
236         select SYS_HAS_EARLY_PRINTK
237         select HW_HAS_PCI
238         select IRQ_CPU
239         select PCI_GT64XXX_PCI0
240         select MIPS_NILE4
241         select R5000_CPU_SCACHE
242         select SYS_HAS_CPU_R5000
243         select SYS_SUPPORTS_32BIT_KERNEL
244         select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
245         select SYS_SUPPORTS_LITTLE_ENDIAN
246
247 config MACH_LOONGSON
248         bool "Loongson family of machines"
249         select SYS_SUPPORTS_ZBOOT
250         help
251           This enables the support of Loongson family of machines.
252
253           Loongson is a family of general-purpose MIPS-compatible CPUs.
254           developed at Institute of Computing Technology (ICT),
255           Chinese Academy of Sciences (CAS) in the People's Republic
256           of China. The chief architect is Professor Weiwu Hu.
257
258 config MIPS_MALTA
259         bool "MIPS Malta board"
260         select ARCH_MAY_HAVE_PC_FDC
261         select BOOT_ELF32
262         select BOOT_RAW
263         select CEVT_R4K
264         select CSRC_R4K
265         select DMA_NONCOHERENT
266         select GENERIC_ISA_DMA
267         select HAVE_PCSPKR_PLATFORM
268         select IRQ_CPU
269         select IRQ_GIC
270         select HW_HAS_PCI
271         select I8253
272         select I8259
273         select MIPS_BOARDS_GEN
274         select MIPS_BONITO64
275         select MIPS_CPU_SCACHE
276         select PCI_GT64XXX_PCI0
277         select MIPS_MSC
278         select SWAP_IO_SPACE
279         select SYS_HAS_CPU_MIPS32_R1
280         select SYS_HAS_CPU_MIPS32_R2
281         select SYS_HAS_CPU_MIPS64_R1
282         select SYS_HAS_CPU_NEVADA
283         select SYS_HAS_CPU_RM7000
284         select SYS_HAS_EARLY_PRINTK
285         select SYS_SUPPORTS_32BIT_KERNEL
286         select SYS_SUPPORTS_64BIT_KERNEL
287         select SYS_SUPPORTS_BIG_ENDIAN
288         select SYS_SUPPORTS_LITTLE_ENDIAN
289         select SYS_SUPPORTS_MIPS_CMP
290         select SYS_SUPPORTS_MULTITHREADING
291         select SYS_SUPPORTS_SMARTMIPS
292         select SYS_SUPPORTS_ZBOOT
293         help
294           This enables support for the MIPS Technologies Malta evaluation
295           board.
296
297 config MIPS_SIM
298         bool 'MIPS simulator (MIPSsim)'
299         select CEVT_R4K
300         select CSRC_R4K
301         select DMA_NONCOHERENT
302         select SYS_HAS_EARLY_PRINTK
303         select IRQ_CPU
304         select BOOT_RAW
305         select SYS_HAS_CPU_MIPS32_R1
306         select SYS_HAS_CPU_MIPS32_R2
307         select SYS_HAS_EARLY_PRINTK
308         select SYS_SUPPORTS_32BIT_KERNEL
309         select SYS_SUPPORTS_BIG_ENDIAN
310         select SYS_SUPPORTS_MULTITHREADING
311         select SYS_SUPPORTS_LITTLE_ENDIAN
312         help
313           This option enables support for MIPS Technologies MIPSsim software
314           emulator.
315
316 config NEC_MARKEINS
317         bool "NEC EMMA2RH Mark-eins board"
318         select SOC_EMMA2RH
319         select HW_HAS_PCI
320         help
321           This enables support for the NEC Electronics Mark-eins boards.
322
323 config MACH_VR41XX
324         bool "NEC VR4100 series based machines"
325         select CEVT_R4K
326         select CSRC_R4K
327         select SYS_HAS_CPU_VR41XX
328         select ARCH_REQUIRE_GPIOLIB
329
330 config NXP_STB220
331         bool "NXP STB220 board"
332         select SOC_PNX833X
333         help
334          Support for NXP Semiconductors STB220 Development Board.
335
336 config NXP_STB225
337         bool "NXP 225 board"
338         select SOC_PNX833X
339         select SOC_PNX8335
340         help
341          Support for NXP Semiconductors STB225 Development Board.
342
343 config PNX8550_JBS
344         bool "NXP PNX8550 based JBS board"
345         select PNX8550
346         select SYS_SUPPORTS_LITTLE_ENDIAN
347
348 config PNX8550_STB810
349         bool "NXP PNX8550 based STB810 board"
350         select PNX8550
351         select SYS_SUPPORTS_LITTLE_ENDIAN
352
353 config PMC_MSP
354         bool "PMC-Sierra MSP chipsets"
355         depends on EXPERIMENTAL
356         select CEVT_R4K
357         select CSRC_R4K
358         select DMA_NONCOHERENT
359         select SWAP_IO_SPACE
360         select NO_EXCEPT_FILL
361         select BOOT_RAW
362         select SYS_HAS_CPU_MIPS32_R1
363         select SYS_HAS_CPU_MIPS32_R2
364         select SYS_SUPPORTS_32BIT_KERNEL
365         select SYS_SUPPORTS_BIG_ENDIAN
366         select IRQ_CPU
367         select SERIAL_8250
368         select SERIAL_8250_CONSOLE
369         help
370           This adds support for the PMC-Sierra family of Multi-Service
371           Processor System-On-A-Chips.  These parts include a number
372           of integrated peripherals, interfaces and DSPs in addition to
373           a variety of MIPS cores.
374
375 config PMC_YOSEMITE
376         bool "PMC-Sierra Yosemite eval board"
377         select CEVT_R4K
378         select CSRC_R4K
379         select DMA_COHERENT
380         select HW_HAS_PCI
381         select IRQ_CPU
382         select IRQ_CPU_RM7K
383         select IRQ_CPU_RM9K
384         select SWAP_IO_SPACE
385         select SYS_HAS_CPU_RM9000
386         select SYS_HAS_EARLY_PRINTK
387         select SYS_SUPPORTS_32BIT_KERNEL
388         select SYS_SUPPORTS_64BIT_KERNEL
389         select SYS_SUPPORTS_BIG_ENDIAN
390         select SYS_SUPPORTS_HIGHMEM
391         select SYS_SUPPORTS_SMP
392         help
393           Yosemite is an evaluation board for the RM9000x2 processor
394           manufactured by PMC-Sierra.
395
396 config POWERTV
397         bool "Cisco PowerTV"
398         select BOOT_ELF32
399         select CEVT_R4K
400         select CPU_MIPSR2_IRQ_VI
401         select CPU_MIPSR2_IRQ_EI
402         select CSRC_POWERTV
403         select DMA_NONCOHERENT
404         select HW_HAS_PCI
405         select SYS_HAS_EARLY_PRINTK
406         select SYS_HAS_CPU_MIPS32_R2
407         select SYS_SUPPORTS_32BIT_KERNEL
408         select SYS_SUPPORTS_BIG_ENDIAN
409         select SYS_SUPPORTS_HIGHMEM
410         select USB_OHCI_LITTLE_ENDIAN
411         help
412           This enables support for the Cisco PowerTV Platform.
413
414 config SGI_IP22
415         bool "SGI IP22 (Indy/Indigo2)"
416         select ARC
417         select ARC32
418         select BOOT_ELF32
419         select CEVT_R4K
420         select CSRC_R4K
421         select DEFAULT_SGI_PARTITION
422         select DMA_NONCOHERENT
423         select HW_HAS_EISA
424         select I8253
425         select I8259
426         select IP22_CPU_SCACHE
427         select IRQ_CPU
428         select GENERIC_ISA_DMA_SUPPORT_BROKEN
429         select SGI_HAS_I8042
430         select SGI_HAS_INDYDOG
431         select SGI_HAS_HAL2
432         select SGI_HAS_SEEQ
433         select SGI_HAS_WD93
434         select SGI_HAS_ZILOG
435         select SWAP_IO_SPACE
436         select SYS_HAS_CPU_R4X00
437         select SYS_HAS_CPU_R5000
438         #
439         # Disable EARLY_PRINTK for now since it leads to overwritten prom
440         # memory during early boot on some machines.
441         #
442         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
443         # for a more details discussion
444         #
445         # select SYS_HAS_EARLY_PRINTK
446         select SYS_SUPPORTS_32BIT_KERNEL
447         select SYS_SUPPORTS_64BIT_KERNEL
448         select SYS_SUPPORTS_BIG_ENDIAN
449         help
450           This are the SGI Indy, Challenge S and Indigo2, as well as certain
451           OEM variants like the Tandem CMN B006S. To compile a Linux kernel
452           that runs on these, say Y here.
453
454 config SGI_IP27
455         bool "SGI IP27 (Origin200/2000)"
456         select ARC
457         select ARC64
458         select BOOT_ELF64
459         select DEFAULT_SGI_PARTITION
460         select DMA_COHERENT
461         select SYS_HAS_EARLY_PRINTK
462         select HW_HAS_PCI
463         select NR_CPUS_DEFAULT_64
464         select SYS_HAS_CPU_R10000
465         select SYS_SUPPORTS_64BIT_KERNEL
466         select SYS_SUPPORTS_BIG_ENDIAN
467         select SYS_SUPPORTS_NUMA
468         select SYS_SUPPORTS_SMP
469         help
470           This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
471           workstations.  To compile a Linux kernel that runs on these, say Y
472           here.
473
474 config SGI_IP28
475         bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
476         depends on EXPERIMENTAL
477         select ARC
478         select ARC64
479         select BOOT_ELF64
480         select CEVT_R4K
481         select CSRC_R4K
482         select DEFAULT_SGI_PARTITION
483         select DMA_NONCOHERENT
484         select GENERIC_ISA_DMA_SUPPORT_BROKEN
485         select IRQ_CPU
486         select HW_HAS_EISA
487         select I8253
488         select I8259
489         select SGI_HAS_I8042
490         select SGI_HAS_INDYDOG
491         select SGI_HAS_HAL2
492         select SGI_HAS_SEEQ
493         select SGI_HAS_WD93
494         select SGI_HAS_ZILOG
495         select SWAP_IO_SPACE
496         select SYS_HAS_CPU_R10000
497         #
498         # Disable EARLY_PRINTK for now since it leads to overwritten prom
499         # memory during early boot on some machines.
500         #
501         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
502         # for a more details discussion
503         #
504         # select SYS_HAS_EARLY_PRINTK
505         select SYS_SUPPORTS_64BIT_KERNEL
506         select SYS_SUPPORTS_BIG_ENDIAN
507       help
508         This is the SGI Indigo2 with R10000 processor.  To compile a Linux
509         kernel that runs on these, say Y here.
510
511 config SGI_IP32
512         bool "SGI IP32 (O2)"
513         select ARC
514         select ARC32
515         select BOOT_ELF32
516         select CEVT_R4K
517         select CSRC_R4K
518         select DMA_NONCOHERENT
519         select HW_HAS_PCI
520         select IRQ_CPU
521         select R5000_CPU_SCACHE
522         select RM7000_CPU_SCACHE
523         select SYS_HAS_CPU_R5000
524         select SYS_HAS_CPU_R10000 if BROKEN
525         select SYS_HAS_CPU_RM7000
526         select SYS_HAS_CPU_NEVADA
527         select SYS_SUPPORTS_64BIT_KERNEL
528         select SYS_SUPPORTS_BIG_ENDIAN
529         help
530           If you want this kernel to run on SGI O2 workstation, say Y here.
531
532 config SIBYTE_CRHINE
533         bool "Sibyte BCM91120C-CRhine"
534         depends on EXPERIMENTAL
535         select BOOT_ELF32
536         select DMA_COHERENT
537         select SIBYTE_BCM1120
538         select SWAP_IO_SPACE
539         select SYS_HAS_CPU_SB1
540         select SYS_SUPPORTS_BIG_ENDIAN
541         select SYS_SUPPORTS_LITTLE_ENDIAN
542
543 config SIBYTE_CARMEL
544         bool "Sibyte BCM91120x-Carmel"
545         depends on EXPERIMENTAL
546         select BOOT_ELF32
547         select DMA_COHERENT
548         select SIBYTE_BCM1120
549         select SWAP_IO_SPACE
550         select SYS_HAS_CPU_SB1
551         select SYS_SUPPORTS_BIG_ENDIAN
552         select SYS_SUPPORTS_LITTLE_ENDIAN
553
554 config SIBYTE_CRHONE
555         bool "Sibyte BCM91125C-CRhone"
556         depends on EXPERIMENTAL
557         select BOOT_ELF32
558         select DMA_COHERENT
559         select SIBYTE_BCM1125
560         select SWAP_IO_SPACE
561         select SYS_HAS_CPU_SB1
562         select SYS_SUPPORTS_BIG_ENDIAN
563         select SYS_SUPPORTS_HIGHMEM
564         select SYS_SUPPORTS_LITTLE_ENDIAN
565
566 config SIBYTE_RHONE
567         bool "Sibyte BCM91125E-Rhone"
568         depends on EXPERIMENTAL
569         select BOOT_ELF32
570         select DMA_COHERENT
571         select SIBYTE_BCM1125H
572         select SWAP_IO_SPACE
573         select SYS_HAS_CPU_SB1
574         select SYS_SUPPORTS_BIG_ENDIAN
575         select SYS_SUPPORTS_LITTLE_ENDIAN
576
577 config SIBYTE_SWARM
578         bool "Sibyte BCM91250A-SWARM"
579         select BOOT_ELF32
580         select DMA_COHERENT
581         select HAVE_PATA_PLATFORM
582         select NR_CPUS_DEFAULT_2
583         select SIBYTE_SB1250
584         select SWAP_IO_SPACE
585         select SYS_HAS_CPU_SB1
586         select SYS_SUPPORTS_BIG_ENDIAN
587         select SYS_SUPPORTS_HIGHMEM
588         select SYS_SUPPORTS_LITTLE_ENDIAN
589         select ZONE_DMA32 if 64BIT
590
591 config SIBYTE_LITTLESUR
592         bool "Sibyte BCM91250C2-LittleSur"
593         depends on EXPERIMENTAL
594         select BOOT_ELF32
595         select DMA_COHERENT
596         select HAVE_PATA_PLATFORM
597         select NR_CPUS_DEFAULT_2
598         select SIBYTE_SB1250
599         select SWAP_IO_SPACE
600         select SYS_HAS_CPU_SB1
601         select SYS_SUPPORTS_BIG_ENDIAN
602         select SYS_SUPPORTS_HIGHMEM
603         select SYS_SUPPORTS_LITTLE_ENDIAN
604
605 config SIBYTE_SENTOSA
606         bool "Sibyte BCM91250E-Sentosa"
607         depends on EXPERIMENTAL
608         select BOOT_ELF32
609         select DMA_COHERENT
610         select NR_CPUS_DEFAULT_2
611         select SIBYTE_SB1250
612         select SWAP_IO_SPACE
613         select SYS_HAS_CPU_SB1
614         select SYS_SUPPORTS_BIG_ENDIAN
615         select SYS_SUPPORTS_LITTLE_ENDIAN
616
617 config SIBYTE_BIGSUR
618         bool "Sibyte BCM91480B-BigSur"
619         select BOOT_ELF32
620         select DMA_COHERENT
621         select NR_CPUS_DEFAULT_4
622         select SIBYTE_BCM1x80
623         select SWAP_IO_SPACE
624         select SYS_HAS_CPU_SB1
625         select SYS_SUPPORTS_BIG_ENDIAN
626         select SYS_SUPPORTS_HIGHMEM
627         select SYS_SUPPORTS_LITTLE_ENDIAN
628         select ZONE_DMA32 if 64BIT
629
630 config SNI_RM
631         bool "SNI RM200/300/400"
632         select ARC if CPU_LITTLE_ENDIAN
633         select ARC32 if CPU_LITTLE_ENDIAN
634         select SNIPROM if CPU_BIG_ENDIAN
635         select ARCH_MAY_HAVE_PC_FDC
636         select BOOT_ELF32
637         select CEVT_R4K
638         select CSRC_R4K
639         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
640         select DMA_NONCOHERENT
641         select GENERIC_ISA_DMA
642         select HAVE_PCSPKR_PLATFORM
643         select HW_HAS_EISA
644         select HW_HAS_PCI
645         select IRQ_CPU
646         select I8253
647         select I8259
648         select ISA
649         select SWAP_IO_SPACE if CPU_BIG_ENDIAN
650         select SYS_HAS_CPU_R4X00
651         select SYS_HAS_CPU_R5000
652         select SYS_HAS_CPU_R10000
653         select R5000_CPU_SCACHE
654         select SYS_HAS_EARLY_PRINTK
655         select SYS_SUPPORTS_32BIT_KERNEL
656         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
657         select SYS_SUPPORTS_BIG_ENDIAN
658         select SYS_SUPPORTS_HIGHMEM
659         select SYS_SUPPORTS_LITTLE_ENDIAN
660         help
661           The SNI RM200/300/400 are MIPS-based machines manufactured by
662           Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
663           Technology and now in turn merged with Fujitsu.  Say Y here to
664           support this machine type.
665
666 config MACH_TX39XX
667         bool "Toshiba TX39 series based machines"
668
669 config MACH_TX49XX
670         bool "Toshiba TX49 series based machines"
671
672 config MIKROTIK_RB532
673         bool "Mikrotik RB532 boards"
674         select CEVT_R4K
675         select CSRC_R4K
676         select DMA_NONCOHERENT
677         select HW_HAS_PCI
678         select IRQ_CPU
679         select SYS_HAS_CPU_MIPS32_R1
680         select SYS_SUPPORTS_32BIT_KERNEL
681         select SYS_SUPPORTS_LITTLE_ENDIAN
682         select SWAP_IO_SPACE
683         select BOOT_RAW
684         select ARCH_REQUIRE_GPIOLIB
685         help
686           Support the Mikrotik(tm) RouterBoard 532 series,
687           based on the IDT RC32434 SoC.
688
689 config WR_PPMC
690         bool "Wind River PPMC board"
691         select CEVT_R4K
692         select CSRC_R4K
693         select IRQ_CPU
694         select BOOT_ELF32
695         select DMA_NONCOHERENT
696         select HW_HAS_PCI
697         select PCI_GT64XXX_PCI0
698         select SWAP_IO_SPACE
699         select SYS_HAS_CPU_MIPS32_R1
700         select SYS_HAS_CPU_MIPS32_R2
701         select SYS_HAS_CPU_MIPS64_R1
702         select SYS_HAS_CPU_NEVADA
703         select SYS_HAS_CPU_RM7000
704         select SYS_SUPPORTS_32BIT_KERNEL
705         select SYS_SUPPORTS_64BIT_KERNEL
706         select SYS_SUPPORTS_BIG_ENDIAN
707         select SYS_SUPPORTS_LITTLE_ENDIAN
708         help
709           This enables support for the Wind River MIPS32 4KC PPMC evaluation
710           board, which is based on GT64120 bridge chip.
711
712 config CAVIUM_OCTEON_SIMULATOR
713         bool "Cavium Networks Octeon Simulator"
714         select CEVT_R4K
715         select 64BIT_PHYS_ADDR
716         select DMA_COHERENT
717         select SYS_SUPPORTS_64BIT_KERNEL
718         select SYS_SUPPORTS_BIG_ENDIAN
719         select SYS_SUPPORTS_HOTPLUG_CPU
720         select SYS_HAS_CPU_CAVIUM_OCTEON
721         select HOLES_IN_ZONE
722         help
723           The Octeon simulator is software performance model of the Cavium
724           Octeon Processor. It supports simulating Octeon processors on x86
725           hardware.
726
727 config CAVIUM_OCTEON_REFERENCE_BOARD
728         bool "Cavium Networks Octeon reference board"
729         select CEVT_R4K
730         select 64BIT_PHYS_ADDR
731         select DMA_COHERENT
732         select SYS_SUPPORTS_64BIT_KERNEL
733         select SYS_SUPPORTS_BIG_ENDIAN
734         select SYS_SUPPORTS_HOTPLUG_CPU
735         select SYS_HAS_EARLY_PRINTK
736         select SYS_HAS_CPU_CAVIUM_OCTEON
737         select SWAP_IO_SPACE
738         select HW_HAS_PCI
739         select ARCH_SUPPORTS_MSI
740         select ZONE_DMA32
741         select USB_ARCH_HAS_OHCI
742         select USB_ARCH_HAS_EHCI
743         select HOLES_IN_ZONE
744         help
745           This option supports all of the Octeon reference boards from Cavium
746           Networks. It builds a kernel that dynamically determines the Octeon
747           CPU type and supports all known board reference implementations.
748           Some of the supported boards are:
749                 EBT3000
750                 EBH3000
751                 EBH3100
752                 Thunder
753                 Kodama
754                 Hikari
755           Say Y here for most Octeon reference boards.
756
757 config NLM_XLR_BOARD
758         bool "Netlogic XLR/XLS based systems"
759         depends on EXPERIMENTAL
760         select BOOT_ELF32
761         select NLM_COMMON
762         select SYS_HAS_CPU_XLR
763         select SYS_SUPPORTS_SMP
764         select HW_HAS_PCI
765         select SWAP_IO_SPACE
766         select SYS_SUPPORTS_32BIT_KERNEL
767         select SYS_SUPPORTS_64BIT_KERNEL
768         select 64BIT_PHYS_ADDR
769         select SYS_SUPPORTS_BIG_ENDIAN
770         select SYS_SUPPORTS_HIGHMEM
771         select DMA_COHERENT
772         select NR_CPUS_DEFAULT_32
773         select CEVT_R4K
774         select CSRC_R4K
775         select IRQ_CPU
776         select ARCH_SUPPORTS_MSI
777         select ZONE_DMA if 64BIT
778         select SYNC_R4K
779         select SYS_HAS_EARLY_PRINTK
780         help
781           Support for systems based on Netlogic XLR and XLS processors.
782           Say Y here if you have a XLR or XLS based board.
783
784 config NLM_XLP_BOARD
785         bool "Netlogic XLP based systems"
786         depends on EXPERIMENTAL
787         select BOOT_ELF32
788         select NLM_COMMON
789         select SYS_HAS_CPU_XLP
790         select SYS_SUPPORTS_SMP
791         select HW_HAS_PCI
792         select SWAP_IO_SPACE
793         select SYS_SUPPORTS_32BIT_KERNEL
794         select SYS_SUPPORTS_64BIT_KERNEL
795         select 64BIT_PHYS_ADDR
796         select SYS_SUPPORTS_BIG_ENDIAN
797         select SYS_SUPPORTS_LITTLE_ENDIAN
798         select SYS_SUPPORTS_HIGHMEM
799         select DMA_COHERENT
800         select NR_CPUS_DEFAULT_32
801         select CEVT_R4K
802         select CSRC_R4K
803         select IRQ_CPU
804         select ZONE_DMA if 64BIT
805         select SYNC_R4K
806         select SYS_HAS_EARLY_PRINTK
807         help
808           This board is based on Netlogic XLP Processor.
809           Say Y here if you have a XLP based board.
810
811 endchoice
812
813 source "arch/mips/alchemy/Kconfig"
814 source "arch/mips/ath79/Kconfig"
815 source "arch/mips/bcm47xx/Kconfig"
816 source "arch/mips/bcm63xx/Kconfig"
817 source "arch/mips/jazz/Kconfig"
818 source "arch/mips/jz4740/Kconfig"
819 source "arch/mips/lantiq/Kconfig"
820 source "arch/mips/lasat/Kconfig"
821 source "arch/mips/pmc-sierra/Kconfig"
822 source "arch/mips/powertv/Kconfig"
823 source "arch/mips/sgi-ip27/Kconfig"
824 source "arch/mips/sibyte/Kconfig"
825 source "arch/mips/txx9/Kconfig"
826 source "arch/mips/vr41xx/Kconfig"
827 source "arch/mips/cavium-octeon/Kconfig"
828 source "arch/mips/loongson/Kconfig"
829 source "arch/mips/netlogic/Kconfig"
830
831 endmenu
832
833 config RWSEM_GENERIC_SPINLOCK
834         bool
835         default y
836
837 config RWSEM_XCHGADD_ALGORITHM
838         bool
839
840 config ARCH_HAS_ILOG2_U32
841         bool
842         default n
843
844 config ARCH_HAS_ILOG2_U64
845         bool
846         default n
847
848 config GENERIC_HWEIGHT
849         bool
850         default y
851
852 config GENERIC_CALIBRATE_DELAY
853         bool
854         default y
855
856 config GENERIC_CLOCKEVENTS
857         bool
858         default y
859
860 config GENERIC_CMOS_UPDATE
861         bool
862         default y
863
864 config SCHED_OMIT_FRAME_POINTER
865         bool
866         default y
867
868 #
869 # Select some configuration options automatically based on user selections.
870 #
871 config ARC
872         bool
873
874 config ARCH_MAY_HAVE_PC_FDC
875         bool
876
877 config BOOT_RAW
878         bool
879
880 config CEVT_BCM1480
881         bool
882
883 config CEVT_DS1287
884         bool
885
886 config CEVT_GT641XX
887         bool
888
889 config CEVT_R4K_LIB
890         bool
891
892 config CEVT_R4K
893         select CEVT_R4K_LIB
894         bool
895
896 config CEVT_SB1250
897         bool
898
899 config CEVT_TXX9
900         bool
901
902 config CSRC_BCM1480
903         bool
904
905 config CSRC_IOASIC
906         bool
907
908 config CSRC_POWERTV
909         bool
910
911 config CSRC_R4K_LIB
912         bool
913
914 config CSRC_R4K
915         select CSRC_R4K_LIB
916         bool
917
918 config CSRC_SB1250
919         bool
920
921 config GPIO_TXX9
922         select GENERIC_GPIO
923         select ARCH_REQUIRE_GPIOLIB
924         bool
925
926 config CFE
927         bool
928
929 config ARCH_DMA_ADDR_T_64BIT
930         def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
931
932 config DMA_COHERENT
933         bool
934
935 config DMA_NONCOHERENT
936         bool
937         select NEED_DMA_MAP_STATE
938
939 config NEED_DMA_MAP_STATE
940         bool
941
942 config SYS_HAS_EARLY_PRINTK
943         bool
944
945 config HOTPLUG_CPU
946         bool "Support for hot-pluggable CPUs"
947         depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
948         help
949           Say Y here to allow turning CPUs off and on. CPUs can be
950           controlled through /sys/devices/system/cpu.
951           (Note: power management support will enable this option
952             automatically on SMP systems. )
953           Say N if you want to disable CPU hotplug.
954
955 config SYS_SUPPORTS_HOTPLUG_CPU
956         bool
957
958 config I8259
959         bool
960
961 config MIPS_BONITO64
962         bool
963
964 config MIPS_MSC
965         bool
966
967 config MIPS_NILE4
968         bool
969
970 config MIPS_DISABLE_OBSOLETE_IDE
971         bool
972
973 config SYNC_R4K
974         bool
975
976 config MIPS_MACHINE
977         def_bool n
978
979 config NO_IOPORT
980         def_bool n
981
982 config GENERIC_ISA_DMA
983         bool
984         select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
985         select ISA_DMA_API
986
987 config GENERIC_ISA_DMA_SUPPORT_BROKEN
988         bool
989         select GENERIC_ISA_DMA
990
991 config ISA_DMA_API
992         bool
993
994 config GENERIC_GPIO
995         bool
996
997 config HOLES_IN_ZONE
998         bool
999
1000 #
1001 # Endianess selection.  Sufficiently obscure so many users don't know what to
1002 # answer,so we try hard to limit the available choices.  Also the use of a
1003 # choice statement should be more obvious to the user.
1004 #
1005 choice
1006         prompt "Endianess selection"
1007         help
1008           Some MIPS machines can be configured for either little or big endian
1009           byte order. These modes require different kernels and a different
1010           Linux distribution.  In general there is one preferred byteorder for a
1011           particular system but some systems are just as commonly used in the
1012           one or the other endianness.
1013
1014 config CPU_BIG_ENDIAN
1015         bool "Big endian"
1016         depends on SYS_SUPPORTS_BIG_ENDIAN
1017
1018 config CPU_LITTLE_ENDIAN
1019         bool "Little endian"
1020         depends on SYS_SUPPORTS_LITTLE_ENDIAN
1021         help
1022
1023 endchoice
1024
1025 config EXPORT_UASM
1026         bool
1027
1028 config SYS_SUPPORTS_APM_EMULATION
1029         bool
1030
1031 config SYS_SUPPORTS_BIG_ENDIAN
1032         bool
1033
1034 config SYS_SUPPORTS_LITTLE_ENDIAN
1035         bool
1036
1037 config SYS_SUPPORTS_HUGETLBFS
1038         bool
1039         depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1040         default y
1041
1042 config IRQ_CPU
1043         bool
1044
1045 config IRQ_CPU_RM7K
1046         bool
1047
1048 config IRQ_CPU_RM9K
1049         bool
1050
1051 config IRQ_MSP_SLP
1052         bool
1053
1054 config IRQ_MSP_CIC
1055         bool
1056
1057 config IRQ_TXX9
1058         bool
1059
1060 config IRQ_GT641XX
1061         bool
1062
1063 config IRQ_GIC
1064         bool
1065
1066 config MIPS_BOARDS_GEN
1067         bool
1068
1069 config PCI_GT64XXX_PCI0
1070         bool
1071
1072 config NO_EXCEPT_FILL
1073         bool
1074
1075 config MIPS_RM9122
1076         bool
1077         select SERIAL_RM9000
1078
1079 config SOC_EMMA2RH
1080         bool
1081         select CEVT_R4K
1082         select CSRC_R4K
1083         select DMA_NONCOHERENT
1084         select IRQ_CPU
1085         select SWAP_IO_SPACE
1086         select SYS_HAS_CPU_R5500
1087         select SYS_SUPPORTS_32BIT_KERNEL
1088         select SYS_SUPPORTS_64BIT_KERNEL
1089         select SYS_SUPPORTS_BIG_ENDIAN
1090
1091 config SOC_PNX833X
1092         bool
1093         select CEVT_R4K
1094         select CSRC_R4K
1095         select IRQ_CPU
1096         select DMA_NONCOHERENT
1097         select SYS_HAS_CPU_MIPS32_R2
1098         select SYS_SUPPORTS_32BIT_KERNEL
1099         select SYS_SUPPORTS_LITTLE_ENDIAN
1100         select SYS_SUPPORTS_BIG_ENDIAN
1101         select GENERIC_GPIO
1102         select CPU_MIPSR2_IRQ_VI
1103
1104 config SOC_PNX8335
1105         bool
1106         select SOC_PNX833X
1107
1108 config PNX8550
1109         bool
1110         select SOC_PNX8550
1111
1112 config SOC_PNX8550
1113         bool
1114         select DMA_NONCOHERENT
1115         select HW_HAS_PCI
1116         select SYS_HAS_CPU_MIPS32_R1
1117         select SYS_HAS_EARLY_PRINTK
1118         select SYS_SUPPORTS_32BIT_KERNEL
1119         select GENERIC_GPIO
1120
1121 config SWAP_IO_SPACE
1122         bool
1123
1124 config SERIAL_RM9000
1125         bool
1126
1127 config SGI_HAS_INDYDOG
1128         bool
1129
1130 config SGI_HAS_HAL2
1131         bool
1132
1133 config SGI_HAS_SEEQ
1134         bool
1135
1136 config SGI_HAS_WD93
1137         bool
1138
1139 config SGI_HAS_ZILOG
1140         bool
1141
1142 config SGI_HAS_I8042
1143         bool
1144
1145 config DEFAULT_SGI_PARTITION
1146         bool
1147
1148 config ARC32
1149         bool
1150
1151 config SNIPROM
1152         bool
1153
1154 config BOOT_ELF32
1155         bool
1156
1157 config MIPS_L1_CACHE_SHIFT
1158         int
1159         default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1160         default "6" if MIPS_CPU_SCACHE
1161         default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1162         default "5"
1163
1164 config HAVE_STD_PC_SERIAL_PORT
1165         bool
1166
1167 config ARC_CONSOLE
1168         bool "ARC console support"
1169         depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1170
1171 config ARC_MEMORY
1172         bool
1173         depends on MACH_JAZZ || SNI_RM || SGI_IP32
1174         default y
1175
1176 config ARC_PROMLIB
1177         bool
1178         depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1179         default y
1180
1181 config ARC64
1182         bool
1183
1184 config BOOT_ELF64
1185         bool
1186
1187 menu "CPU selection"
1188
1189 choice
1190         prompt "CPU type"
1191         default CPU_R4X00
1192
1193 config CPU_LOONGSON2E
1194         bool "Loongson 2E"
1195         depends on SYS_HAS_CPU_LOONGSON2E
1196         select CPU_LOONGSON2
1197         help
1198           The Loongson 2E processor implements the MIPS III instruction set
1199           with many extensions.
1200
1201           It has an internal FPGA northbridge, which is compatible to
1202           bonito64.
1203
1204 config CPU_LOONGSON2F
1205         bool "Loongson 2F"
1206         depends on SYS_HAS_CPU_LOONGSON2F
1207         select CPU_LOONGSON2
1208         select GENERIC_GPIO
1209         select ARCH_REQUIRE_GPIOLIB
1210         help
1211           The Loongson 2F processor implements the MIPS III instruction set
1212           with many extensions.
1213
1214           Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1215           have a similar programming interface with FPGA northbridge used in
1216           Loongson2E.
1217
1218 config CPU_MIPS32_R1
1219         bool "MIPS32 Release 1"
1220         depends on SYS_HAS_CPU_MIPS32_R1
1221         select CPU_HAS_PREFETCH
1222         select CPU_SUPPORTS_32BIT_KERNEL
1223         select CPU_SUPPORTS_HIGHMEM
1224         help
1225           Choose this option to build a kernel for release 1 or later of the
1226           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1227           MIPS processor are based on a MIPS32 processor.  If you know the
1228           specific type of processor in your system, choose those that one
1229           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1230           Release 2 of the MIPS32 architecture is available since several
1231           years so chances are you even have a MIPS32 Release 2 processor
1232           in which case you should choose CPU_MIPS32_R2 instead for better
1233           performance.
1234
1235 config CPU_MIPS32_R2
1236         bool "MIPS32 Release 2"
1237         depends on SYS_HAS_CPU_MIPS32_R2
1238         select CPU_HAS_PREFETCH
1239         select CPU_SUPPORTS_32BIT_KERNEL
1240         select CPU_SUPPORTS_HIGHMEM
1241         help
1242           Choose this option to build a kernel for release 2 or later of the
1243           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1244           MIPS processor are based on a MIPS32 processor.  If you know the
1245           specific type of processor in your system, choose those that one
1246           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1247
1248 config CPU_MIPS64_R1
1249         bool "MIPS64 Release 1"
1250         depends on SYS_HAS_CPU_MIPS64_R1
1251         select CPU_HAS_PREFETCH
1252         select CPU_SUPPORTS_32BIT_KERNEL
1253         select CPU_SUPPORTS_64BIT_KERNEL
1254         select CPU_SUPPORTS_HIGHMEM
1255         select CPU_SUPPORTS_HUGEPAGES
1256         help
1257           Choose this option to build a kernel for release 1 or later of the
1258           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1259           MIPS processor are based on a MIPS64 processor.  If you know the
1260           specific type of processor in your system, choose those that one
1261           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1262           Release 2 of the MIPS64 architecture is available since several
1263           years so chances are you even have a MIPS64 Release 2 processor
1264           in which case you should choose CPU_MIPS64_R2 instead for better
1265           performance.
1266
1267 config CPU_MIPS64_R2
1268         bool "MIPS64 Release 2"
1269         depends on SYS_HAS_CPU_MIPS64_R2
1270         select CPU_HAS_PREFETCH
1271         select CPU_SUPPORTS_32BIT_KERNEL
1272         select CPU_SUPPORTS_64BIT_KERNEL
1273         select CPU_SUPPORTS_HIGHMEM
1274         select CPU_SUPPORTS_HUGEPAGES
1275         help
1276           Choose this option to build a kernel for release 2 or later of the
1277           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1278           MIPS processor are based on a MIPS64 processor.  If you know the
1279           specific type of processor in your system, choose those that one
1280           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1281
1282 config CPU_R3000
1283         bool "R3000"
1284         depends on SYS_HAS_CPU_R3000
1285         select CPU_HAS_WB
1286         select CPU_SUPPORTS_32BIT_KERNEL
1287         select CPU_SUPPORTS_HIGHMEM
1288         help
1289           Please make sure to pick the right CPU type. Linux/MIPS is not
1290           designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1291           *not* work on R4000 machines and vice versa.  However, since most
1292           of the supported machines have an R4000 (or similar) CPU, R4x00
1293           might be a safe bet.  If the resulting kernel does not work,
1294           try to recompile with R3000.
1295
1296 config CPU_TX39XX
1297         bool "R39XX"
1298         depends on SYS_HAS_CPU_TX39XX
1299         select CPU_SUPPORTS_32BIT_KERNEL
1300
1301 config CPU_VR41XX
1302         bool "R41xx"
1303         depends on SYS_HAS_CPU_VR41XX
1304         select CPU_SUPPORTS_32BIT_KERNEL
1305         select CPU_SUPPORTS_64BIT_KERNEL
1306         help
1307           The options selects support for the NEC VR4100 series of processors.
1308           Only choose this option if you have one of these processors as a
1309           kernel built with this option will not run on any other type of
1310           processor or vice versa.
1311
1312 config CPU_R4300
1313         bool "R4300"
1314         depends on SYS_HAS_CPU_R4300
1315         select CPU_SUPPORTS_32BIT_KERNEL
1316         select CPU_SUPPORTS_64BIT_KERNEL
1317         help
1318           MIPS Technologies R4300-series processors.
1319
1320 config CPU_R4X00
1321         bool "R4x00"
1322         depends on SYS_HAS_CPU_R4X00
1323         select CPU_SUPPORTS_32BIT_KERNEL
1324         select CPU_SUPPORTS_64BIT_KERNEL
1325         help
1326           MIPS Technologies R4000-series processors other than 4300, including
1327           the R4000, R4400, R4600, and 4700.
1328
1329 config CPU_TX49XX
1330         bool "R49XX"
1331         depends on SYS_HAS_CPU_TX49XX
1332         select CPU_HAS_PREFETCH
1333         select CPU_SUPPORTS_32BIT_KERNEL
1334         select CPU_SUPPORTS_64BIT_KERNEL
1335
1336 config CPU_R5000
1337         bool "R5000"
1338         depends on SYS_HAS_CPU_R5000
1339         select CPU_SUPPORTS_32BIT_KERNEL
1340         select CPU_SUPPORTS_64BIT_KERNEL
1341         help
1342           MIPS Technologies R5000-series processors other than the Nevada.
1343
1344 config CPU_R5432
1345         bool "R5432"
1346         depends on SYS_HAS_CPU_R5432
1347         select CPU_SUPPORTS_32BIT_KERNEL
1348         select CPU_SUPPORTS_64BIT_KERNEL
1349
1350 config CPU_R5500
1351         bool "R5500"
1352         depends on SYS_HAS_CPU_R5500
1353         select CPU_SUPPORTS_32BIT_KERNEL
1354         select CPU_SUPPORTS_64BIT_KERNEL
1355         select CPU_SUPPORTS_HUGEPAGES
1356         help
1357           NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1358           instruction set.
1359
1360 config CPU_R6000
1361         bool "R6000"
1362         depends on EXPERIMENTAL
1363         depends on SYS_HAS_CPU_R6000
1364         select CPU_SUPPORTS_32BIT_KERNEL
1365         help
1366           MIPS Technologies R6000 and R6000A series processors.  Note these
1367           processors are extremely rare and the support for them is incomplete.
1368
1369 config CPU_NEVADA
1370         bool "RM52xx"
1371         depends on SYS_HAS_CPU_NEVADA
1372         select CPU_SUPPORTS_32BIT_KERNEL
1373         select CPU_SUPPORTS_64BIT_KERNEL
1374         help
1375           QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1376
1377 config CPU_R8000
1378         bool "R8000"
1379         depends on EXPERIMENTAL
1380         depends on SYS_HAS_CPU_R8000
1381         select CPU_HAS_PREFETCH
1382         select CPU_SUPPORTS_64BIT_KERNEL
1383         help
1384           MIPS Technologies R8000 processors.  Note these processors are
1385           uncommon and the support for them is incomplete.
1386
1387 config CPU_R10000
1388         bool "R10000"
1389         depends on SYS_HAS_CPU_R10000
1390         select CPU_HAS_PREFETCH
1391         select CPU_SUPPORTS_32BIT_KERNEL
1392         select CPU_SUPPORTS_64BIT_KERNEL
1393         select CPU_SUPPORTS_HIGHMEM
1394         help
1395           MIPS Technologies R10000-series processors.
1396
1397 config CPU_RM7000
1398         bool "RM7000"
1399         depends on SYS_HAS_CPU_RM7000
1400         select CPU_HAS_PREFETCH
1401         select CPU_SUPPORTS_32BIT_KERNEL
1402         select CPU_SUPPORTS_64BIT_KERNEL
1403         select CPU_SUPPORTS_HIGHMEM
1404
1405 config CPU_RM9000
1406         bool "RM9000"
1407         depends on SYS_HAS_CPU_RM9000
1408         select CPU_HAS_PREFETCH
1409         select CPU_SUPPORTS_32BIT_KERNEL
1410         select CPU_SUPPORTS_64BIT_KERNEL
1411         select CPU_SUPPORTS_HIGHMEM
1412         select WEAK_ORDERING
1413
1414 config CPU_SB1
1415         bool "SB1"
1416         depends on SYS_HAS_CPU_SB1
1417         select CPU_SUPPORTS_32BIT_KERNEL
1418         select CPU_SUPPORTS_64BIT_KERNEL
1419         select CPU_SUPPORTS_HIGHMEM
1420         select WEAK_ORDERING
1421
1422 config CPU_CAVIUM_OCTEON
1423         bool "Cavium Octeon processor"
1424         depends on SYS_HAS_CPU_CAVIUM_OCTEON
1425         select CPU_HAS_PREFETCH
1426         select CPU_SUPPORTS_64BIT_KERNEL
1427         select SYS_SUPPORTS_SMP
1428         select NR_CPUS_DEFAULT_16
1429         select WEAK_ORDERING
1430         select CPU_SUPPORTS_HIGHMEM
1431         select CPU_SUPPORTS_HUGEPAGES
1432         help
1433           The Cavium Octeon processor is a highly integrated chip containing
1434           many ethernet hardware widgets for networking tasks. The processor
1435           can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1436           Full details can be found at http://www.caviumnetworks.com.
1437
1438 config CPU_BMIPS3300
1439         bool "BMIPS3300"
1440         depends on SYS_HAS_CPU_BMIPS3300
1441         select CPU_BMIPS
1442         help
1443           Broadcom BMIPS3300 processors.
1444
1445 config CPU_BMIPS4350
1446         bool "BMIPS4350"
1447         depends on SYS_HAS_CPU_BMIPS4350
1448         select CPU_BMIPS
1449         select SYS_SUPPORTS_SMP
1450         select SYS_SUPPORTS_HOTPLUG_CPU
1451         help
1452           Broadcom BMIPS4350 ("VIPER") processors.
1453
1454 config CPU_BMIPS4380
1455         bool "BMIPS4380"
1456         depends on SYS_HAS_CPU_BMIPS4380
1457         select CPU_BMIPS
1458         select SYS_SUPPORTS_SMP
1459         select SYS_SUPPORTS_HOTPLUG_CPU
1460         help
1461           Broadcom BMIPS4380 processors.
1462
1463 config CPU_BMIPS5000
1464         bool "BMIPS5000"
1465         depends on SYS_HAS_CPU_BMIPS5000
1466         select CPU_BMIPS
1467         select CPU_SUPPORTS_HIGHMEM
1468         select MIPS_CPU_SCACHE
1469         select SYS_SUPPORTS_SMP
1470         select SYS_SUPPORTS_HOTPLUG_CPU
1471         help
1472           Broadcom BMIPS5000 processors.
1473
1474 config CPU_XLR
1475         bool "Netlogic XLR SoC"
1476         depends on SYS_HAS_CPU_XLR
1477         select CPU_SUPPORTS_32BIT_KERNEL
1478         select CPU_SUPPORTS_64BIT_KERNEL
1479         select CPU_SUPPORTS_HIGHMEM
1480         select WEAK_ORDERING
1481         select WEAK_REORDERING_BEYOND_LLSC
1482         select CPU_SUPPORTS_HUGEPAGES
1483         help
1484           Netlogic Microsystems XLR/XLS processors.
1485
1486 config CPU_XLP
1487         bool "Netlogic XLP SoC"
1488         depends on SYS_HAS_CPU_XLP
1489         select CPU_SUPPORTS_32BIT_KERNEL
1490         select CPU_SUPPORTS_64BIT_KERNEL
1491         select CPU_SUPPORTS_HIGHMEM
1492         select CPU_HAS_LLSC
1493         select WEAK_ORDERING
1494         select WEAK_REORDERING_BEYOND_LLSC
1495         select CPU_HAS_PREFETCH
1496         help
1497           Netlogic Microsystems XLP processors.
1498 endchoice
1499
1500 if CPU_LOONGSON2F
1501 config CPU_NOP_WORKAROUNDS
1502         bool
1503
1504 config CPU_JUMP_WORKAROUNDS
1505         bool
1506
1507 config CPU_LOONGSON2F_WORKAROUNDS
1508         bool "Loongson 2F Workarounds"
1509         default y
1510         select CPU_NOP_WORKAROUNDS
1511         select CPU_JUMP_WORKAROUNDS
1512         help
1513           Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1514           require workarounds.  Without workarounds the system may hang
1515           unexpectedly.  For more information please refer to the gas
1516           -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1517
1518           Loongson 2F03 and later have fixed these issues and no workarounds
1519           are needed.  The workarounds have no significant side effect on them
1520           but may decrease the performance of the system so this option should
1521           be disabled unless the kernel is intended to be run on 2F01 or 2F02
1522           systems.
1523
1524           If unsure, please say Y.
1525 endif # CPU_LOONGSON2F
1526
1527 config SYS_SUPPORTS_ZBOOT
1528         bool
1529         select HAVE_KERNEL_GZIP
1530         select HAVE_KERNEL_BZIP2
1531         select HAVE_KERNEL_LZMA
1532         select HAVE_KERNEL_LZO
1533
1534 config SYS_SUPPORTS_ZBOOT_UART16550
1535         bool
1536         select SYS_SUPPORTS_ZBOOT
1537
1538 config CPU_LOONGSON2
1539         bool
1540         select CPU_SUPPORTS_32BIT_KERNEL
1541         select CPU_SUPPORTS_64BIT_KERNEL
1542         select CPU_SUPPORTS_HIGHMEM
1543
1544 config CPU_BMIPS
1545         bool
1546         select CPU_MIPS32
1547         select CPU_SUPPORTS_32BIT_KERNEL
1548         select DMA_NONCOHERENT
1549         select IRQ_CPU
1550         select SWAP_IO_SPACE
1551         select WEAK_ORDERING
1552
1553 config SYS_HAS_CPU_LOONGSON2E
1554         bool
1555
1556 config SYS_HAS_CPU_LOONGSON2F
1557         bool
1558         select CPU_SUPPORTS_CPUFREQ
1559         select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1560         select CPU_SUPPORTS_UNCACHED_ACCELERATED
1561
1562 config SYS_HAS_CPU_MIPS32_R1
1563         bool
1564
1565 config SYS_HAS_CPU_MIPS32_R2
1566         bool
1567
1568 config SYS_HAS_CPU_MIPS64_R1
1569         bool
1570
1571 config SYS_HAS_CPU_MIPS64_R2
1572         bool
1573
1574 config SYS_HAS_CPU_R3000
1575         bool
1576
1577 config SYS_HAS_CPU_TX39XX
1578         bool
1579
1580 config SYS_HAS_CPU_VR41XX
1581         bool
1582
1583 config SYS_HAS_CPU_R4300
1584         bool
1585
1586 config SYS_HAS_CPU_R4X00
1587         bool
1588
1589 config SYS_HAS_CPU_TX49XX
1590         bool
1591
1592 config SYS_HAS_CPU_R5000
1593         bool
1594
1595 config SYS_HAS_CPU_R5432
1596         bool
1597
1598 config SYS_HAS_CPU_R5500
1599         bool
1600
1601 config SYS_HAS_CPU_R6000
1602         bool
1603
1604 config SYS_HAS_CPU_NEVADA
1605         bool
1606
1607 config SYS_HAS_CPU_R8000
1608         bool
1609
1610 config SYS_HAS_CPU_R10000
1611         bool
1612
1613 config SYS_HAS_CPU_RM7000
1614         bool
1615
1616 config SYS_HAS_CPU_RM9000
1617         bool
1618
1619 config SYS_HAS_CPU_SB1
1620         bool
1621
1622 config SYS_HAS_CPU_CAVIUM_OCTEON
1623         bool
1624
1625 config SYS_HAS_CPU_BMIPS3300
1626         bool
1627
1628 config SYS_HAS_CPU_BMIPS4350
1629         bool
1630
1631 config SYS_HAS_CPU_BMIPS4380
1632         bool
1633
1634 config SYS_HAS_CPU_BMIPS5000
1635         bool
1636
1637 config SYS_HAS_CPU_XLR
1638         bool
1639
1640 config SYS_HAS_CPU_XLP
1641         bool
1642
1643 #
1644 # CPU may reorder R->R, R->W, W->R, W->W
1645 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1646 #
1647 config WEAK_ORDERING
1648         bool
1649
1650 #
1651 # CPU may reorder reads and writes beyond LL/SC
1652 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1653 #
1654 config WEAK_REORDERING_BEYOND_LLSC
1655         bool
1656 endmenu
1657
1658 #
1659 # These two indicate any level of the MIPS32 and MIPS64 architecture
1660 #
1661 config CPU_MIPS32
1662         bool
1663         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1664
1665 config CPU_MIPS64
1666         bool
1667         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1668
1669 #
1670 # These two indicate the revision of the architecture, either Release 1 or Release 2
1671 #
1672 config CPU_MIPSR1
1673         bool
1674         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1675
1676 config CPU_MIPSR2
1677         bool
1678         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1679
1680 config SYS_SUPPORTS_32BIT_KERNEL
1681         bool
1682 config SYS_SUPPORTS_64BIT_KERNEL
1683         bool
1684 config CPU_SUPPORTS_32BIT_KERNEL
1685         bool
1686 config CPU_SUPPORTS_64BIT_KERNEL
1687         bool
1688 config CPU_SUPPORTS_CPUFREQ
1689         bool
1690 config CPU_SUPPORTS_ADDRWINCFG
1691         bool
1692 config CPU_SUPPORTS_HUGEPAGES
1693         bool
1694 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1695         bool
1696 config MIPS_PGD_C0_CONTEXT
1697         bool
1698         default y if 64BIT && CPU_MIPSR2
1699
1700 #
1701 # Set to y for ptrace access to watch registers.
1702 #
1703 config HARDWARE_WATCHPOINTS
1704        bool
1705        default y if CPU_MIPSR1 || CPU_MIPSR2
1706
1707 menu "Kernel type"
1708
1709 choice
1710
1711         prompt "Kernel code model"
1712         help
1713           You should only select this option if you have a workload that
1714           actually benefits from 64-bit processing or if your machine has
1715           large memory.  You will only be presented a single option in this
1716           menu if your system does not support both 32-bit and 64-bit kernels.
1717
1718 config 32BIT
1719         bool "32-bit kernel"
1720         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1721         select TRAD_SIGNALS
1722         help
1723           Select this option if you want to build a 32-bit kernel.
1724 config 64BIT
1725         bool "64-bit kernel"
1726         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1727         select HAVE_SYSCALL_WRAPPERS
1728         help
1729           Select this option if you want to build a 64-bit kernel.
1730
1731 endchoice
1732
1733 choice
1734         prompt "Kernel page size"
1735         default PAGE_SIZE_4KB
1736
1737 config PAGE_SIZE_4KB
1738         bool "4kB"
1739         depends on !CPU_LOONGSON2
1740         help
1741          This option select the standard 4kB Linux page size.  On some
1742          R3000-family processors this is the only available page size.  Using
1743          4kB page size will minimize memory consumption and is therefore
1744          recommended for low memory systems.
1745
1746 config PAGE_SIZE_8KB
1747         bool "8kB"
1748         depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1749         help
1750           Using 8kB page size will result in higher performance kernel at
1751           the price of higher memory consumption.  This option is available
1752           only on R8000 and cnMIPS processors.  Note that you will need a
1753           suitable Linux distribution to support this.
1754
1755 config PAGE_SIZE_16KB
1756         bool "16kB"
1757         depends on !CPU_R3000 && !CPU_TX39XX
1758         help
1759           Using 16kB page size will result in higher performance kernel at
1760           the price of higher memory consumption.  This option is available on
1761           all non-R3000 family processors.  Note that you will need a suitable
1762           Linux distribution to support this.
1763
1764 config PAGE_SIZE_32KB
1765         bool "32kB"
1766         depends on CPU_CAVIUM_OCTEON
1767         help
1768           Using 32kB page size will result in higher performance kernel at
1769           the price of higher memory consumption.  This option is available
1770           only on cnMIPS cores.  Note that you will need a suitable Linux
1771           distribution to support this.
1772
1773 config PAGE_SIZE_64KB
1774         bool "64kB"
1775         depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1776         help
1777           Using 64kB page size will result in higher performance kernel at
1778           the price of higher memory consumption.  This option is available on
1779           all non-R3000 family processor.  Not that at the time of this
1780           writing this option is still high experimental.
1781
1782 endchoice
1783
1784 config FORCE_MAX_ZONEORDER
1785         int "Maximum zone order"
1786         range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1787         default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1788         range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1789         default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1790         range 11 64
1791         default "11"
1792         help
1793           The kernel memory allocator divides physically contiguous memory
1794           blocks into "zones", where each zone is a power of two number of
1795           pages.  This option selects the largest power of two that the kernel
1796           keeps in the memory allocator.  If you need to allocate very large
1797           blocks of physically contiguous memory, then you may need to
1798           increase this value.
1799
1800           This config option is actually maximum order plus one. For example,
1801           a value of 11 means that the largest free memory block is 2^10 pages.
1802
1803           The page size is not necessarily 4KB.  Keep this in mind
1804           when choosing a value for this option.
1805
1806 config BOARD_SCACHE
1807         bool
1808
1809 config IP22_CPU_SCACHE
1810         bool
1811         select BOARD_SCACHE
1812
1813 #
1814 # Support for a MIPS32 / MIPS64 style S-caches
1815 #
1816 config MIPS_CPU_SCACHE
1817         bool
1818         select BOARD_SCACHE
1819
1820 config R5000_CPU_SCACHE
1821         bool
1822         select BOARD_SCACHE
1823
1824 config RM7000_CPU_SCACHE
1825         bool
1826         select BOARD_SCACHE
1827
1828 config SIBYTE_DMA_PAGEOPS
1829         bool "Use DMA to clear/copy pages"
1830         depends on CPU_SB1
1831         help
1832           Instead of using the CPU to zero and copy pages, use a Data Mover
1833           channel.  These DMA channels are otherwise unused by the standard
1834           SiByte Linux port.  Seems to give a small performance benefit.
1835
1836 config CPU_HAS_PREFETCH
1837         bool
1838
1839 choice
1840         prompt "MIPS MT options"
1841
1842 config MIPS_MT_DISABLED
1843         bool "Disable multithreading support."
1844         help
1845           Use this option if your workload can't take advantage of
1846           MIPS hardware multithreading support.  On systems that don't have
1847           the option of an MT-enabled processor this option will be the only
1848           option in this menu.
1849
1850 config MIPS_MT_SMP
1851         bool "Use 1 TC on each available VPE for SMP"
1852         depends on SYS_SUPPORTS_MULTITHREADING
1853         select CPU_MIPSR2_IRQ_VI
1854         select CPU_MIPSR2_IRQ_EI
1855         select MIPS_MT
1856         select NR_CPUS_DEFAULT_2
1857         select SMP
1858         select SYS_SUPPORTS_SCHED_SMT if SMP
1859         select SYS_SUPPORTS_SMP
1860         select SMP_UP
1861         help
1862           This is a kernel model which is known a VSMP but lately has been
1863           marketesed into SMVP.
1864           Virtual SMP uses the processor's VPEs  to implement virtual
1865           processors. In currently available configuration of the 34K processor
1866           this allows for a dual processor. Both processors will share the same
1867           primary caches; each will obtain the half of the TLB for it's own
1868           exclusive use. For a layman this model can be described as similar to
1869           what Intel calls Hyperthreading.
1870
1871           For further information see http://www.linux-mips.org/wiki/34K#VSMP
1872
1873 config MIPS_MT_SMTC
1874         bool "SMTC: Use all TCs on all VPEs for SMP"
1875         depends on CPU_MIPS32_R2
1876         #depends on CPU_MIPS64_R2               # once there is hardware ...
1877         depends on SYS_SUPPORTS_MULTITHREADING
1878         select CPU_MIPSR2_IRQ_VI
1879         select CPU_MIPSR2_IRQ_EI
1880         select MIPS_MT
1881         select NR_CPUS_DEFAULT_8
1882         select SMP
1883         select SYS_SUPPORTS_SMP
1884         select SMP_UP
1885         help
1886           This is a kernel model which is known a SMTC or lately has been
1887           marketesed into SMVP.
1888           is presenting the available TC's of the core as processors to Linux.
1889           On currently available 34K processors this means a Linux system will
1890           see up to 5 processors. The implementation of the SMTC kernel differs
1891           significantly from VSMP and cannot efficiently coexist in the same
1892           kernel binary so the choice between VSMP and SMTC is a compile time
1893           decision.
1894
1895           For further information see http://www.linux-mips.org/wiki/34K#SMTC
1896
1897 endchoice
1898
1899 config MIPS_MT
1900         bool
1901
1902 config SCHED_SMT
1903         bool "SMT (multithreading) scheduler support"
1904         depends on SYS_SUPPORTS_SCHED_SMT
1905         default n
1906         help
1907           SMT scheduler support improves the CPU scheduler's decision making
1908           when dealing with MIPS MT enabled cores at a cost of slightly
1909           increased overhead in some places. If unsure say N here.
1910
1911 config SYS_SUPPORTS_SCHED_SMT
1912         bool
1913
1914
1915 config SYS_SUPPORTS_MULTITHREADING
1916         bool
1917
1918 config MIPS_MT_FPAFF
1919         bool "Dynamic FPU affinity for FP-intensive threads"
1920         default y
1921         depends on MIPS_MT_SMP || MIPS_MT_SMTC
1922
1923 config MIPS_VPE_LOADER
1924         bool "VPE loader support."
1925         depends on SYS_SUPPORTS_MULTITHREADING
1926         select CPU_MIPSR2_IRQ_VI
1927         select CPU_MIPSR2_IRQ_EI
1928         select MIPS_MT
1929         help
1930           Includes a loader for loading an elf relocatable object
1931           onto another VPE and running it.
1932
1933 config MIPS_MT_SMTC_IM_BACKSTOP
1934         bool "Use per-TC register bits as backstop for inhibited IM bits"
1935         depends on MIPS_MT_SMTC
1936         default n
1937         help
1938           To support multiple TC microthreads acting as "CPUs" within
1939           a VPE, VPE-wide interrupt mask bits must be specially manipulated
1940           during interrupt handling. To support legacy drivers and interrupt
1941           controller management code, SMTC has a "backstop" to track and
1942           if necessary restore the interrupt mask. This has some performance
1943           impact on interrupt service overhead.
1944
1945 config MIPS_MT_SMTC_IRQAFF
1946         bool "Support IRQ affinity API"
1947         depends on MIPS_MT_SMTC
1948         default n
1949         help
1950           Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1951           for SMTC Linux kernel. Requires platform support, of which
1952           an example can be found in the MIPS kernel i8259 and Malta
1953           platform code.  Adds some overhead to interrupt dispatch, and
1954           should be used only if you know what you are doing.
1955
1956 config MIPS_VPE_LOADER_TOM
1957         bool "Load VPE program into memory hidden from linux"
1958         depends on MIPS_VPE_LOADER
1959         default y
1960         help
1961           The loader can use memory that is present but has been hidden from
1962           Linux using the kernel command line option "mem=xxMB". It's up to
1963           you to ensure the amount you put in the option and the space your
1964           program requires is less or equal to the amount physically present.
1965
1966 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1967 config MIPS_VPE_APSP_API
1968         bool "Enable support for AP/SP API (RTLX)"
1969         depends on MIPS_VPE_LOADER
1970         help
1971
1972 config MIPS_APSP_KSPD
1973         bool "Enable KSPD"
1974         depends on MIPS_VPE_APSP_API
1975         default y
1976         help
1977           KSPD is a kernel daemon that accepts syscall requests from the SP
1978           side, actions them and returns the results. It also handles the
1979           "exit" syscall notifying other kernel modules the SP program is
1980           exiting.  You probably want to say yes here.
1981
1982 config MIPS_CMP
1983         bool "MIPS CMP framework support"
1984         depends on SYS_SUPPORTS_MIPS_CMP
1985         select SYNC_R4K
1986         select SYS_SUPPORTS_SMP
1987         select SYS_SUPPORTS_SCHED_SMT if SMP
1988         select WEAK_ORDERING
1989         default n
1990         help
1991           This is a placeholder option for the GCMP work. It will need to
1992           be handled differently...
1993
1994 config SB1_PASS_1_WORKAROUNDS
1995         bool
1996         depends on CPU_SB1_PASS_1
1997         default y
1998
1999 config SB1_PASS_2_WORKAROUNDS
2000         bool
2001         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2002         default y
2003
2004 config SB1_PASS_2_1_WORKAROUNDS
2005         bool
2006         depends on CPU_SB1 && CPU_SB1_PASS_2
2007         default y
2008
2009 config 64BIT_PHYS_ADDR
2010         bool
2011
2012 config ARCH_PHYS_ADDR_T_64BIT
2013        def_bool 64BIT_PHYS_ADDR
2014
2015 config CPU_HAS_SMARTMIPS
2016         depends on SYS_SUPPORTS_SMARTMIPS
2017         bool "Support for the SmartMIPS ASE"
2018         help
2019           SmartMIPS is a extension of the MIPS32 architecture aimed at
2020           increased security at both hardware and software level for
2021           smartcards.  Enabling this option will allow proper use of the
2022           SmartMIPS instructions by Linux applications.  However a kernel with
2023           this option will not work on a MIPS core without SmartMIPS core.  If
2024           you don't know you probably don't have SmartMIPS and should say N
2025           here.
2026
2027 config CPU_HAS_WB
2028         bool
2029
2030 config XKS01
2031         bool
2032
2033 #
2034 # Vectored interrupt mode is an R2 feature
2035 #
2036 config CPU_MIPSR2_IRQ_VI
2037         bool
2038
2039 #
2040 # Extended interrupt mode is an R2 feature
2041 #
2042 config CPU_MIPSR2_IRQ_EI
2043         bool
2044
2045 config CPU_HAS_SYNC
2046         bool
2047         depends on !CPU_R3000
2048         default y
2049
2050 config GENERIC_CLOCKEVENTS_BROADCAST
2051         bool
2052
2053 #
2054 # CPU non-features
2055 #
2056 config CPU_DADDI_WORKAROUNDS
2057         bool
2058
2059 config CPU_R4000_WORKAROUNDS
2060         bool
2061         select CPU_R4400_WORKAROUNDS
2062
2063 config CPU_R4400_WORKAROUNDS
2064         bool
2065
2066 #
2067 # - Highmem only makes sense for the 32-bit kernel.
2068 # - The current highmem code will only work properly on physically indexed
2069 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2070 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2071 #   moment we protect the user and offer the highmem option only on machines
2072 #   where it's known to be safe.  This will not offer highmem on a few systems
2073 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2074 #   indexed CPUs but we're playing safe.
2075 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2076 #   know they might have memory configurations that could make use of highmem
2077 #   support.
2078 #
2079 config HIGHMEM
2080         bool "High Memory Support"
2081         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2082
2083 config CPU_SUPPORTS_HIGHMEM
2084         bool
2085
2086 config SYS_SUPPORTS_HIGHMEM
2087         bool
2088
2089 config SYS_SUPPORTS_SMARTMIPS
2090         bool
2091
2092 config ARCH_FLATMEM_ENABLE
2093         def_bool y
2094         depends on !NUMA && !CPU_LOONGSON2
2095
2096 config ARCH_DISCONTIGMEM_ENABLE
2097         bool
2098         default y if SGI_IP27
2099         help
2100           Say Y to support efficient handling of discontiguous physical memory,
2101           for architectures which are either NUMA (Non-Uniform Memory Access)
2102           or have huge holes in the physical address space for other reasons.
2103           See <file:Documentation/vm/numa> for more.
2104
2105 config ARCH_POPULATES_NODE_MAP
2106         def_bool y
2107
2108 config ARCH_SPARSEMEM_ENABLE
2109         bool
2110         select SPARSEMEM_STATIC
2111
2112 config NUMA
2113         bool "NUMA Support"
2114         depends on SYS_SUPPORTS_NUMA
2115         help
2116           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2117           Access).  This option improves performance on systems with more
2118           than two nodes; on two node systems it is generally better to
2119           leave it disabled; on single node systems disable this option
2120           disabled.
2121
2122 config SYS_SUPPORTS_NUMA
2123         bool
2124
2125 config NODES_SHIFT
2126         int
2127         default "6"
2128         depends on NEED_MULTIPLE_NODES
2129
2130 config HW_PERF_EVENTS
2131         bool "Enable hardware performance counter support for perf events"
2132         depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON)
2133         default y
2134         help
2135           Enable hardware performance counter support for perf events. If
2136           disabled, perf events will use software events only.
2137
2138 source "mm/Kconfig"
2139
2140 config SMP
2141         bool "Multi-Processing support"
2142         depends on SYS_SUPPORTS_SMP
2143         select IRQ_PER_CPU
2144         select USE_GENERIC_SMP_HELPERS
2145         help
2146           This enables support for systems with more than one CPU. If you have
2147           a system with only one CPU, like most personal computers, say N. If
2148           you have a system with more than one CPU, say Y.
2149
2150           If you say N here, the kernel will run on single and multiprocessor
2151           machines, but will use only one CPU of a multiprocessor machine. If
2152           you say Y here, the kernel will run on many, but not all,
2153           singleprocessor machines. On a singleprocessor machine, the kernel
2154           will run faster if you say N here.
2155
2156           People using multiprocessor machines who say Y here should also say
2157           Y to "Enhanced Real Time Clock Support", below.
2158
2159           See also the SMP-HOWTO available at
2160           <http://www.tldp.org/docs.html#howto>.
2161
2162           If you don't know what to do here, say N.
2163
2164 config SMP_UP
2165         bool
2166
2167 config SYS_SUPPORTS_MIPS_CMP
2168         bool
2169
2170 config SYS_SUPPORTS_SMP
2171         bool
2172
2173 config NR_CPUS_DEFAULT_1
2174         bool
2175
2176 config NR_CPUS_DEFAULT_2
2177         bool
2178
2179 config NR_CPUS_DEFAULT_4
2180         bool
2181
2182 config NR_CPUS_DEFAULT_8
2183         bool
2184
2185 config NR_CPUS_DEFAULT_16
2186         bool
2187
2188 config NR_CPUS_DEFAULT_32
2189         bool
2190
2191 config NR_CPUS_DEFAULT_64
2192         bool
2193
2194 config NR_CPUS
2195         int "Maximum number of CPUs (2-64)"
2196         range 1 64 if NR_CPUS_DEFAULT_1
2197         depends on SMP
2198         default "1" if NR_CPUS_DEFAULT_1
2199         default "2" if NR_CPUS_DEFAULT_2
2200         default "4" if NR_CPUS_DEFAULT_4
2201         default "8" if NR_CPUS_DEFAULT_8
2202         default "16" if NR_CPUS_DEFAULT_16
2203         default "32" if NR_CPUS_DEFAULT_32
2204         default "64" if NR_CPUS_DEFAULT_64
2205         help
2206           This allows you to specify the maximum number of CPUs which this
2207           kernel will support.  The maximum supported value is 32 for 32-bit
2208           kernel and 64 for 64-bit kernels; the minimum value which makes
2209           sense is 1 for Qemu (useful only for kernel debugging purposes)
2210           and 2 for all others.
2211
2212           This is purely to save memory - each supported CPU adds
2213           approximately eight kilobytes to the kernel image.  For best
2214           performance should round up your number of processors to the next
2215           power of two.
2216
2217 source "kernel/time/Kconfig"
2218
2219 #
2220 # Timer Interrupt Frequency Configuration
2221 #
2222
2223 choice
2224         prompt "Timer frequency"
2225         default HZ_250
2226         help
2227          Allows the configuration of the timer frequency.
2228
2229         config HZ_48
2230                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2231
2232         config HZ_100
2233                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2234
2235         config HZ_128
2236                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2237
2238         config HZ_250
2239                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2240
2241         config HZ_256
2242                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2243
2244         config HZ_1000
2245                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2246
2247         config HZ_1024
2248                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2249
2250 endchoice
2251
2252 config SYS_SUPPORTS_48HZ
2253         bool
2254
2255 config SYS_SUPPORTS_100HZ
2256         bool
2257
2258 config SYS_SUPPORTS_128HZ
2259         bool
2260
2261 config SYS_SUPPORTS_250HZ
2262         bool
2263
2264 config SYS_SUPPORTS_256HZ
2265         bool
2266
2267 config SYS_SUPPORTS_1000HZ
2268         bool
2269
2270 config SYS_SUPPORTS_1024HZ
2271         bool
2272
2273 config SYS_SUPPORTS_ARBIT_HZ
2274         bool
2275         default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2276                      !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2277                      !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2278                      !SYS_SUPPORTS_1024HZ
2279
2280 config HZ
2281         int
2282         default 48 if HZ_48
2283         default 100 if HZ_100
2284         default 128 if HZ_128
2285         default 250 if HZ_250
2286         default 256 if HZ_256
2287         default 1000 if HZ_1000
2288         default 1024 if HZ_1024
2289
2290 source "kernel/Kconfig.preempt"
2291
2292 config KEXEC
2293         bool "Kexec system call (EXPERIMENTAL)"
2294         depends on EXPERIMENTAL
2295         help
2296           kexec is a system call that implements the ability to shutdown your
2297           current kernel, and to start another kernel.  It is like a reboot
2298           but it is independent of the system firmware.   And like a reboot
2299           you can start any kernel with it, not just Linux.
2300
2301           The name comes from the similarity to the exec system call.
2302
2303           It is an ongoing process to be certain the hardware in a machine
2304           is properly shutdown, so do not be surprised if this code does not
2305           initially work for you.  It may help to enable device hotplugging
2306           support.  As of this writing the exact hardware interface is
2307           strongly in flux, so no good recommendation can be made.
2308
2309 config SECCOMP
2310         bool "Enable seccomp to safely compute untrusted bytecode"
2311         depends on PROC_FS
2312         default y
2313         help
2314           This kernel feature is useful for number crunching applications
2315           that may need to compute untrusted bytecode during their
2316           execution. By using pipes or other transports made available to
2317           the process as file descriptors supporting the read/write
2318           syscalls, it's possible to isolate those applications in
2319           their own address space using seccomp. Once seccomp is
2320           enabled via /proc/<pid>/seccomp, it cannot be disabled
2321           and the task is only allowed to execute a few safe syscalls
2322           defined by each seccomp mode.
2323
2324           If unsure, say Y. Only embedded should say N here.
2325
2326 config USE_OF
2327         bool "Flattened Device Tree support"
2328         select OF
2329         select OF_EARLY_FLATTREE
2330         help
2331           Include support for flattened device tree machine descriptions.
2332
2333 endmenu
2334
2335 config LOCKDEP_SUPPORT
2336         bool
2337         default y
2338
2339 config STACKTRACE_SUPPORT
2340         bool
2341         default y
2342
2343 source "init/Kconfig"
2344
2345 source "kernel/Kconfig.freezer"
2346
2347 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2348
2349 config HW_HAS_EISA
2350         bool
2351 config HW_HAS_PCI
2352         bool
2353
2354 config PCI
2355         bool "Support for PCI controller"
2356         depends on HW_HAS_PCI
2357         select PCI_DOMAINS
2358         help
2359           Find out whether you have a PCI motherboard. PCI is the name of a
2360           bus system, i.e. the way the CPU talks to the other stuff inside
2361           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2362           say Y, otherwise N.
2363
2364 config PCI_DOMAINS
2365         bool
2366
2367 source "drivers/pci/Kconfig"
2368
2369 #
2370 # ISA support is now enabled via select.  Too many systems still have the one
2371 # or other ISA chip on the board that users don't know about so don't expect
2372 # users to choose the right thing ...
2373 #
2374 config ISA
2375         bool
2376
2377 config EISA
2378         bool "EISA support"
2379         depends on HW_HAS_EISA
2380         select ISA
2381         select GENERIC_ISA_DMA
2382         ---help---
2383           The Extended Industry Standard Architecture (EISA) bus was
2384           developed as an open alternative to the IBM MicroChannel bus.
2385
2386           The EISA bus provided some of the features of the IBM MicroChannel
2387           bus while maintaining backward compatibility with cards made for
2388           the older ISA bus.  The EISA bus saw limited use between 1988 and
2389           1995 when it was made obsolete by the PCI bus.
2390
2391           Say Y here if you are building a kernel for an EISA-based machine.
2392
2393           Otherwise, say N.
2394
2395 source "drivers/eisa/Kconfig"
2396
2397 config TC
2398         bool "TURBOchannel support"
2399         depends on MACH_DECSTATION
2400         help
2401           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2402           processors.  TURBOchannel programming specifications are available
2403           at:
2404           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2405           and:
2406           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2407           Linux driver support status is documented at:
2408           <http://www.linux-mips.org/wiki/DECstation>
2409
2410 #config ACCESSBUS
2411 #       bool "Access.Bus support"
2412 #       depends on TC
2413
2414 config MMU
2415         bool
2416         default y
2417
2418 config I8253
2419         bool
2420         select CLKSRC_I8253
2421         select CLKEVT_I8253
2422         select MIPS_EXTERNAL_TIMER
2423
2424 config ZONE_DMA32
2425         bool
2426
2427 source "drivers/pcmcia/Kconfig"
2428
2429 source "drivers/pci/hotplug/Kconfig"
2430
2431 config RAPIDIO
2432         bool "RapidIO support"
2433         depends on PCI
2434         default n
2435         help
2436           If you say Y here, the kernel will include drivers and
2437           infrastructure code to support RapidIO interconnect devices.
2438
2439 source "drivers/rapidio/Kconfig"
2440
2441 endmenu
2442
2443 menu "Executable file formats"
2444
2445 source "fs/Kconfig.binfmt"
2446
2447 config TRAD_SIGNALS
2448         bool
2449
2450 config MIPS32_COMPAT
2451         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2452         depends on 64BIT
2453         help
2454           Select this option if you want Linux/MIPS 32-bit binary
2455           compatibility. Since all software available for Linux/MIPS is
2456           currently 32-bit you should say Y here.
2457
2458 config COMPAT
2459         bool
2460         depends on MIPS32_COMPAT
2461         default y
2462
2463 config SYSVIPC_COMPAT
2464         bool
2465         depends on COMPAT && SYSVIPC
2466         default y
2467
2468 config MIPS32_O32
2469         bool "Kernel support for o32 binaries"
2470         depends on MIPS32_COMPAT
2471         help
2472           Select this option if you want to run o32 binaries.  These are pure
2473           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2474           existing binaries are in this format.
2475
2476           If unsure, say Y.
2477
2478 config MIPS32_N32
2479         bool "Kernel support for n32 binaries"
2480         depends on MIPS32_COMPAT
2481         help
2482           Select this option if you want to run n32 binaries.  These are
2483           64-bit binaries using 32-bit quantities for addressing and certain
2484           data that would normally be 64-bit.  They are used in special
2485           cases.
2486
2487           If unsure, say N.
2488
2489 config BINFMT_ELF32
2490         bool
2491         default y if MIPS32_O32 || MIPS32_N32
2492
2493 endmenu
2494
2495 menu "Power management options"
2496
2497 config ARCH_HIBERNATION_POSSIBLE
2498         def_bool y
2499         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2500
2501 config ARCH_SUSPEND_POSSIBLE
2502         def_bool y
2503         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2504
2505 source "kernel/power/Kconfig"
2506
2507 endmenu
2508
2509 source "arch/mips/kernel/cpufreq/Kconfig"
2510
2511 source "net/Kconfig"
2512
2513 source "drivers/Kconfig"
2514
2515 source "fs/Kconfig"
2516
2517 source "arch/mips/Kconfig.debug"
2518
2519 source "security/Kconfig"
2520
2521 source "crypto/Kconfig"
2522
2523 source "lib/Kconfig"