Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas...
[linux-2.6.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_FIND_NEXT_BIT
825         bool
826         default y
827
828 config GENERIC_FIND_BIT_LE
829         bool
830         default y
831
832 config GENERIC_HWEIGHT
833         bool
834         default y
835
836 config GENERIC_CALIBRATE_DELAY
837         bool
838         default y
839
840 config GENERIC_CLOCKEVENTS
841         bool
842         default y
843
844 config GENERIC_CMOS_UPDATE
845         bool
846         default y
847
848 config SCHED_OMIT_FRAME_POINTER
849         bool
850         default y
851
852 #
853 # Select some configuration options automatically based on user selections.
854 #
855 config ARC
856         bool
857
858 config ARCH_MAY_HAVE_PC_FDC
859         bool
860
861 config BOOT_RAW
862         bool
863
864 config CEVT_BCM1480
865         bool
866
867 config CEVT_DS1287
868         bool
869
870 config CEVT_GT641XX
871         bool
872
873 config CEVT_R4K_LIB
874         bool
875
876 config CEVT_R4K
877         select CEVT_R4K_LIB
878         bool
879
880 config CEVT_SB1250
881         bool
882
883 config CEVT_TXX9
884         bool
885
886 config CSRC_BCM1480
887         bool
888
889 config CSRC_IOASIC
890         bool
891
892 config CSRC_POWERTV
893         bool
894
895 config CSRC_R4K_LIB
896         bool
897
898 config CSRC_R4K
899         select CSRC_R4K_LIB
900         bool
901
902 config CSRC_SB1250
903         bool
904
905 config GPIO_TXX9
906         select GENERIC_GPIO
907         select ARCH_REQUIRE_GPIOLIB
908         bool
909
910 config CFE
911         bool
912
913 config ARCH_DMA_ADDR_T_64BIT
914         def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
915
916 config DMA_COHERENT
917         bool
918
919 config DMA_NONCOHERENT
920         bool
921         select NEED_DMA_MAP_STATE
922
923 config NEED_DMA_MAP_STATE
924         bool
925
926 config SYS_HAS_EARLY_PRINTK
927         bool
928
929 config HOTPLUG_CPU
930         bool "Support for hot-pluggable CPUs"
931         depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
932         help
933           Say Y here to allow turning CPUs off and on. CPUs can be
934           controlled through /sys/devices/system/cpu.
935           (Note: power management support will enable this option
936             automatically on SMP systems. )
937           Say N if you want to disable CPU hotplug.
938
939 config SYS_SUPPORTS_HOTPLUG_CPU
940         bool
941
942 config I8259
943         bool
944
945 config MIPS_BONITO64
946         bool
947
948 config MIPS_MSC
949         bool
950
951 config MIPS_NILE4
952         bool
953
954 config MIPS_DISABLE_OBSOLETE_IDE
955         bool
956
957 config SYNC_R4K
958         bool
959
960 config MIPS_MACHINE
961         def_bool n
962
963 config NO_IOPORT
964         def_bool n
965
966 config GENERIC_ISA_DMA
967         bool
968         select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
969         select ISA_DMA_API
970
971 config GENERIC_ISA_DMA_SUPPORT_BROKEN
972         bool
973         select GENERIC_ISA_DMA
974
975 config ISA_DMA_API
976         bool
977
978 config GENERIC_GPIO
979         bool
980
981 #
982 # Endianess selection.  Sufficiently obscure so many users don't know what to
983 # answer,so we try hard to limit the available choices.  Also the use of a
984 # choice statement should be more obvious to the user.
985 #
986 choice
987         prompt "Endianess selection"
988         help
989           Some MIPS machines can be configured for either little or big endian
990           byte order. These modes require different kernels and a different
991           Linux distribution.  In general there is one preferred byteorder for a
992           particular system but some systems are just as commonly used in the
993           one or the other endianness.
994
995 config CPU_BIG_ENDIAN
996         bool "Big endian"
997         depends on SYS_SUPPORTS_BIG_ENDIAN
998
999 config CPU_LITTLE_ENDIAN
1000         bool "Little endian"
1001         depends on SYS_SUPPORTS_LITTLE_ENDIAN
1002         help
1003
1004 endchoice
1005
1006 config EXPORT_UASM
1007         bool
1008
1009 config SYS_SUPPORTS_APM_EMULATION
1010         bool
1011
1012 config SYS_SUPPORTS_BIG_ENDIAN
1013         bool
1014
1015 config SYS_SUPPORTS_LITTLE_ENDIAN
1016         bool
1017
1018 config SYS_SUPPORTS_HUGETLBFS
1019         bool
1020         depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1021         default y
1022
1023 config IRQ_CPU
1024         bool
1025
1026 config IRQ_CPU_RM7K
1027         bool
1028
1029 config IRQ_CPU_RM9K
1030         bool
1031
1032 config IRQ_MSP_SLP
1033         bool
1034
1035 config IRQ_MSP_CIC
1036         bool
1037
1038 config IRQ_TXX9
1039         bool
1040
1041 config IRQ_GT641XX
1042         bool
1043
1044 config IRQ_GIC
1045         bool
1046
1047 config MIPS_BOARDS_GEN
1048         bool
1049
1050 config PCI_GT64XXX_PCI0
1051         bool
1052
1053 config NO_EXCEPT_FILL
1054         bool
1055
1056 config MIPS_RM9122
1057         bool
1058         select SERIAL_RM9000
1059
1060 config SOC_EMMA2RH
1061         bool
1062         select CEVT_R4K
1063         select CSRC_R4K
1064         select DMA_NONCOHERENT
1065         select IRQ_CPU
1066         select SWAP_IO_SPACE
1067         select SYS_HAS_CPU_R5500
1068         select SYS_SUPPORTS_32BIT_KERNEL
1069         select SYS_SUPPORTS_64BIT_KERNEL
1070         select SYS_SUPPORTS_BIG_ENDIAN
1071
1072 config SOC_PNX833X
1073         bool
1074         select CEVT_R4K
1075         select CSRC_R4K
1076         select IRQ_CPU
1077         select DMA_NONCOHERENT
1078         select SYS_HAS_CPU_MIPS32_R2
1079         select SYS_SUPPORTS_32BIT_KERNEL
1080         select SYS_SUPPORTS_LITTLE_ENDIAN
1081         select SYS_SUPPORTS_BIG_ENDIAN
1082         select GENERIC_GPIO
1083         select CPU_MIPSR2_IRQ_VI
1084
1085 config SOC_PNX8335
1086         bool
1087         select SOC_PNX833X
1088
1089 config PNX8550
1090         bool
1091         select SOC_PNX8550
1092
1093 config SOC_PNX8550
1094         bool
1095         select DMA_NONCOHERENT
1096         select HW_HAS_PCI
1097         select SYS_HAS_CPU_MIPS32_R1
1098         select SYS_HAS_EARLY_PRINTK
1099         select SYS_SUPPORTS_32BIT_KERNEL
1100         select GENERIC_GPIO
1101
1102 config SWAP_IO_SPACE
1103         bool
1104
1105 config SERIAL_RM9000
1106         bool
1107
1108 config SGI_HAS_INDYDOG
1109         bool
1110
1111 config SGI_HAS_HAL2
1112         bool
1113
1114 config SGI_HAS_SEEQ
1115         bool
1116
1117 config SGI_HAS_WD93
1118         bool
1119
1120 config SGI_HAS_ZILOG
1121         bool
1122
1123 config SGI_HAS_I8042
1124         bool
1125
1126 config DEFAULT_SGI_PARTITION
1127         bool
1128
1129 config ARC32
1130         bool
1131
1132 config SNIPROM
1133         bool
1134
1135 config BOOT_ELF32
1136         bool
1137
1138 config MIPS_L1_CACHE_SHIFT
1139         int
1140         default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1141         default "6" if MIPS_CPU_SCACHE
1142         default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1143         default "5"
1144
1145 config HAVE_STD_PC_SERIAL_PORT
1146         bool
1147
1148 config ARC_CONSOLE
1149         bool "ARC console support"
1150         depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1151
1152 config ARC_MEMORY
1153         bool
1154         depends on MACH_JAZZ || SNI_RM || SGI_IP32
1155         default y
1156
1157 config ARC_PROMLIB
1158         bool
1159         depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1160         default y
1161
1162 config ARC64
1163         bool
1164
1165 config BOOT_ELF64
1166         bool
1167
1168 menu "CPU selection"
1169
1170 choice
1171         prompt "CPU type"
1172         default CPU_R4X00
1173
1174 config CPU_LOONGSON2E
1175         bool "Loongson 2E"
1176         depends on SYS_HAS_CPU_LOONGSON2E
1177         select CPU_LOONGSON2
1178         help
1179           The Loongson 2E processor implements the MIPS III instruction set
1180           with many extensions.
1181
1182           It has an internal FPGA northbridge, which is compatible to
1183           bonito64.
1184
1185 config CPU_LOONGSON2F
1186         bool "Loongson 2F"
1187         depends on SYS_HAS_CPU_LOONGSON2F
1188         select CPU_LOONGSON2
1189         select GENERIC_GPIO
1190         select ARCH_REQUIRE_GPIOLIB
1191         help
1192           The Loongson 2F processor implements the MIPS III instruction set
1193           with many extensions.
1194
1195           Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1196           have a similar programming interface with FPGA northbridge used in
1197           Loongson2E.
1198
1199 config CPU_MIPS32_R1
1200         bool "MIPS32 Release 1"
1201         depends on SYS_HAS_CPU_MIPS32_R1
1202         select CPU_HAS_PREFETCH
1203         select CPU_SUPPORTS_32BIT_KERNEL
1204         select CPU_SUPPORTS_HIGHMEM
1205         help
1206           Choose this option to build a kernel for release 1 or later of the
1207           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1208           MIPS processor are based on a MIPS32 processor.  If you know the
1209           specific type of processor in your system, choose those that one
1210           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1211           Release 2 of the MIPS32 architecture is available since several
1212           years so chances are you even have a MIPS32 Release 2 processor
1213           in which case you should choose CPU_MIPS32_R2 instead for better
1214           performance.
1215
1216 config CPU_MIPS32_R2
1217         bool "MIPS32 Release 2"
1218         depends on SYS_HAS_CPU_MIPS32_R2
1219         select CPU_HAS_PREFETCH
1220         select CPU_SUPPORTS_32BIT_KERNEL
1221         select CPU_SUPPORTS_HIGHMEM
1222         help
1223           Choose this option to build a kernel for release 2 or later of the
1224           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1225           MIPS processor are based on a MIPS32 processor.  If you know the
1226           specific type of processor in your system, choose those that one
1227           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1228
1229 config CPU_MIPS64_R1
1230         bool "MIPS64 Release 1"
1231         depends on SYS_HAS_CPU_MIPS64_R1
1232         select CPU_HAS_PREFETCH
1233         select CPU_SUPPORTS_32BIT_KERNEL
1234         select CPU_SUPPORTS_64BIT_KERNEL
1235         select CPU_SUPPORTS_HIGHMEM
1236         select CPU_SUPPORTS_HUGEPAGES
1237         help
1238           Choose this option to build a kernel for release 1 or later of the
1239           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1240           MIPS processor are based on a MIPS64 processor.  If you know the
1241           specific type of processor in your system, choose those that one
1242           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1243           Release 2 of the MIPS64 architecture is available since several
1244           years so chances are you even have a MIPS64 Release 2 processor
1245           in which case you should choose CPU_MIPS64_R2 instead for better
1246           performance.
1247
1248 config CPU_MIPS64_R2
1249         bool "MIPS64 Release 2"
1250         depends on SYS_HAS_CPU_MIPS64_R2
1251         select CPU_HAS_PREFETCH
1252         select CPU_SUPPORTS_32BIT_KERNEL
1253         select CPU_SUPPORTS_64BIT_KERNEL
1254         select CPU_SUPPORTS_HIGHMEM
1255         select CPU_SUPPORTS_HUGEPAGES
1256         help
1257           Choose this option to build a kernel for release 2 or later of the
1258           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1259           MIPS processor are based on a MIPS64 processor.  If you know the
1260           specific type of processor in your system, choose those that one
1261           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1262
1263 config CPU_R3000
1264         bool "R3000"
1265         depends on SYS_HAS_CPU_R3000
1266         select CPU_HAS_WB
1267         select CPU_SUPPORTS_32BIT_KERNEL
1268         select CPU_SUPPORTS_HIGHMEM
1269         help
1270           Please make sure to pick the right CPU type. Linux/MIPS is not
1271           designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1272           *not* work on R4000 machines and vice versa.  However, since most
1273           of the supported machines have an R4000 (or similar) CPU, R4x00
1274           might be a safe bet.  If the resulting kernel does not work,
1275           try to recompile with R3000.
1276
1277 config CPU_TX39XX
1278         bool "R39XX"
1279         depends on SYS_HAS_CPU_TX39XX
1280         select CPU_SUPPORTS_32BIT_KERNEL
1281
1282 config CPU_VR41XX
1283         bool "R41xx"
1284         depends on SYS_HAS_CPU_VR41XX
1285         select CPU_SUPPORTS_32BIT_KERNEL
1286         select CPU_SUPPORTS_64BIT_KERNEL
1287         help
1288           The options selects support for the NEC VR4100 series of processors.
1289           Only choose this option if you have one of these processors as a
1290           kernel built with this option will not run on any other type of
1291           processor or vice versa.
1292
1293 config CPU_R4300
1294         bool "R4300"
1295         depends on SYS_HAS_CPU_R4300
1296         select CPU_SUPPORTS_32BIT_KERNEL
1297         select CPU_SUPPORTS_64BIT_KERNEL
1298         help
1299           MIPS Technologies R4300-series processors.
1300
1301 config CPU_R4X00
1302         bool "R4x00"
1303         depends on SYS_HAS_CPU_R4X00
1304         select CPU_SUPPORTS_32BIT_KERNEL
1305         select CPU_SUPPORTS_64BIT_KERNEL
1306         help
1307           MIPS Technologies R4000-series processors other than 4300, including
1308           the R4000, R4400, R4600, and 4700.
1309
1310 config CPU_TX49XX
1311         bool "R49XX"
1312         depends on SYS_HAS_CPU_TX49XX
1313         select CPU_HAS_PREFETCH
1314         select CPU_SUPPORTS_32BIT_KERNEL
1315         select CPU_SUPPORTS_64BIT_KERNEL
1316
1317 config CPU_R5000
1318         bool "R5000"
1319         depends on SYS_HAS_CPU_R5000
1320         select CPU_SUPPORTS_32BIT_KERNEL
1321         select CPU_SUPPORTS_64BIT_KERNEL
1322         help
1323           MIPS Technologies R5000-series processors other than the Nevada.
1324
1325 config CPU_R5432
1326         bool "R5432"
1327         depends on SYS_HAS_CPU_R5432
1328         select CPU_SUPPORTS_32BIT_KERNEL
1329         select CPU_SUPPORTS_64BIT_KERNEL
1330
1331 config CPU_R5500
1332         bool "R5500"
1333         depends on SYS_HAS_CPU_R5500
1334         select CPU_SUPPORTS_32BIT_KERNEL
1335         select CPU_SUPPORTS_64BIT_KERNEL
1336         select CPU_SUPPORTS_HUGEPAGES
1337         help
1338           NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1339           instruction set.
1340
1341 config CPU_R6000
1342         bool "R6000"
1343         depends on EXPERIMENTAL
1344         depends on SYS_HAS_CPU_R6000
1345         select CPU_SUPPORTS_32BIT_KERNEL
1346         help
1347           MIPS Technologies R6000 and R6000A series processors.  Note these
1348           processors are extremely rare and the support for them is incomplete.
1349
1350 config CPU_NEVADA
1351         bool "RM52xx"
1352         depends on SYS_HAS_CPU_NEVADA
1353         select CPU_SUPPORTS_32BIT_KERNEL
1354         select CPU_SUPPORTS_64BIT_KERNEL
1355         help
1356           QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1357
1358 config CPU_R8000
1359         bool "R8000"
1360         depends on EXPERIMENTAL
1361         depends on SYS_HAS_CPU_R8000
1362         select CPU_HAS_PREFETCH
1363         select CPU_SUPPORTS_64BIT_KERNEL
1364         help
1365           MIPS Technologies R8000 processors.  Note these processors are
1366           uncommon and the support for them is incomplete.
1367
1368 config CPU_R10000
1369         bool "R10000"
1370         depends on SYS_HAS_CPU_R10000
1371         select CPU_HAS_PREFETCH
1372         select CPU_SUPPORTS_32BIT_KERNEL
1373         select CPU_SUPPORTS_64BIT_KERNEL
1374         select CPU_SUPPORTS_HIGHMEM
1375         help
1376           MIPS Technologies R10000-series processors.
1377
1378 config CPU_RM7000
1379         bool "RM7000"
1380         depends on SYS_HAS_CPU_RM7000
1381         select CPU_HAS_PREFETCH
1382         select CPU_SUPPORTS_32BIT_KERNEL
1383         select CPU_SUPPORTS_64BIT_KERNEL
1384         select CPU_SUPPORTS_HIGHMEM
1385
1386 config CPU_RM9000
1387         bool "RM9000"
1388         depends on SYS_HAS_CPU_RM9000
1389         select CPU_HAS_PREFETCH
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_SB1
1396         bool "SB1"
1397         depends on SYS_HAS_CPU_SB1
1398         select CPU_SUPPORTS_32BIT_KERNEL
1399         select CPU_SUPPORTS_64BIT_KERNEL
1400         select CPU_SUPPORTS_HIGHMEM
1401         select WEAK_ORDERING
1402
1403 config CPU_CAVIUM_OCTEON
1404         bool "Cavium Octeon processor"
1405         depends on SYS_HAS_CPU_CAVIUM_OCTEON
1406         select CPU_HAS_PREFETCH
1407         select CPU_SUPPORTS_64BIT_KERNEL
1408         select SYS_SUPPORTS_SMP
1409         select NR_CPUS_DEFAULT_16
1410         select WEAK_ORDERING
1411         select CPU_SUPPORTS_HIGHMEM
1412         select CPU_SUPPORTS_HUGEPAGES
1413         help
1414           The Cavium Octeon processor is a highly integrated chip containing
1415           many ethernet hardware widgets for networking tasks. The processor
1416           can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1417           Full details can be found at http://www.caviumnetworks.com.
1418
1419 config CPU_BMIPS3300
1420         bool "BMIPS3300"
1421         depends on SYS_HAS_CPU_BMIPS3300
1422         select DMA_NONCOHERENT
1423         select IRQ_CPU
1424         select SWAP_IO_SPACE
1425         select SYS_SUPPORTS_32BIT_KERNEL
1426         select WEAK_ORDERING
1427         help
1428           Broadcom BMIPS3300 processors.
1429
1430 config CPU_BMIPS4350
1431         bool "BMIPS4350"
1432         depends on SYS_HAS_CPU_BMIPS4350
1433         select CPU_SUPPORTS_32BIT_KERNEL
1434         select DMA_NONCOHERENT
1435         select IRQ_CPU
1436         select SWAP_IO_SPACE
1437         select SYS_SUPPORTS_SMP
1438         select SYS_SUPPORTS_HOTPLUG_CPU
1439         select WEAK_ORDERING
1440         help
1441           Broadcom BMIPS4350 ("VIPER") processors.
1442
1443 config CPU_BMIPS4380
1444         bool "BMIPS4380"
1445         depends on SYS_HAS_CPU_BMIPS4380
1446         select CPU_SUPPORTS_32BIT_KERNEL
1447         select DMA_NONCOHERENT
1448         select IRQ_CPU
1449         select SWAP_IO_SPACE
1450         select SYS_SUPPORTS_SMP
1451         select SYS_SUPPORTS_HOTPLUG_CPU
1452         select WEAK_ORDERING
1453         help
1454           Broadcom BMIPS4380 processors.
1455
1456 config CPU_BMIPS5000
1457         bool "BMIPS5000"
1458         depends on SYS_HAS_CPU_BMIPS5000
1459         select CPU_SUPPORTS_32BIT_KERNEL
1460         select CPU_SUPPORTS_HIGHMEM
1461         select DMA_NONCOHERENT
1462         select IRQ_CPU
1463         select SWAP_IO_SPACE
1464         select SYS_SUPPORTS_SMP
1465         select SYS_SUPPORTS_HOTPLUG_CPU
1466         select WEAK_ORDERING
1467         help
1468           Broadcom BMIPS5000 processors.
1469
1470 config CPU_XLR
1471         bool "Netlogic XLR SoC"
1472         depends on SYS_HAS_CPU_XLR
1473         select CPU_SUPPORTS_32BIT_KERNEL
1474         select CPU_SUPPORTS_64BIT_KERNEL
1475         select CPU_SUPPORTS_HIGHMEM
1476         select WEAK_ORDERING
1477         select WEAK_REORDERING_BEYOND_LLSC
1478         select CPU_SUPPORTS_HUGEPAGES
1479         help
1480           Netlogic Microsystems XLR/XLS processors.
1481 endchoice
1482
1483 if CPU_LOONGSON2F
1484 config CPU_NOP_WORKAROUNDS
1485         bool
1486
1487 config CPU_JUMP_WORKAROUNDS
1488         bool
1489
1490 config CPU_LOONGSON2F_WORKAROUNDS
1491         bool "Loongson 2F Workarounds"
1492         default y
1493         select CPU_NOP_WORKAROUNDS
1494         select CPU_JUMP_WORKAROUNDS
1495         help
1496           Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1497           require workarounds.  Without workarounds the system may hang
1498           unexpectedly.  For more information please refer to the gas
1499           -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1500
1501           Loongson 2F03 and later have fixed these issues and no workarounds
1502           are needed.  The workarounds have no significant side effect on them
1503           but may decrease the performance of the system so this option should
1504           be disabled unless the kernel is intended to be run on 2F01 or 2F02
1505           systems.
1506
1507           If unsure, please say Y.
1508 endif # CPU_LOONGSON2F
1509
1510 config SYS_SUPPORTS_ZBOOT
1511         bool
1512         select HAVE_KERNEL_GZIP
1513         select HAVE_KERNEL_BZIP2
1514         select HAVE_KERNEL_LZMA
1515         select HAVE_KERNEL_LZO
1516
1517 config SYS_SUPPORTS_ZBOOT_UART16550
1518         bool
1519         select SYS_SUPPORTS_ZBOOT
1520
1521 config CPU_LOONGSON2
1522         bool
1523         select CPU_SUPPORTS_32BIT_KERNEL
1524         select CPU_SUPPORTS_64BIT_KERNEL
1525         select CPU_SUPPORTS_HIGHMEM
1526
1527 config SYS_HAS_CPU_LOONGSON2E
1528         bool
1529
1530 config SYS_HAS_CPU_LOONGSON2F
1531         bool
1532         select CPU_SUPPORTS_CPUFREQ
1533         select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1534         select CPU_SUPPORTS_UNCACHED_ACCELERATED
1535
1536 config SYS_HAS_CPU_MIPS32_R1
1537         bool
1538
1539 config SYS_HAS_CPU_MIPS32_R2
1540         bool
1541
1542 config SYS_HAS_CPU_MIPS64_R1
1543         bool
1544
1545 config SYS_HAS_CPU_MIPS64_R2
1546         bool
1547
1548 config SYS_HAS_CPU_R3000
1549         bool
1550
1551 config SYS_HAS_CPU_TX39XX
1552         bool
1553
1554 config SYS_HAS_CPU_VR41XX
1555         bool
1556
1557 config SYS_HAS_CPU_R4300
1558         bool
1559
1560 config SYS_HAS_CPU_R4X00
1561         bool
1562
1563 config SYS_HAS_CPU_TX49XX
1564         bool
1565
1566 config SYS_HAS_CPU_R5000
1567         bool
1568
1569 config SYS_HAS_CPU_R5432
1570         bool
1571
1572 config SYS_HAS_CPU_R5500
1573         bool
1574
1575 config SYS_HAS_CPU_R6000
1576         bool
1577
1578 config SYS_HAS_CPU_NEVADA
1579         bool
1580
1581 config SYS_HAS_CPU_R8000
1582         bool
1583
1584 config SYS_HAS_CPU_R10000
1585         bool
1586
1587 config SYS_HAS_CPU_RM7000
1588         bool
1589
1590 config SYS_HAS_CPU_RM9000
1591         bool
1592
1593 config SYS_HAS_CPU_SB1
1594         bool
1595
1596 config SYS_HAS_CPU_CAVIUM_OCTEON
1597         bool
1598
1599 config SYS_HAS_CPU_BMIPS3300
1600         bool
1601
1602 config SYS_HAS_CPU_BMIPS4350
1603         bool
1604
1605 config SYS_HAS_CPU_BMIPS4380
1606         bool
1607
1608 config SYS_HAS_CPU_BMIPS5000
1609         bool
1610
1611 config SYS_HAS_CPU_XLR
1612         bool
1613
1614 #
1615 # CPU may reorder R->R, R->W, W->R, W->W
1616 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1617 #
1618 config WEAK_ORDERING
1619         bool
1620
1621 #
1622 # CPU may reorder reads and writes beyond LL/SC
1623 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1624 #
1625 config WEAK_REORDERING_BEYOND_LLSC
1626         bool
1627 endmenu
1628
1629 #
1630 # These two indicate any level of the MIPS32 and MIPS64 architecture
1631 #
1632 config CPU_MIPS32
1633         bool
1634         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1635
1636 config CPU_MIPS64
1637         bool
1638         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1639
1640 #
1641 # These two indicate the revision of the architecture, either Release 1 or Release 2
1642 #
1643 config CPU_MIPSR1
1644         bool
1645         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1646
1647 config CPU_MIPSR2
1648         bool
1649         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1650
1651 config SYS_SUPPORTS_32BIT_KERNEL
1652         bool
1653 config SYS_SUPPORTS_64BIT_KERNEL
1654         bool
1655 config CPU_SUPPORTS_32BIT_KERNEL
1656         bool
1657 config CPU_SUPPORTS_64BIT_KERNEL
1658         bool
1659 config CPU_SUPPORTS_CPUFREQ
1660         bool
1661 config CPU_SUPPORTS_ADDRWINCFG
1662         bool
1663 config CPU_SUPPORTS_HUGEPAGES
1664         bool
1665 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1666         bool
1667 config MIPS_PGD_C0_CONTEXT
1668         bool
1669         default y if 64BIT && CPU_MIPSR2
1670
1671 #
1672 # Set to y for ptrace access to watch registers.
1673 #
1674 config HARDWARE_WATCHPOINTS
1675        bool
1676        default y if CPU_MIPSR1 || CPU_MIPSR2
1677
1678 menu "Kernel type"
1679
1680 choice
1681
1682         prompt "Kernel code model"
1683         help
1684           You should only select this option if you have a workload that
1685           actually benefits from 64-bit processing or if your machine has
1686           large memory.  You will only be presented a single option in this
1687           menu if your system does not support both 32-bit and 64-bit kernels.
1688
1689 config 32BIT
1690         bool "32-bit kernel"
1691         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1692         select TRAD_SIGNALS
1693         help
1694           Select this option if you want to build a 32-bit kernel.
1695 config 64BIT
1696         bool "64-bit kernel"
1697         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1698         select HAVE_SYSCALL_WRAPPERS
1699         help
1700           Select this option if you want to build a 64-bit kernel.
1701
1702 endchoice
1703
1704 choice
1705         prompt "Kernel page size"
1706         default PAGE_SIZE_4KB
1707
1708 config PAGE_SIZE_4KB
1709         bool "4kB"
1710         depends on !CPU_LOONGSON2
1711         help
1712          This option select the standard 4kB Linux page size.  On some
1713          R3000-family processors this is the only available page size.  Using
1714          4kB page size will minimize memory consumption and is therefore
1715          recommended for low memory systems.
1716
1717 config PAGE_SIZE_8KB
1718         bool "8kB"
1719         depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1720         help
1721           Using 8kB page size will result in higher performance kernel at
1722           the price of higher memory consumption.  This option is available
1723           only on R8000 and cnMIPS processors.  Note that you will need a
1724           suitable Linux distribution to support this.
1725
1726 config PAGE_SIZE_16KB
1727         bool "16kB"
1728         depends on !CPU_R3000 && !CPU_TX39XX
1729         help
1730           Using 16kB page size will result in higher performance kernel at
1731           the price of higher memory consumption.  This option is available on
1732           all non-R3000 family processors.  Note that you will need a suitable
1733           Linux distribution to support this.
1734
1735 config PAGE_SIZE_32KB
1736         bool "32kB"
1737         depends on CPU_CAVIUM_OCTEON
1738         help
1739           Using 32kB page size will result in higher performance kernel at
1740           the price of higher memory consumption.  This option is available
1741           only on cnMIPS cores.  Note that you will need a suitable Linux
1742           distribution to support this.
1743
1744 config PAGE_SIZE_64KB
1745         bool "64kB"
1746         depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1747         help
1748           Using 64kB page size will result in higher performance kernel at
1749           the price of higher memory consumption.  This option is available on
1750           all non-R3000 family processor.  Not that at the time of this
1751           writing this option is still high experimental.
1752
1753 endchoice
1754
1755 config FORCE_MAX_ZONEORDER
1756         int "Maximum zone order"
1757         range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1758         default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1759         range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1760         default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1761         range 11 64
1762         default "11"
1763         help
1764           The kernel memory allocator divides physically contiguous memory
1765           blocks into "zones", where each zone is a power of two number of
1766           pages.  This option selects the largest power of two that the kernel
1767           keeps in the memory allocator.  If you need to allocate very large
1768           blocks of physically contiguous memory, then you may need to
1769           increase this value.
1770
1771           This config option is actually maximum order plus one. For example,
1772           a value of 11 means that the largest free memory block is 2^10 pages.
1773
1774           The page size is not necessarily 4KB.  Keep this in mind
1775           when choosing a value for this option.
1776
1777 config BOARD_SCACHE
1778         bool
1779
1780 config IP22_CPU_SCACHE
1781         bool
1782         select BOARD_SCACHE
1783
1784 #
1785 # Support for a MIPS32 / MIPS64 style S-caches
1786 #
1787 config MIPS_CPU_SCACHE
1788         bool
1789         select BOARD_SCACHE
1790
1791 config R5000_CPU_SCACHE
1792         bool
1793         select BOARD_SCACHE
1794
1795 config RM7000_CPU_SCACHE
1796         bool
1797         select BOARD_SCACHE
1798
1799 config SIBYTE_DMA_PAGEOPS
1800         bool "Use DMA to clear/copy pages"
1801         depends on CPU_SB1
1802         help
1803           Instead of using the CPU to zero and copy pages, use a Data Mover
1804           channel.  These DMA channels are otherwise unused by the standard
1805           SiByte Linux port.  Seems to give a small performance benefit.
1806
1807 config CPU_HAS_PREFETCH
1808         bool
1809
1810 choice
1811         prompt "MIPS MT options"
1812
1813 config MIPS_MT_DISABLED
1814         bool "Disable multithreading support."
1815         help
1816           Use this option if your workload can't take advantage of
1817           MIPS hardware multithreading support.  On systems that don't have
1818           the option of an MT-enabled processor this option will be the only
1819           option in this menu.
1820
1821 config MIPS_MT_SMP
1822         bool "Use 1 TC on each available VPE for SMP"
1823         depends on SYS_SUPPORTS_MULTITHREADING
1824         select CPU_MIPSR2_IRQ_VI
1825         select CPU_MIPSR2_IRQ_EI
1826         select MIPS_MT
1827         select NR_CPUS_DEFAULT_2
1828         select SMP
1829         select SYS_SUPPORTS_SCHED_SMT if SMP
1830         select SYS_SUPPORTS_SMP
1831         select SMP_UP
1832         help
1833           This is a kernel model which is known a VSMP but lately has been
1834           marketesed into SMVP.
1835           Virtual SMP uses the processor's VPEs  to implement virtual
1836           processors. In currently available configuration of the 34K processor
1837           this allows for a dual processor. Both processors will share the same
1838           primary caches; each will obtain the half of the TLB for it's own
1839           exclusive use. For a layman this model can be described as similar to
1840           what Intel calls Hyperthreading.
1841
1842           For further information see http://www.linux-mips.org/wiki/34K#VSMP
1843
1844 config MIPS_MT_SMTC
1845         bool "SMTC: Use all TCs on all VPEs for SMP"
1846         depends on CPU_MIPS32_R2
1847         #depends on CPU_MIPS64_R2               # once there is hardware ...
1848         depends on SYS_SUPPORTS_MULTITHREADING
1849         select CPU_MIPSR2_IRQ_VI
1850         select CPU_MIPSR2_IRQ_EI
1851         select MIPS_MT
1852         select NR_CPUS_DEFAULT_8
1853         select SMP
1854         select SYS_SUPPORTS_SMP
1855         select SMP_UP
1856         help
1857           This is a kernel model which is known a SMTC or lately has been
1858           marketesed into SMVP.
1859           is presenting the available TC's of the core as processors to Linux.
1860           On currently available 34K processors this means a Linux system will
1861           see up to 5 processors. The implementation of the SMTC kernel differs
1862           significantly from VSMP and cannot efficiently coexist in the same
1863           kernel binary so the choice between VSMP and SMTC is a compile time
1864           decision.
1865
1866           For further information see http://www.linux-mips.org/wiki/34K#SMTC
1867
1868 endchoice
1869
1870 config MIPS_MT
1871         bool
1872
1873 config SCHED_SMT
1874         bool "SMT (multithreading) scheduler support"
1875         depends on SYS_SUPPORTS_SCHED_SMT
1876         default n
1877         help
1878           SMT scheduler support improves the CPU scheduler's decision making
1879           when dealing with MIPS MT enabled cores at a cost of slightly
1880           increased overhead in some places. If unsure say N here.
1881
1882 config SYS_SUPPORTS_SCHED_SMT
1883         bool
1884
1885
1886 config SYS_SUPPORTS_MULTITHREADING
1887         bool
1888
1889 config MIPS_MT_FPAFF
1890         bool "Dynamic FPU affinity for FP-intensive threads"
1891         default y
1892         depends on MIPS_MT_SMP || MIPS_MT_SMTC
1893
1894 config MIPS_VPE_LOADER
1895         bool "VPE loader support."
1896         depends on SYS_SUPPORTS_MULTITHREADING
1897         select CPU_MIPSR2_IRQ_VI
1898         select CPU_MIPSR2_IRQ_EI
1899         select MIPS_MT
1900         help
1901           Includes a loader for loading an elf relocatable object
1902           onto another VPE and running it.
1903
1904 config MIPS_MT_SMTC_IM_BACKSTOP
1905         bool "Use per-TC register bits as backstop for inhibited IM bits"
1906         depends on MIPS_MT_SMTC
1907         default n
1908         help
1909           To support multiple TC microthreads acting as "CPUs" within
1910           a VPE, VPE-wide interrupt mask bits must be specially manipulated
1911           during interrupt handling. To support legacy drivers and interrupt
1912           controller management code, SMTC has a "backstop" to track and
1913           if necessary restore the interrupt mask. This has some performance
1914           impact on interrupt service overhead.
1915
1916 config MIPS_MT_SMTC_IRQAFF
1917         bool "Support IRQ affinity API"
1918         depends on MIPS_MT_SMTC
1919         default n
1920         help
1921           Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1922           for SMTC Linux kernel. Requires platform support, of which
1923           an example can be found in the MIPS kernel i8259 and Malta
1924           platform code.  Adds some overhead to interrupt dispatch, and
1925           should be used only if you know what you are doing.
1926
1927 config MIPS_VPE_LOADER_TOM
1928         bool "Load VPE program into memory hidden from linux"
1929         depends on MIPS_VPE_LOADER
1930         default y
1931         help
1932           The loader can use memory that is present but has been hidden from
1933           Linux using the kernel command line option "mem=xxMB". It's up to
1934           you to ensure the amount you put in the option and the space your
1935           program requires is less or equal to the amount physically present.
1936
1937 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1938 config MIPS_VPE_APSP_API
1939         bool "Enable support for AP/SP API (RTLX)"
1940         depends on MIPS_VPE_LOADER
1941         help
1942
1943 config MIPS_APSP_KSPD
1944         bool "Enable KSPD"
1945         depends on MIPS_VPE_APSP_API
1946         default y
1947         help
1948           KSPD is a kernel daemon that accepts syscall requests from the SP
1949           side, actions them and returns the results. It also handles the
1950           "exit" syscall notifying other kernel modules the SP program is
1951           exiting.  You probably want to say yes here.
1952
1953 config MIPS_CMP
1954         bool "MIPS CMP framework support"
1955         depends on SYS_SUPPORTS_MIPS_CMP
1956         select SYNC_R4K
1957         select SYS_SUPPORTS_SMP
1958         select SYS_SUPPORTS_SCHED_SMT if SMP
1959         select WEAK_ORDERING
1960         default n
1961         help
1962           This is a placeholder option for the GCMP work. It will need to
1963           be handled differently...
1964
1965 config SB1_PASS_1_WORKAROUNDS
1966         bool
1967         depends on CPU_SB1_PASS_1
1968         default y
1969
1970 config SB1_PASS_2_WORKAROUNDS
1971         bool
1972         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1973         default y
1974
1975 config SB1_PASS_2_1_WORKAROUNDS
1976         bool
1977         depends on CPU_SB1 && CPU_SB1_PASS_2
1978         default y
1979
1980 config 64BIT_PHYS_ADDR
1981         bool
1982
1983 config ARCH_PHYS_ADDR_T_64BIT
1984        def_bool 64BIT_PHYS_ADDR
1985
1986 config CPU_HAS_SMARTMIPS
1987         depends on SYS_SUPPORTS_SMARTMIPS
1988         bool "Support for the SmartMIPS ASE"
1989         help
1990           SmartMIPS is a extension of the MIPS32 architecture aimed at
1991           increased security at both hardware and software level for
1992           smartcards.  Enabling this option will allow proper use of the
1993           SmartMIPS instructions by Linux applications.  However a kernel with
1994           this option will not work on a MIPS core without SmartMIPS core.  If
1995           you don't know you probably don't have SmartMIPS and should say N
1996           here.
1997
1998 config CPU_HAS_WB
1999         bool
2000
2001 #
2002 # Vectored interrupt mode is an R2 feature
2003 #
2004 config CPU_MIPSR2_IRQ_VI
2005         bool
2006
2007 #
2008 # Extended interrupt mode is an R2 feature
2009 #
2010 config CPU_MIPSR2_IRQ_EI
2011         bool
2012
2013 config CPU_HAS_SYNC
2014         bool
2015         depends on !CPU_R3000
2016         default y
2017
2018 config GENERIC_CLOCKEVENTS_BROADCAST
2019         bool
2020
2021 #
2022 # CPU non-features
2023 #
2024 config CPU_DADDI_WORKAROUNDS
2025         bool
2026
2027 config CPU_R4000_WORKAROUNDS
2028         bool
2029         select CPU_R4400_WORKAROUNDS
2030
2031 config CPU_R4400_WORKAROUNDS
2032         bool
2033
2034 #
2035 # - Highmem only makes sense for the 32-bit kernel.
2036 # - The current highmem code will only work properly on physically indexed
2037 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2038 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2039 #   moment we protect the user and offer the highmem option only on machines
2040 #   where it's known to be safe.  This will not offer highmem on a few systems
2041 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2042 #   indexed CPUs but we're playing safe.
2043 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2044 #   know they might have memory configurations that could make use of highmem
2045 #   support.
2046 #
2047 config HIGHMEM
2048         bool "High Memory Support"
2049         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2050
2051 config CPU_SUPPORTS_HIGHMEM
2052         bool
2053
2054 config SYS_SUPPORTS_HIGHMEM
2055         bool
2056
2057 config SYS_SUPPORTS_SMARTMIPS
2058         bool
2059
2060 config ARCH_FLATMEM_ENABLE
2061         def_bool y
2062         depends on !NUMA && !CPU_LOONGSON2
2063
2064 config ARCH_DISCONTIGMEM_ENABLE
2065         bool
2066         default y if SGI_IP27
2067         help
2068           Say Y to support efficient handling of discontiguous physical memory,
2069           for architectures which are either NUMA (Non-Uniform Memory Access)
2070           or have huge holes in the physical address space for other reasons.
2071           See <file:Documentation/vm/numa> for more.
2072
2073 config ARCH_POPULATES_NODE_MAP
2074         def_bool y
2075
2076 config ARCH_SPARSEMEM_ENABLE
2077         bool
2078         select SPARSEMEM_STATIC
2079
2080 config NUMA
2081         bool "NUMA Support"
2082         depends on SYS_SUPPORTS_NUMA
2083         help
2084           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2085           Access).  This option improves performance on systems with more
2086           than two nodes; on two node systems it is generally better to
2087           leave it disabled; on single node systems disable this option
2088           disabled.
2089
2090 config SYS_SUPPORTS_NUMA
2091         bool
2092
2093 config NODES_SHIFT
2094         int
2095         default "6"
2096         depends on NEED_MULTIPLE_NODES
2097
2098 config HW_PERF_EVENTS
2099         bool "Enable hardware performance counter support for perf events"
2100         depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && CPU_MIPS32
2101         default y
2102         help
2103           Enable hardware performance counter support for perf events. If
2104           disabled, perf events will use software events only.
2105
2106 source "mm/Kconfig"
2107
2108 config SMP
2109         bool "Multi-Processing support"
2110         depends on SYS_SUPPORTS_SMP
2111         select IRQ_PER_CPU
2112         select USE_GENERIC_SMP_HELPERS
2113         help
2114           This enables support for systems with more than one CPU. If you have
2115           a system with only one CPU, like most personal computers, say N. If
2116           you have a system with more than one CPU, say Y.
2117
2118           If you say N here, the kernel will run on single and multiprocessor
2119           machines, but will use only one CPU of a multiprocessor machine. If
2120           you say Y here, the kernel will run on many, but not all,
2121           singleprocessor machines. On a singleprocessor machine, the kernel
2122           will run faster if you say N here.
2123
2124           People using multiprocessor machines who say Y here should also say
2125           Y to "Enhanced Real Time Clock Support", below.
2126
2127           See also the SMP-HOWTO available at
2128           <http://www.tldp.org/docs.html#howto>.
2129
2130           If you don't know what to do here, say N.
2131
2132 config SMP_UP
2133         bool
2134
2135 config SYS_SUPPORTS_MIPS_CMP
2136         bool
2137
2138 config SYS_SUPPORTS_SMP
2139         bool
2140
2141 config NR_CPUS_DEFAULT_1
2142         bool
2143
2144 config NR_CPUS_DEFAULT_2
2145         bool
2146
2147 config NR_CPUS_DEFAULT_4
2148         bool
2149
2150 config NR_CPUS_DEFAULT_8
2151         bool
2152
2153 config NR_CPUS_DEFAULT_16
2154         bool
2155
2156 config NR_CPUS_DEFAULT_32
2157         bool
2158
2159 config NR_CPUS_DEFAULT_64
2160         bool
2161
2162 config NR_CPUS
2163         int "Maximum number of CPUs (2-64)"
2164         range 1 64 if NR_CPUS_DEFAULT_1
2165         depends on SMP
2166         default "1" if NR_CPUS_DEFAULT_1
2167         default "2" if NR_CPUS_DEFAULT_2
2168         default "4" if NR_CPUS_DEFAULT_4
2169         default "8" if NR_CPUS_DEFAULT_8
2170         default "16" if NR_CPUS_DEFAULT_16
2171         default "32" if NR_CPUS_DEFAULT_32
2172         default "64" if NR_CPUS_DEFAULT_64
2173         help
2174           This allows you to specify the maximum number of CPUs which this
2175           kernel will support.  The maximum supported value is 32 for 32-bit
2176           kernel and 64 for 64-bit kernels; the minimum value which makes
2177           sense is 1 for Qemu (useful only for kernel debugging purposes)
2178           and 2 for all others.
2179
2180           This is purely to save memory - each supported CPU adds
2181           approximately eight kilobytes to the kernel image.  For best
2182           performance should round up your number of processors to the next
2183           power of two.
2184
2185 source "kernel/time/Kconfig"
2186
2187 #
2188 # Timer Interrupt Frequency Configuration
2189 #
2190
2191 choice
2192         prompt "Timer frequency"
2193         default HZ_250
2194         help
2195          Allows the configuration of the timer frequency.
2196
2197         config HZ_48
2198                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2199
2200         config HZ_100
2201                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2202
2203         config HZ_128
2204                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2205
2206         config HZ_250
2207                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2208
2209         config HZ_256
2210                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2211
2212         config HZ_1000
2213                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2214
2215         config HZ_1024
2216                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2217
2218 endchoice
2219
2220 config SYS_SUPPORTS_48HZ
2221         bool
2222
2223 config SYS_SUPPORTS_100HZ
2224         bool
2225
2226 config SYS_SUPPORTS_128HZ
2227         bool
2228
2229 config SYS_SUPPORTS_250HZ
2230         bool
2231
2232 config SYS_SUPPORTS_256HZ
2233         bool
2234
2235 config SYS_SUPPORTS_1000HZ
2236         bool
2237
2238 config SYS_SUPPORTS_1024HZ
2239         bool
2240
2241 config SYS_SUPPORTS_ARBIT_HZ
2242         bool
2243         default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2244                      !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2245                      !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2246                      !SYS_SUPPORTS_1024HZ
2247
2248 config HZ
2249         int
2250         default 48 if HZ_48
2251         default 100 if HZ_100
2252         default 128 if HZ_128
2253         default 250 if HZ_250
2254         default 256 if HZ_256
2255         default 1000 if HZ_1000
2256         default 1024 if HZ_1024
2257
2258 source "kernel/Kconfig.preempt"
2259
2260 config MIPS_INSANE_LARGE
2261         bool "Support for large 64-bit configurations"
2262         depends on CPU_R10000 && 64BIT
2263         help
2264           MIPS R10000 does support a 44 bit / 16TB address space as opposed to
2265           previous 64-bit processors which only supported 40 bit / 1TB. If you
2266           need processes of more than 1TB virtual address space, say Y here.
2267           This will result in additional memory usage, so it is not
2268           recommended for normal users.
2269
2270 config KEXEC
2271         bool "Kexec system call (EXPERIMENTAL)"
2272         depends on EXPERIMENTAL
2273         help
2274           kexec is a system call that implements the ability to shutdown your
2275           current kernel, and to start another kernel.  It is like a reboot
2276           but it is independent of the system firmware.   And like a reboot
2277           you can start any kernel with it, not just Linux.
2278
2279           The name comes from the similarity to the exec system call.
2280
2281           It is an ongoing process to be certain the hardware in a machine
2282           is properly shutdown, so do not be surprised if this code does not
2283           initially work for you.  It may help to enable device hotplugging
2284           support.  As of this writing the exact hardware interface is
2285           strongly in flux, so no good recommendation can be made.
2286
2287 config SECCOMP
2288         bool "Enable seccomp to safely compute untrusted bytecode"
2289         depends on PROC_FS
2290         default y
2291         help
2292           This kernel feature is useful for number crunching applications
2293           that may need to compute untrusted bytecode during their
2294           execution. By using pipes or other transports made available to
2295           the process as file descriptors supporting the read/write
2296           syscalls, it's possible to isolate those applications in
2297           their own address space using seccomp. Once seccomp is
2298           enabled via /proc/<pid>/seccomp, it cannot be disabled
2299           and the task is only allowed to execute a few safe syscalls
2300           defined by each seccomp mode.
2301
2302           If unsure, say Y. Only embedded should say N here.
2303
2304 config USE_OF
2305         bool "Flattened Device Tree support"
2306         select OF
2307         select OF_EARLY_FLATTREE
2308         help
2309           Include support for flattened device tree machine descriptions.
2310
2311 endmenu
2312
2313 config LOCKDEP_SUPPORT
2314         bool
2315         default y
2316
2317 config STACKTRACE_SUPPORT
2318         bool
2319         default y
2320
2321 source "init/Kconfig"
2322
2323 source "kernel/Kconfig.freezer"
2324
2325 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2326
2327 config HW_HAS_EISA
2328         bool
2329 config HW_HAS_PCI
2330         bool
2331
2332 config PCI
2333         bool "Support for PCI controller"
2334         depends on HW_HAS_PCI
2335         select PCI_DOMAINS
2336         help
2337           Find out whether you have a PCI motherboard. PCI is the name of a
2338           bus system, i.e. the way the CPU talks to the other stuff inside
2339           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2340           say Y, otherwise N.
2341
2342 config PCI_DOMAINS
2343         bool
2344
2345 source "drivers/pci/Kconfig"
2346
2347 #
2348 # ISA support is now enabled via select.  Too many systems still have the one
2349 # or other ISA chip on the board that users don't know about so don't expect
2350 # users to choose the right thing ...
2351 #
2352 config ISA
2353         bool
2354
2355 config EISA
2356         bool "EISA support"
2357         depends on HW_HAS_EISA
2358         select ISA
2359         select GENERIC_ISA_DMA
2360         ---help---
2361           The Extended Industry Standard Architecture (EISA) bus was
2362           developed as an open alternative to the IBM MicroChannel bus.
2363
2364           The EISA bus provided some of the features of the IBM MicroChannel
2365           bus while maintaining backward compatibility with cards made for
2366           the older ISA bus.  The EISA bus saw limited use between 1988 and
2367           1995 when it was made obsolete by the PCI bus.
2368
2369           Say Y here if you are building a kernel for an EISA-based machine.
2370
2371           Otherwise, say N.
2372
2373 source "drivers/eisa/Kconfig"
2374
2375 config TC
2376         bool "TURBOchannel support"
2377         depends on MACH_DECSTATION
2378         help
2379           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2380           processors.  TURBOchannel programming specifications are available
2381           at:
2382           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2383           and:
2384           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2385           Linux driver support status is documented at:
2386           <http://www.linux-mips.org/wiki/DECstation>
2387
2388 #config ACCESSBUS
2389 #       bool "Access.Bus support"
2390 #       depends on TC
2391
2392 config MMU
2393         bool
2394         default y
2395
2396 config I8253
2397         bool
2398         select MIPS_EXTERNAL_TIMER
2399
2400 config ZONE_DMA32
2401         bool
2402
2403 source "drivers/pcmcia/Kconfig"
2404
2405 source "drivers/pci/hotplug/Kconfig"
2406
2407 config RAPIDIO
2408         bool "RapidIO support"
2409         depends on PCI
2410         default n
2411         help
2412           If you say Y here, the kernel will include drivers and
2413           infrastructure code to support RapidIO interconnect devices.
2414
2415 source "drivers/rapidio/Kconfig"
2416
2417 endmenu
2418
2419 menu "Executable file formats"
2420
2421 source "fs/Kconfig.binfmt"
2422
2423 config TRAD_SIGNALS
2424         bool
2425
2426 config MIPS32_COMPAT
2427         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2428         depends on 64BIT
2429         help
2430           Select this option if you want Linux/MIPS 32-bit binary
2431           compatibility. Since all software available for Linux/MIPS is
2432           currently 32-bit you should say Y here.
2433
2434 config COMPAT
2435         bool
2436         depends on MIPS32_COMPAT
2437         default y
2438
2439 config SYSVIPC_COMPAT
2440         bool
2441         depends on COMPAT && SYSVIPC
2442         default y
2443
2444 config MIPS32_O32
2445         bool "Kernel support for o32 binaries"
2446         depends on MIPS32_COMPAT
2447         help
2448           Select this option if you want to run o32 binaries.  These are pure
2449           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2450           existing binaries are in this format.
2451
2452           If unsure, say Y.
2453
2454 config MIPS32_N32
2455         bool "Kernel support for n32 binaries"
2456         depends on MIPS32_COMPAT
2457         help
2458           Select this option if you want to run n32 binaries.  These are
2459           64-bit binaries using 32-bit quantities for addressing and certain
2460           data that would normally be 64-bit.  They are used in special
2461           cases.
2462
2463           If unsure, say N.
2464
2465 config BINFMT_ELF32
2466         bool
2467         default y if MIPS32_O32 || MIPS32_N32
2468
2469 endmenu
2470
2471 menu "Power management options"
2472
2473 config ARCH_HIBERNATION_POSSIBLE
2474         def_bool y
2475         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2476
2477 config ARCH_SUSPEND_POSSIBLE
2478         def_bool y
2479         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2480
2481 source "kernel/power/Kconfig"
2482
2483 endmenu
2484
2485 source "arch/mips/kernel/cpufreq/Kconfig"
2486
2487 source "net/Kconfig"
2488
2489 source "drivers/Kconfig"
2490
2491 source "fs/Kconfig"
2492
2493 source "arch/mips/Kconfig.debug"
2494
2495 source "security/Kconfig"
2496
2497 source "crypto/Kconfig"
2498
2499 menuconfig VIRTUALIZATION
2500         bool "Virtualization"
2501         default n
2502         ---help---
2503           Say Y here to get to see options for using your Linux host to run other
2504           operating systems inside virtual machines (guests).
2505           This option alone does not add any kernel code.
2506
2507           If you say N, all options in this submenu will be skipped and disabled.
2508
2509 if VIRTUALIZATION
2510
2511 source drivers/virtio/Kconfig
2512
2513 endif # VIRTUALIZATION
2514
2515 source "lib/Kconfig"