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