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