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