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