pcspkr: Cleanup Kconfig dependencies
[firefly-linux-kernel-4.4.55.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_PCSPKR_PLATFORM
9         select HAVE_PERF_EVENTS
10         select PERF_USE_VMALLOC
11         select HAVE_ARCH_KGDB
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 RTC_LIB if !MACH_LOONGSON
21         select GENERIC_ATOMIC64 if !64BIT
22         select HAVE_DMA_ATTRS
23         select HAVE_DMA_API_DEBUG
24         select HAVE_GENERIC_HARDIRQS
25         select GENERIC_IRQ_PROBE
26         select GENERIC_IRQ_SHOW
27         select HAVE_ARCH_JUMP_LABEL
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
51 config AR7
52         bool "Texas Instruments AR7"
53         select BOOT_ELF32
54         select DMA_NONCOHERENT
55         select CEVT_R4K
56         select CSRC_R4K
57         select IRQ_CPU
58         select NO_EXCEPT_FILL
59         select SWAP_IO_SPACE
60         select SYS_HAS_CPU_MIPS32_R1
61         select SYS_HAS_EARLY_PRINTK
62         select SYS_SUPPORTS_32BIT_KERNEL
63         select SYS_SUPPORTS_LITTLE_ENDIAN
64         select SYS_SUPPORTS_ZBOOT_UART16550
65         select ARCH_REQUIRE_GPIOLIB
66         select GCD
67         select VLYNQ
68         help
69           Support for the Texas Instruments AR7 System-on-a-Chip
70           family: TNETD7100, 7200 and 7300.
71
72 config ATH79
73         bool "Atheros AR71XX/AR724X/AR913X based boards"
74         select ARCH_REQUIRE_GPIOLIB
75         select BOOT_RAW
76         select CEVT_R4K
77         select CSRC_R4K
78         select DMA_NONCOHERENT
79         select IRQ_CPU
80         select MIPS_MACHINE
81         select SYS_HAS_CPU_MIPS32_R2
82         select SYS_HAS_EARLY_PRINTK
83         select SYS_SUPPORTS_32BIT_KERNEL
84         select SYS_SUPPORTS_BIG_ENDIAN
85         help
86           Support for the Atheros AR71XX/AR724X/AR913X SoCs.
87
88 config BCM47XX
89         bool "Broadcom BCM47XX based boards"
90         select CEVT_R4K
91         select CSRC_R4K
92         select DMA_NONCOHERENT
93         select HW_HAS_PCI
94         select IRQ_CPU
95         select SYS_HAS_CPU_MIPS32_R1
96         select SYS_SUPPORTS_32BIT_KERNEL
97         select SYS_SUPPORTS_LITTLE_ENDIAN
98         select SSB
99         select SSB_DRIVER_MIPS
100         select SSB_DRIVER_EXTIF
101         select SSB_EMBEDDED
102         select SSB_B43_PCI_BRIDGE if PCI
103         select SSB_PCICORE_HOSTMODE if PCI
104         select GENERIC_GPIO
105         select SYS_HAS_EARLY_PRINTK
106         select CFE
107         help
108          Support for BCM47XX based boards
109
110 config BCM63XX
111         bool "Broadcom BCM63XX based boards"
112         select CEVT_R4K
113         select CSRC_R4K
114         select DMA_NONCOHERENT
115         select IRQ_CPU
116         select SYS_HAS_CPU_MIPS32_R1
117         select SYS_SUPPORTS_32BIT_KERNEL
118         select SYS_SUPPORTS_BIG_ENDIAN
119         select SYS_HAS_EARLY_PRINTK
120         select SWAP_IO_SPACE
121         select ARCH_REQUIRE_GPIOLIB
122         help
123          Support for BCM63XX based boards
124
125 config MIPS_COBALT
126         bool "Cobalt Server"
127         select CEVT_R4K
128         select CSRC_R4K
129         select CEVT_GT641XX
130         select DMA_NONCOHERENT
131         select HW_HAS_PCI
132         select I8253
133         select I8259
134         select IRQ_CPU
135         select IRQ_GT641XX
136         select PCI_GT64XXX_PCI0
137         select PCI
138         select SYS_HAS_CPU_NEVADA
139         select SYS_HAS_EARLY_PRINTK
140         select SYS_SUPPORTS_32BIT_KERNEL
141         select SYS_SUPPORTS_64BIT_KERNEL
142         select SYS_SUPPORTS_LITTLE_ENDIAN
143
144 config MACH_DECSTATION
145         bool "DECstations"
146         select BOOT_ELF32
147         select CEVT_DS1287
148         select CEVT_R4K
149         select CSRC_IOASIC
150         select CSRC_R4K
151         select CPU_DADDI_WORKAROUNDS if 64BIT
152         select CPU_R4000_WORKAROUNDS if 64BIT
153         select CPU_R4400_WORKAROUNDS if 64BIT
154         select DMA_NONCOHERENT
155         select NO_IOPORT
156         select IRQ_CPU
157         select SYS_HAS_CPU_R3000
158         select SYS_HAS_CPU_R4X00
159         select SYS_SUPPORTS_32BIT_KERNEL
160         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
161         select SYS_SUPPORTS_LITTLE_ENDIAN
162         select SYS_SUPPORTS_128HZ
163         select SYS_SUPPORTS_256HZ
164         select SYS_SUPPORTS_1024HZ
165         help
166           This enables support for DEC's MIPS based workstations.  For details
167           see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
168           DECstation porting pages on <http://decstation.unix-ag.org/>.
169
170           If you have one of the following DECstation Models you definitely
171           want to choose R4xx0 for the CPU Type:
172
173                 DECstation 5000/50
174                 DECstation 5000/150
175                 DECstation 5000/260
176                 DECsystem 5900/260
177
178           otherwise choose R3000.
179
180 config MACH_JAZZ
181         bool "Jazz family of machines"
182         select ARC
183         select ARC32
184         select ARCH_MAY_HAVE_PC_FDC
185         select CEVT_R4K
186         select CSRC_R4K
187         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
188         select GENERIC_ISA_DMA
189         select IRQ_CPU
190         select I8253
191         select I8259
192         select ISA
193         select SYS_HAS_CPU_R4X00
194         select SYS_SUPPORTS_32BIT_KERNEL
195         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
196         select SYS_SUPPORTS_100HZ
197         help
198          This a family of machines based on the MIPS R4030 chipset which was
199          used by several vendors to build RISC/os and Windows NT workstations.
200          Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
201          Olivetti M700-10 workstations.
202
203 config MACH_JZ4740
204         bool "Ingenic JZ4740 based machines"
205         select SYS_HAS_CPU_MIPS32_R1
206         select SYS_SUPPORTS_32BIT_KERNEL
207         select SYS_SUPPORTS_LITTLE_ENDIAN
208         select DMA_NONCOHERENT
209         select IRQ_CPU
210         select GENERIC_GPIO
211         select ARCH_REQUIRE_GPIOLIB
212         select SYS_HAS_EARLY_PRINTK
213         select HAVE_PWM
214         select HAVE_CLK
215
216 config LANTIQ
217         bool "Lantiq based platforms"
218         select DMA_NONCOHERENT
219         select IRQ_CPU
220         select CEVT_R4K
221         select CSRC_R4K
222         select SYS_HAS_CPU_MIPS32_R1
223         select SYS_HAS_CPU_MIPS32_R2
224         select SYS_SUPPORTS_BIG_ENDIAN
225         select SYS_SUPPORTS_32BIT_KERNEL
226         select SYS_SUPPORTS_MULTITHREADING
227         select SYS_HAS_EARLY_PRINTK
228         select ARCH_REQUIRE_GPIOLIB
229         select SWAP_IO_SPACE
230         select BOOT_RAW
231         select HAVE_CLK
232         select MIPS_MACHINE
233
234 config LASAT
235         bool "LASAT Networks platforms"
236         select CEVT_R4K
237         select CSRC_R4K
238         select DMA_NONCOHERENT
239         select SYS_HAS_EARLY_PRINTK
240         select HW_HAS_PCI
241         select IRQ_CPU
242         select PCI_GT64XXX_PCI0
243         select MIPS_NILE4
244         select R5000_CPU_SCACHE
245         select SYS_HAS_CPU_R5000
246         select SYS_SUPPORTS_32BIT_KERNEL
247         select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
248         select SYS_SUPPORTS_LITTLE_ENDIAN
249
250 config MACH_LOONGSON
251         bool "Loongson family of machines"
252         select SYS_SUPPORTS_ZBOOT
253         help
254           This enables the support of Loongson family of machines.
255
256           Loongson is a family of general-purpose MIPS-compatible CPUs.
257           developed at Institute of Computing Technology (ICT),
258           Chinese Academy of Sciences (CAS) in the People's Republic
259           of China. The chief architect is Professor Weiwu Hu.
260
261 config MIPS_MALTA
262         bool "MIPS Malta board"
263         select ARCH_MAY_HAVE_PC_FDC
264         select BOOT_ELF32
265         select BOOT_RAW
266         select CEVT_R4K
267         select CSRC_R4K
268         select DMA_NONCOHERENT
269         select GENERIC_ISA_DMA
270         select IRQ_CPU
271         select IRQ_GIC
272         select HW_HAS_PCI
273         select I8253
274         select I8259
275         select MIPS_BOARDS_GEN
276         select MIPS_BONITO64
277         select MIPS_CPU_SCACHE
278         select PCI_GT64XXX_PCI0
279         select MIPS_MSC
280         select SWAP_IO_SPACE
281         select SYS_HAS_CPU_MIPS32_R1
282         select SYS_HAS_CPU_MIPS32_R2
283         select SYS_HAS_CPU_MIPS64_R1
284         select SYS_HAS_CPU_NEVADA
285         select SYS_HAS_CPU_RM7000
286         select SYS_HAS_EARLY_PRINTK
287         select SYS_SUPPORTS_32BIT_KERNEL
288         select SYS_SUPPORTS_64BIT_KERNEL
289         select SYS_SUPPORTS_BIG_ENDIAN
290         select SYS_SUPPORTS_LITTLE_ENDIAN
291         select SYS_SUPPORTS_MIPS_CMP
292         select SYS_SUPPORTS_MULTITHREADING
293         select SYS_SUPPORTS_SMARTMIPS
294         select SYS_SUPPORTS_ZBOOT
295         help
296           This enables support for the MIPS Technologies Malta evaluation
297           board.
298
299 config MIPS_SIM
300         bool 'MIPS simulator (MIPSsim)'
301         select CEVT_R4K
302         select CSRC_R4K
303         select DMA_NONCOHERENT
304         select SYS_HAS_EARLY_PRINTK
305         select IRQ_CPU
306         select BOOT_RAW
307         select SYS_HAS_CPU_MIPS32_R1
308         select SYS_HAS_CPU_MIPS32_R2
309         select SYS_HAS_EARLY_PRINTK
310         select SYS_SUPPORTS_32BIT_KERNEL
311         select SYS_SUPPORTS_BIG_ENDIAN
312         select SYS_SUPPORTS_MULTITHREADING
313         select SYS_SUPPORTS_LITTLE_ENDIAN
314         help
315           This option enables support for MIPS Technologies MIPSsim software
316           emulator.
317
318 config NEC_MARKEINS
319         bool "NEC EMMA2RH Mark-eins board"
320         select SOC_EMMA2RH
321         select HW_HAS_PCI
322         help
323           This enables support for the NEC Electronics Mark-eins boards.
324
325 config MACH_VR41XX
326         bool "NEC VR4100 series based machines"
327         select CEVT_R4K
328         select CSRC_R4K
329         select SYS_HAS_CPU_VR41XX
330         select ARCH_REQUIRE_GPIOLIB
331
332 config NXP_STB220
333         bool "NXP STB220 board"
334         select SOC_PNX833X
335         help
336          Support for NXP Semiconductors STB220 Development Board.
337
338 config NXP_STB225
339         bool "NXP 225 board"
340         select SOC_PNX833X
341         select SOC_PNX8335
342         help
343          Support for NXP Semiconductors STB225 Development Board.
344
345 config PNX8550_JBS
346         bool "NXP PNX8550 based JBS board"
347         select PNX8550
348         select SYS_SUPPORTS_LITTLE_ENDIAN
349
350 config PNX8550_STB810
351         bool "NXP PNX8550 based STB810 board"
352         select PNX8550
353         select SYS_SUPPORTS_LITTLE_ENDIAN
354
355 config PMC_MSP
356         bool "PMC-Sierra MSP chipsets"
357         depends on EXPERIMENTAL
358         select CEVT_R4K
359         select CSRC_R4K
360         select DMA_NONCOHERENT
361         select SWAP_IO_SPACE
362         select NO_EXCEPT_FILL
363         select BOOT_RAW
364         select SYS_HAS_CPU_MIPS32_R1
365         select SYS_HAS_CPU_MIPS32_R2
366         select SYS_SUPPORTS_32BIT_KERNEL
367         select SYS_SUPPORTS_BIG_ENDIAN
368         select IRQ_CPU
369         select SERIAL_8250
370         select SERIAL_8250_CONSOLE
371         help
372           This adds support for the PMC-Sierra family of Multi-Service
373           Processor System-On-A-Chips.  These parts include a number
374           of integrated peripherals, interfaces and DSPs in addition to
375           a variety of MIPS cores.
376
377 config PMC_YOSEMITE
378         bool "PMC-Sierra Yosemite eval board"
379         select CEVT_R4K
380         select CSRC_R4K
381         select DMA_COHERENT
382         select HW_HAS_PCI
383         select IRQ_CPU
384         select IRQ_CPU_RM7K
385         select IRQ_CPU_RM9K
386         select SWAP_IO_SPACE
387         select SYS_HAS_CPU_RM9000
388         select SYS_HAS_EARLY_PRINTK
389         select SYS_SUPPORTS_32BIT_KERNEL
390         select SYS_SUPPORTS_64BIT_KERNEL
391         select SYS_SUPPORTS_BIG_ENDIAN
392         select SYS_SUPPORTS_HIGHMEM
393         select SYS_SUPPORTS_SMP
394         help
395           Yosemite is an evaluation board for the RM9000x2 processor
396           manufactured by PMC-Sierra.
397
398 config POWERTV
399         bool "Cisco PowerTV"
400         select BOOT_ELF32
401         select CEVT_R4K
402         select CPU_MIPSR2_IRQ_VI
403         select CPU_MIPSR2_IRQ_EI
404         select CSRC_POWERTV
405         select DMA_NONCOHERENT
406         select HW_HAS_PCI
407         select SYS_HAS_EARLY_PRINTK
408         select SYS_HAS_CPU_MIPS32_R2
409         select SYS_SUPPORTS_32BIT_KERNEL
410         select SYS_SUPPORTS_BIG_ENDIAN
411         select SYS_SUPPORTS_HIGHMEM
412         select USB_OHCI_LITTLE_ENDIAN
413         help
414           This enables support for the Cisco PowerTV Platform.
415
416 config SGI_IP22
417         bool "SGI IP22 (Indy/Indigo2)"
418         select ARC
419         select ARC32
420         select BOOT_ELF32
421         select CEVT_R4K
422         select CSRC_R4K
423         select DEFAULT_SGI_PARTITION
424         select DMA_NONCOHERENT
425         select HW_HAS_EISA
426         select I8253
427         select I8259
428         select IP22_CPU_SCACHE
429         select IRQ_CPU
430         select GENERIC_ISA_DMA_SUPPORT_BROKEN
431         select SGI_HAS_I8042
432         select SGI_HAS_INDYDOG
433         select SGI_HAS_HAL2
434         select SGI_HAS_SEEQ
435         select SGI_HAS_WD93
436         select SGI_HAS_ZILOG
437         select SWAP_IO_SPACE
438         select SYS_HAS_CPU_R4X00
439         select SYS_HAS_CPU_R5000
440         #
441         # Disable EARLY_PRINTK for now since it leads to overwritten prom
442         # memory during early boot on some machines.
443         #
444         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
445         # for a more details discussion
446         #
447         # select SYS_HAS_EARLY_PRINTK
448         select SYS_SUPPORTS_32BIT_KERNEL
449         select SYS_SUPPORTS_64BIT_KERNEL
450         select SYS_SUPPORTS_BIG_ENDIAN
451         help
452           This are the SGI Indy, Challenge S and Indigo2, as well as certain
453           OEM variants like the Tandem CMN B006S. To compile a Linux kernel
454           that runs on these, say Y here.
455
456 config SGI_IP27
457         bool "SGI IP27 (Origin200/2000)"
458         select ARC
459         select ARC64
460         select BOOT_ELF64
461         select DEFAULT_SGI_PARTITION
462         select DMA_COHERENT
463         select SYS_HAS_EARLY_PRINTK
464         select HW_HAS_PCI
465         select NR_CPUS_DEFAULT_64
466         select SYS_HAS_CPU_R10000
467         select SYS_SUPPORTS_64BIT_KERNEL
468         select SYS_SUPPORTS_BIG_ENDIAN
469         select SYS_SUPPORTS_NUMA
470         select SYS_SUPPORTS_SMP
471         help
472           This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
473           workstations.  To compile a Linux kernel that runs on these, say Y
474           here.
475
476 config SGI_IP28
477         bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
478         depends on EXPERIMENTAL
479         select ARC
480         select ARC64
481         select BOOT_ELF64
482         select CEVT_R4K
483         select CSRC_R4K
484         select DEFAULT_SGI_PARTITION
485         select DMA_NONCOHERENT
486         select GENERIC_ISA_DMA_SUPPORT_BROKEN
487         select IRQ_CPU
488         select HW_HAS_EISA
489         select I8253
490         select I8259
491         select SGI_HAS_I8042
492         select SGI_HAS_INDYDOG
493         select SGI_HAS_HAL2
494         select SGI_HAS_SEEQ
495         select SGI_HAS_WD93
496         select SGI_HAS_ZILOG
497         select SWAP_IO_SPACE
498         select SYS_HAS_CPU_R10000
499         #
500         # Disable EARLY_PRINTK for now since it leads to overwritten prom
501         # memory during early boot on some machines.
502         #
503         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
504         # for a more details discussion
505         #
506         # select SYS_HAS_EARLY_PRINTK
507         select SYS_SUPPORTS_64BIT_KERNEL
508         select SYS_SUPPORTS_BIG_ENDIAN
509       help
510         This is the SGI Indigo2 with R10000 processor.  To compile a Linux
511         kernel that runs on these, say Y here.
512
513 config SGI_IP32
514         bool "SGI IP32 (O2)"
515         select ARC
516         select ARC32
517         select BOOT_ELF32
518         select CEVT_R4K
519         select CSRC_R4K
520         select DMA_NONCOHERENT
521         select HW_HAS_PCI
522         select IRQ_CPU
523         select R5000_CPU_SCACHE
524         select RM7000_CPU_SCACHE
525         select SYS_HAS_CPU_R5000
526         select SYS_HAS_CPU_R10000 if BROKEN
527         select SYS_HAS_CPU_RM7000
528         select SYS_HAS_CPU_NEVADA
529         select SYS_SUPPORTS_64BIT_KERNEL
530         select SYS_SUPPORTS_BIG_ENDIAN
531         help
532           If you want this kernel to run on SGI O2 workstation, say Y here.
533
534 config SIBYTE_CRHINE
535         bool "Sibyte BCM91120C-CRhine"
536         depends on EXPERIMENTAL
537         select BOOT_ELF32
538         select DMA_COHERENT
539         select SIBYTE_BCM1120
540         select SWAP_IO_SPACE
541         select SYS_HAS_CPU_SB1
542         select SYS_SUPPORTS_BIG_ENDIAN
543         select SYS_SUPPORTS_LITTLE_ENDIAN
544
545 config SIBYTE_CARMEL
546         bool "Sibyte BCM91120x-Carmel"
547         depends on EXPERIMENTAL
548         select BOOT_ELF32
549         select DMA_COHERENT
550         select SIBYTE_BCM1120
551         select SWAP_IO_SPACE
552         select SYS_HAS_CPU_SB1
553         select SYS_SUPPORTS_BIG_ENDIAN
554         select SYS_SUPPORTS_LITTLE_ENDIAN
555
556 config SIBYTE_CRHONE
557         bool "Sibyte BCM91125C-CRhone"
558         depends on EXPERIMENTAL
559         select BOOT_ELF32
560         select DMA_COHERENT
561         select SIBYTE_BCM1125
562         select SWAP_IO_SPACE
563         select SYS_HAS_CPU_SB1
564         select SYS_SUPPORTS_BIG_ENDIAN
565         select SYS_SUPPORTS_HIGHMEM
566         select SYS_SUPPORTS_LITTLE_ENDIAN
567
568 config SIBYTE_RHONE
569         bool "Sibyte BCM91125E-Rhone"
570         depends on EXPERIMENTAL
571         select BOOT_ELF32
572         select DMA_COHERENT
573         select SIBYTE_BCM1125H
574         select SWAP_IO_SPACE
575         select SYS_HAS_CPU_SB1
576         select SYS_SUPPORTS_BIG_ENDIAN
577         select SYS_SUPPORTS_LITTLE_ENDIAN
578
579 config SIBYTE_SWARM
580         bool "Sibyte BCM91250A-SWARM"
581         select BOOT_ELF32
582         select DMA_COHERENT
583         select HAVE_PATA_PLATFORM
584         select NR_CPUS_DEFAULT_2
585         select SIBYTE_SB1250
586         select SWAP_IO_SPACE
587         select SYS_HAS_CPU_SB1
588         select SYS_SUPPORTS_BIG_ENDIAN
589         select SYS_SUPPORTS_HIGHMEM
590         select SYS_SUPPORTS_LITTLE_ENDIAN
591         select ZONE_DMA32 if 64BIT
592
593 config SIBYTE_LITTLESUR
594         bool "Sibyte BCM91250C2-LittleSur"
595         depends on EXPERIMENTAL
596         select BOOT_ELF32
597         select DMA_COHERENT
598         select HAVE_PATA_PLATFORM
599         select NR_CPUS_DEFAULT_2
600         select SIBYTE_SB1250
601         select SWAP_IO_SPACE
602         select SYS_HAS_CPU_SB1
603         select SYS_SUPPORTS_BIG_ENDIAN
604         select SYS_SUPPORTS_HIGHMEM
605         select SYS_SUPPORTS_LITTLE_ENDIAN
606
607 config SIBYTE_SENTOSA
608         bool "Sibyte BCM91250E-Sentosa"
609         depends on EXPERIMENTAL
610         select BOOT_ELF32
611         select DMA_COHERENT
612         select NR_CPUS_DEFAULT_2
613         select SIBYTE_SB1250
614         select SWAP_IO_SPACE
615         select SYS_HAS_CPU_SB1
616         select SYS_SUPPORTS_BIG_ENDIAN
617         select SYS_SUPPORTS_LITTLE_ENDIAN
618
619 config SIBYTE_BIGSUR
620         bool "Sibyte BCM91480B-BigSur"
621         select BOOT_ELF32
622         select DMA_COHERENT
623         select NR_CPUS_DEFAULT_4
624         select SIBYTE_BCM1x80
625         select SWAP_IO_SPACE
626         select SYS_HAS_CPU_SB1
627         select SYS_SUPPORTS_BIG_ENDIAN
628         select SYS_SUPPORTS_HIGHMEM
629         select SYS_SUPPORTS_LITTLE_ENDIAN
630         select ZONE_DMA32 if 64BIT
631
632 config SNI_RM
633         bool "SNI RM200/300/400"
634         select ARC if CPU_LITTLE_ENDIAN
635         select ARC32 if CPU_LITTLE_ENDIAN
636         select SNIPROM if CPU_BIG_ENDIAN
637         select ARCH_MAY_HAVE_PC_FDC
638         select BOOT_ELF32
639         select CEVT_R4K
640         select CSRC_R4K
641         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
642         select DMA_NONCOHERENT
643         select GENERIC_ISA_DMA
644         select HW_HAS_EISA
645         select HW_HAS_PCI
646         select IRQ_CPU
647         select I8253
648         select I8259
649         select ISA
650         select SWAP_IO_SPACE if CPU_BIG_ENDIAN
651         select SYS_HAS_CPU_R4X00
652         select SYS_HAS_CPU_R5000
653         select SYS_HAS_CPU_R10000
654         select R5000_CPU_SCACHE
655         select SYS_HAS_EARLY_PRINTK
656         select SYS_SUPPORTS_32BIT_KERNEL
657         select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
658         select SYS_SUPPORTS_BIG_ENDIAN
659         select SYS_SUPPORTS_HIGHMEM
660         select SYS_SUPPORTS_LITTLE_ENDIAN
661         help
662           The SNI RM200/300/400 are MIPS-based machines manufactured by
663           Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
664           Technology and now in turn merged with Fujitsu.  Say Y here to
665           support this machine type.
666
667 config MACH_TX39XX
668         bool "Toshiba TX39 series based machines"
669
670 config MACH_TX49XX
671         bool "Toshiba TX49 series based machines"
672
673 config MIKROTIK_RB532
674         bool "Mikrotik RB532 boards"
675         select CEVT_R4K
676         select CSRC_R4K
677         select DMA_NONCOHERENT
678         select HW_HAS_PCI
679         select IRQ_CPU
680         select SYS_HAS_CPU_MIPS32_R1
681         select SYS_SUPPORTS_32BIT_KERNEL
682         select SYS_SUPPORTS_LITTLE_ENDIAN
683         select SWAP_IO_SPACE
684         select BOOT_RAW
685         select ARCH_REQUIRE_GPIOLIB
686         help
687           Support the Mikrotik(tm) RouterBoard 532 series,
688           based on the IDT RC32434 SoC.
689
690 config WR_PPMC
691         bool "Wind River PPMC board"
692         select CEVT_R4K
693         select CSRC_R4K
694         select IRQ_CPU
695         select BOOT_ELF32
696         select DMA_NONCOHERENT
697         select HW_HAS_PCI
698         select PCI_GT64XXX_PCI0
699         select SWAP_IO_SPACE
700         select SYS_HAS_CPU_MIPS32_R1
701         select SYS_HAS_CPU_MIPS32_R2
702         select SYS_HAS_CPU_MIPS64_R1
703         select SYS_HAS_CPU_NEVADA
704         select SYS_HAS_CPU_RM7000
705         select SYS_SUPPORTS_32BIT_KERNEL
706         select SYS_SUPPORTS_64BIT_KERNEL
707         select SYS_SUPPORTS_BIG_ENDIAN
708         select SYS_SUPPORTS_LITTLE_ENDIAN
709         help
710           This enables support for the Wind River MIPS32 4KC PPMC evaluation
711           board, which is based on GT64120 bridge chip.
712
713 config CAVIUM_OCTEON_SIMULATOR
714         bool "Cavium Networks Octeon Simulator"
715         select CEVT_R4K
716         select 64BIT_PHYS_ADDR
717         select DMA_COHERENT
718         select SYS_SUPPORTS_64BIT_KERNEL
719         select SYS_SUPPORTS_BIG_ENDIAN
720         select SYS_SUPPORTS_HIGHMEM
721         select SYS_SUPPORTS_HOTPLUG_CPU
722         select SYS_HAS_CPU_CAVIUM_OCTEON
723         help
724           The Octeon simulator is software performance model of the Cavium
725           Octeon Processor. It supports simulating Octeon processors on x86
726           hardware.
727
728 config CAVIUM_OCTEON_REFERENCE_BOARD
729         bool "Cavium Networks Octeon reference board"
730         select CEVT_R4K
731         select 64BIT_PHYS_ADDR
732         select DMA_COHERENT
733         select SYS_SUPPORTS_64BIT_KERNEL
734         select SYS_SUPPORTS_BIG_ENDIAN
735         select SYS_SUPPORTS_HIGHMEM
736         select SYS_SUPPORTS_HOTPLUG_CPU
737         select SYS_HAS_EARLY_PRINTK
738         select SYS_HAS_CPU_CAVIUM_OCTEON
739         select SWAP_IO_SPACE
740         select HW_HAS_PCI
741         select ARCH_SUPPORTS_MSI
742         select ZONE_DMA32
743         select USB_ARCH_HAS_OHCI
744         select USB_ARCH_HAS_EHCI
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/bcm63xx/Kconfig"
790 source "arch/mips/jazz/Kconfig"
791 source "arch/mips/jz4740/Kconfig"
792 source "arch/mips/lantiq/Kconfig"
793 source "arch/mips/lasat/Kconfig"
794 source "arch/mips/pmc-sierra/Kconfig"
795 source "arch/mips/powertv/Kconfig"
796 source "arch/mips/sgi-ip27/Kconfig"
797 source "arch/mips/sibyte/Kconfig"
798 source "arch/mips/txx9/Kconfig"
799 source "arch/mips/vr41xx/Kconfig"
800 source "arch/mips/cavium-octeon/Kconfig"
801 source "arch/mips/loongson/Kconfig"
802 source "arch/mips/netlogic/Kconfig"
803
804 endmenu
805
806 config RWSEM_GENERIC_SPINLOCK
807         bool
808         default y
809
810 config RWSEM_XCHGADD_ALGORITHM
811         bool
812
813 config ARCH_HAS_ILOG2_U32
814         bool
815         default n
816
817 config ARCH_HAS_ILOG2_U64
818         bool
819         default n
820
821 config ARCH_SUPPORTS_OPROFILE
822         bool
823         default y if !MIPS_MT_SMTC
824
825 config GENERIC_HWEIGHT
826         bool
827         default y
828
829 config GENERIC_CALIBRATE_DELAY
830         bool
831         default y
832
833 config GENERIC_CLOCKEVENTS
834         bool
835         default y
836
837 config GENERIC_CMOS_UPDATE
838         bool
839         default y
840
841 config SCHED_OMIT_FRAME_POINTER
842         bool
843         default y
844
845 #
846 # Select some configuration options automatically based on user selections.
847 #
848 config ARC
849         bool
850
851 config ARCH_MAY_HAVE_PC_FDC
852         bool
853
854 config BOOT_RAW
855         bool
856
857 config CEVT_BCM1480
858         bool
859
860 config CEVT_DS1287
861         bool
862
863 config CEVT_GT641XX
864         bool
865
866 config CEVT_R4K_LIB
867         bool
868
869 config CEVT_R4K
870         select CEVT_R4K_LIB
871         bool
872
873 config CEVT_SB1250
874         bool
875
876 config CEVT_TXX9
877         bool
878
879 config CSRC_BCM1480
880         bool
881
882 config CSRC_IOASIC
883         bool
884
885 config CSRC_POWERTV
886         bool
887
888 config CSRC_R4K_LIB
889         bool
890
891 config CSRC_R4K
892         select CSRC_R4K_LIB
893         bool
894
895 config CSRC_SB1250
896         bool
897
898 config GPIO_TXX9
899         select GENERIC_GPIO
900         select ARCH_REQUIRE_GPIOLIB
901         bool
902
903 config CFE
904         bool
905
906 config ARCH_DMA_ADDR_T_64BIT
907         def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
908
909 config DMA_COHERENT
910         bool
911
912 config DMA_NONCOHERENT
913         bool
914         select NEED_DMA_MAP_STATE
915
916 config NEED_DMA_MAP_STATE
917         bool
918
919 config SYS_HAS_EARLY_PRINTK
920         bool
921
922 config HOTPLUG_CPU
923         bool "Support for hot-pluggable CPUs"
924         depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
925         help
926           Say Y here to allow turning CPUs off and on. CPUs can be
927           controlled through /sys/devices/system/cpu.
928           (Note: power management support will enable this option
929             automatically on SMP systems. )
930           Say N if you want to disable CPU hotplug.
931
932 config SYS_SUPPORTS_HOTPLUG_CPU
933         bool
934
935 config I8259
936         bool
937
938 config MIPS_BONITO64
939         bool
940
941 config MIPS_MSC
942         bool
943
944 config MIPS_NILE4
945         bool
946
947 config MIPS_DISABLE_OBSOLETE_IDE
948         bool
949
950 config SYNC_R4K
951         bool
952
953 config MIPS_MACHINE
954         def_bool n
955
956 config NO_IOPORT
957         def_bool n
958
959 config GENERIC_ISA_DMA
960         bool
961         select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
962         select ISA_DMA_API
963
964 config GENERIC_ISA_DMA_SUPPORT_BROKEN
965         bool
966         select GENERIC_ISA_DMA
967
968 config ISA_DMA_API
969         bool
970
971 config GENERIC_GPIO
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
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 MIPS_INSANE_LARGE
2254         bool "Support for large 64-bit configurations"
2255         depends on CPU_R10000 && 64BIT
2256         help
2257           MIPS R10000 does support a 44 bit / 16TB address space as opposed to
2258           previous 64-bit processors which only supported 40 bit / 1TB. If you
2259           need processes of more than 1TB virtual address space, say Y here.
2260           This will result in additional memory usage, so it is not
2261           recommended for normal users.
2262
2263 config KEXEC
2264         bool "Kexec system call (EXPERIMENTAL)"
2265         depends on EXPERIMENTAL
2266         help
2267           kexec is a system call that implements the ability to shutdown your
2268           current kernel, and to start another kernel.  It is like a reboot
2269           but it is independent of the system firmware.   And like a reboot
2270           you can start any kernel with it, not just Linux.
2271
2272           The name comes from the similarity to the exec system call.
2273
2274           It is an ongoing process to be certain the hardware in a machine
2275           is properly shutdown, so do not be surprised if this code does not
2276           initially work for you.  It may help to enable device hotplugging
2277           support.  As of this writing the exact hardware interface is
2278           strongly in flux, so no good recommendation can be made.
2279
2280 config SECCOMP
2281         bool "Enable seccomp to safely compute untrusted bytecode"
2282         depends on PROC_FS
2283         default y
2284         help
2285           This kernel feature is useful for number crunching applications
2286           that may need to compute untrusted bytecode during their
2287           execution. By using pipes or other transports made available to
2288           the process as file descriptors supporting the read/write
2289           syscalls, it's possible to isolate those applications in
2290           their own address space using seccomp. Once seccomp is
2291           enabled via /proc/<pid>/seccomp, it cannot be disabled
2292           and the task is only allowed to execute a few safe syscalls
2293           defined by each seccomp mode.
2294
2295           If unsure, say Y. Only embedded should say N here.
2296
2297 config USE_OF
2298         bool "Flattened Device Tree support"
2299         select OF
2300         select OF_EARLY_FLATTREE
2301         help
2302           Include support for flattened device tree machine descriptions.
2303
2304 endmenu
2305
2306 config LOCKDEP_SUPPORT
2307         bool
2308         default y
2309
2310 config STACKTRACE_SUPPORT
2311         bool
2312         default y
2313
2314 source "init/Kconfig"
2315
2316 source "kernel/Kconfig.freezer"
2317
2318 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2319
2320 config HW_HAS_EISA
2321         bool
2322 config HW_HAS_PCI
2323         bool
2324
2325 config PCI
2326         bool "Support for PCI controller"
2327         depends on HW_HAS_PCI
2328         select PCI_DOMAINS
2329         help
2330           Find out whether you have a PCI motherboard. PCI is the name of a
2331           bus system, i.e. the way the CPU talks to the other stuff inside
2332           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2333           say Y, otherwise N.
2334
2335 config PCI_DOMAINS
2336         bool
2337
2338 source "drivers/pci/Kconfig"
2339
2340 #
2341 # ISA support is now enabled via select.  Too many systems still have the one
2342 # or other ISA chip on the board that users don't know about so don't expect
2343 # users to choose the right thing ...
2344 #
2345 config ISA
2346         bool
2347
2348 config EISA
2349         bool "EISA support"
2350         depends on HW_HAS_EISA
2351         select ISA
2352         select GENERIC_ISA_DMA
2353         ---help---
2354           The Extended Industry Standard Architecture (EISA) bus was
2355           developed as an open alternative to the IBM MicroChannel bus.
2356
2357           The EISA bus provided some of the features of the IBM MicroChannel
2358           bus while maintaining backward compatibility with cards made for
2359           the older ISA bus.  The EISA bus saw limited use between 1988 and
2360           1995 when it was made obsolete by the PCI bus.
2361
2362           Say Y here if you are building a kernel for an EISA-based machine.
2363
2364           Otherwise, say N.
2365
2366 source "drivers/eisa/Kconfig"
2367
2368 config TC
2369         bool "TURBOchannel support"
2370         depends on MACH_DECSTATION
2371         help
2372           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2373           processors.  TURBOchannel programming specifications are available
2374           at:
2375           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2376           and:
2377           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2378           Linux driver support status is documented at:
2379           <http://www.linux-mips.org/wiki/DECstation>
2380
2381 #config ACCESSBUS
2382 #       bool "Access.Bus support"
2383 #       depends on TC
2384
2385 config MMU
2386         bool
2387         default y
2388
2389 config I8253
2390         bool
2391         select CLKSRC_I8253
2392         select MIPS_EXTERNAL_TIMER
2393
2394 config ZONE_DMA32
2395         bool
2396
2397 source "drivers/pcmcia/Kconfig"
2398
2399 source "drivers/pci/hotplug/Kconfig"
2400
2401 config RAPIDIO
2402         bool "RapidIO support"
2403         depends on PCI
2404         default n
2405         help
2406           If you say Y here, the kernel will include drivers and
2407           infrastructure code to support RapidIO interconnect devices.
2408
2409 source "drivers/rapidio/Kconfig"
2410
2411 endmenu
2412
2413 menu "Executable file formats"
2414
2415 source "fs/Kconfig.binfmt"
2416
2417 config TRAD_SIGNALS
2418         bool
2419
2420 config MIPS32_COMPAT
2421         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2422         depends on 64BIT
2423         help
2424           Select this option if you want Linux/MIPS 32-bit binary
2425           compatibility. Since all software available for Linux/MIPS is
2426           currently 32-bit you should say Y here.
2427
2428 config COMPAT
2429         bool
2430         depends on MIPS32_COMPAT
2431         default y
2432
2433 config SYSVIPC_COMPAT
2434         bool
2435         depends on COMPAT && SYSVIPC
2436         default y
2437
2438 config MIPS32_O32
2439         bool "Kernel support for o32 binaries"
2440         depends on MIPS32_COMPAT
2441         help
2442           Select this option if you want to run o32 binaries.  These are pure
2443           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2444           existing binaries are in this format.
2445
2446           If unsure, say Y.
2447
2448 config MIPS32_N32
2449         bool "Kernel support for n32 binaries"
2450         depends on MIPS32_COMPAT
2451         help
2452           Select this option if you want to run n32 binaries.  These are
2453           64-bit binaries using 32-bit quantities for addressing and certain
2454           data that would normally be 64-bit.  They are used in special
2455           cases.
2456
2457           If unsure, say N.
2458
2459 config BINFMT_ELF32
2460         bool
2461         default y if MIPS32_O32 || MIPS32_N32
2462
2463 endmenu
2464
2465 menu "Power management options"
2466
2467 config ARCH_HIBERNATION_POSSIBLE
2468         def_bool y
2469         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2470
2471 config ARCH_SUSPEND_POSSIBLE
2472         def_bool y
2473         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2474
2475 source "kernel/power/Kconfig"
2476
2477 endmenu
2478
2479 source "arch/mips/kernel/cpufreq/Kconfig"
2480
2481 source "net/Kconfig"
2482
2483 source "drivers/Kconfig"
2484
2485 source "fs/Kconfig"
2486
2487 source "arch/mips/Kconfig.debug"
2488
2489 source "security/Kconfig"
2490
2491 source "crypto/Kconfig"
2492
2493 menuconfig VIRTUALIZATION
2494         bool "Virtualization"
2495         default n
2496         ---help---
2497           Say Y here to get to see options for using your Linux host to run other
2498           operating systems inside virtual machines (guests).
2499           This option alone does not add any kernel code.
2500
2501           If you say N, all options in this submenu will be skipped and disabled.
2502
2503 if VIRTUALIZATION
2504
2505 source drivers/virtio/Kconfig
2506
2507 endif # VIRTUALIZATION
2508
2509 source "lib/Kconfig"