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