MIPS: BCM47XX: remove GPIO driver
[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 ARCH_WANT_OPTIONAL_GPIOLIB
109         select CEVT_R4K
110         select CSRC_R4K
111         select DMA_NONCOHERENT
112         select HW_HAS_PCI
113         select IRQ_CPU
114         select SYS_SUPPORTS_32BIT_KERNEL
115         select SYS_SUPPORTS_LITTLE_ENDIAN
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_DMA32 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_DMA32 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         select CPU_MIPSR2
1546         help
1547           Netlogic Microsystems XLP processors.
1548 endchoice
1549
1550 if CPU_LOONGSON2F
1551 config CPU_NOP_WORKAROUNDS
1552         bool
1553
1554 config CPU_JUMP_WORKAROUNDS
1555         bool
1556
1557 config CPU_LOONGSON2F_WORKAROUNDS
1558         bool "Loongson 2F Workarounds"
1559         default y
1560         select CPU_NOP_WORKAROUNDS
1561         select CPU_JUMP_WORKAROUNDS
1562         help
1563           Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1564           require workarounds.  Without workarounds the system may hang
1565           unexpectedly.  For more information please refer to the gas
1566           -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1567
1568           Loongson 2F03 and later have fixed these issues and no workarounds
1569           are needed.  The workarounds have no significant side effect on them
1570           but may decrease the performance of the system so this option should
1571           be disabled unless the kernel is intended to be run on 2F01 or 2F02
1572           systems.
1573
1574           If unsure, please say Y.
1575 endif # CPU_LOONGSON2F
1576
1577 config SYS_SUPPORTS_ZBOOT
1578         bool
1579         select HAVE_KERNEL_GZIP
1580         select HAVE_KERNEL_BZIP2
1581         select HAVE_KERNEL_LZMA
1582         select HAVE_KERNEL_LZO
1583
1584 config SYS_SUPPORTS_ZBOOT_UART16550
1585         bool
1586         select SYS_SUPPORTS_ZBOOT
1587
1588 config CPU_LOONGSON2
1589         bool
1590         select CPU_SUPPORTS_32BIT_KERNEL
1591         select CPU_SUPPORTS_64BIT_KERNEL
1592         select CPU_SUPPORTS_HIGHMEM
1593
1594 config CPU_LOONGSON1
1595         bool
1596         select CPU_MIPS32
1597         select CPU_MIPSR2
1598         select CPU_HAS_PREFETCH
1599         select CPU_SUPPORTS_32BIT_KERNEL
1600         select CPU_SUPPORTS_HIGHMEM
1601
1602 config CPU_BMIPS
1603         bool
1604         select CPU_MIPS32
1605         select CPU_SUPPORTS_32BIT_KERNEL
1606         select DMA_NONCOHERENT
1607         select IRQ_CPU
1608         select SWAP_IO_SPACE
1609         select WEAK_ORDERING
1610
1611 config SYS_HAS_CPU_LOONGSON2E
1612         bool
1613
1614 config SYS_HAS_CPU_LOONGSON2F
1615         bool
1616         select CPU_SUPPORTS_CPUFREQ
1617         select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1618         select CPU_SUPPORTS_UNCACHED_ACCELERATED
1619
1620 config SYS_HAS_CPU_LOONGSON1B
1621         bool
1622
1623 config SYS_HAS_CPU_MIPS32_R1
1624         bool
1625
1626 config SYS_HAS_CPU_MIPS32_R2
1627         bool
1628
1629 config SYS_HAS_CPU_MIPS64_R1
1630         bool
1631
1632 config SYS_HAS_CPU_MIPS64_R2
1633         bool
1634
1635 config SYS_HAS_CPU_R3000
1636         bool
1637
1638 config SYS_HAS_CPU_TX39XX
1639         bool
1640
1641 config SYS_HAS_CPU_VR41XX
1642         bool
1643
1644 config SYS_HAS_CPU_R4300
1645         bool
1646
1647 config SYS_HAS_CPU_R4X00
1648         bool
1649
1650 config SYS_HAS_CPU_TX49XX
1651         bool
1652
1653 config SYS_HAS_CPU_R5000
1654         bool
1655
1656 config SYS_HAS_CPU_R5432
1657         bool
1658
1659 config SYS_HAS_CPU_R5500
1660         bool
1661
1662 config SYS_HAS_CPU_R6000
1663         bool
1664
1665 config SYS_HAS_CPU_NEVADA
1666         bool
1667
1668 config SYS_HAS_CPU_R8000
1669         bool
1670
1671 config SYS_HAS_CPU_R10000
1672         bool
1673
1674 config SYS_HAS_CPU_RM7000
1675         bool
1676
1677 config SYS_HAS_CPU_RM9000
1678         bool
1679
1680 config SYS_HAS_CPU_SB1
1681         bool
1682
1683 config SYS_HAS_CPU_CAVIUM_OCTEON
1684         bool
1685
1686 config SYS_HAS_CPU_BMIPS3300
1687         bool
1688
1689 config SYS_HAS_CPU_BMIPS4350
1690         bool
1691
1692 config SYS_HAS_CPU_BMIPS4380
1693         bool
1694
1695 config SYS_HAS_CPU_BMIPS5000
1696         bool
1697
1698 config SYS_HAS_CPU_XLR
1699         bool
1700
1701 config SYS_HAS_CPU_XLP
1702         bool
1703
1704 #
1705 # CPU may reorder R->R, R->W, W->R, W->W
1706 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1707 #
1708 config WEAK_ORDERING
1709         bool
1710
1711 #
1712 # CPU may reorder reads and writes beyond LL/SC
1713 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1714 #
1715 config WEAK_REORDERING_BEYOND_LLSC
1716         bool
1717 endmenu
1718
1719 #
1720 # These two indicate any level of the MIPS32 and MIPS64 architecture
1721 #
1722 config CPU_MIPS32
1723         bool
1724         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1725
1726 config CPU_MIPS64
1727         bool
1728         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1729
1730 #
1731 # These two indicate the revision of the architecture, either Release 1 or Release 2
1732 #
1733 config CPU_MIPSR1
1734         bool
1735         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1736
1737 config CPU_MIPSR2
1738         bool
1739         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1740
1741 config SYS_SUPPORTS_32BIT_KERNEL
1742         bool
1743 config SYS_SUPPORTS_64BIT_KERNEL
1744         bool
1745 config CPU_SUPPORTS_32BIT_KERNEL
1746         bool
1747 config CPU_SUPPORTS_64BIT_KERNEL
1748         bool
1749 config CPU_SUPPORTS_CPUFREQ
1750         bool
1751 config CPU_SUPPORTS_ADDRWINCFG
1752         bool
1753 config CPU_SUPPORTS_HUGEPAGES
1754         bool
1755 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1756         bool
1757 config MIPS_PGD_C0_CONTEXT
1758         bool
1759         default y if 64BIT && CPU_MIPSR2 && !CPU_XLP
1760
1761 #
1762 # Set to y for ptrace access to watch registers.
1763 #
1764 config HARDWARE_WATCHPOINTS
1765        bool
1766        default y if CPU_MIPSR1 || CPU_MIPSR2
1767
1768 menu "Kernel type"
1769
1770 choice
1771         prompt "Kernel code model"
1772         help
1773           You should only select this option if you have a workload that
1774           actually benefits from 64-bit processing or if your machine has
1775           large memory.  You will only be presented a single option in this
1776           menu if your system does not support both 32-bit and 64-bit kernels.
1777
1778 config 32BIT
1779         bool "32-bit kernel"
1780         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1781         select TRAD_SIGNALS
1782         help
1783           Select this option if you want to build a 32-bit kernel.
1784 config 64BIT
1785         bool "64-bit kernel"
1786         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1787         select HAVE_SYSCALL_WRAPPERS
1788         help
1789           Select this option if you want to build a 64-bit kernel.
1790
1791 endchoice
1792
1793 choice
1794         prompt "Kernel page size"
1795         default PAGE_SIZE_4KB
1796
1797 config PAGE_SIZE_4KB
1798         bool "4kB"
1799         depends on !CPU_LOONGSON2
1800         help
1801          This option select the standard 4kB Linux page size.  On some
1802          R3000-family processors this is the only available page size.  Using
1803          4kB page size will minimize memory consumption and is therefore
1804          recommended for low memory systems.
1805
1806 config PAGE_SIZE_8KB
1807         bool "8kB"
1808         depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1809         help
1810           Using 8kB page size will result in higher performance kernel at
1811           the price of higher memory consumption.  This option is available
1812           only on R8000 and cnMIPS processors.  Note that you will need a
1813           suitable Linux distribution to support this.
1814
1815 config PAGE_SIZE_16KB
1816         bool "16kB"
1817         depends on !CPU_R3000 && !CPU_TX39XX
1818         help
1819           Using 16kB page size will result in higher performance kernel at
1820           the price of higher memory consumption.  This option is available on
1821           all non-R3000 family processors.  Note that you will need a suitable
1822           Linux distribution to support this.
1823
1824 config PAGE_SIZE_32KB
1825         bool "32kB"
1826         depends on CPU_CAVIUM_OCTEON
1827         help
1828           Using 32kB page size will result in higher performance kernel at
1829           the price of higher memory consumption.  This option is available
1830           only on cnMIPS cores.  Note that you will need a suitable Linux
1831           distribution to support this.
1832
1833 config PAGE_SIZE_64KB
1834         bool "64kB"
1835         depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1836         help
1837           Using 64kB page size will result in higher performance kernel at
1838           the price of higher memory consumption.  This option is available on
1839           all non-R3000 family processor.  Not that at the time of this
1840           writing this option is still high experimental.
1841
1842 endchoice
1843
1844 config FORCE_MAX_ZONEORDER
1845         int "Maximum zone order"
1846         range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB
1847         default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB
1848         range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB
1849         default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB
1850         range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB
1851         default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB
1852         range 11 64
1853         default "11"
1854         help
1855           The kernel memory allocator divides physically contiguous memory
1856           blocks into "zones", where each zone is a power of two number of
1857           pages.  This option selects the largest power of two that the kernel
1858           keeps in the memory allocator.  If you need to allocate very large
1859           blocks of physically contiguous memory, then you may need to
1860           increase this value.
1861
1862           This config option is actually maximum order plus one. For example,
1863           a value of 11 means that the largest free memory block is 2^10 pages.
1864
1865           The page size is not necessarily 4KB.  Keep this in mind
1866           when choosing a value for this option.
1867
1868 config BOARD_SCACHE
1869         bool
1870
1871 config IP22_CPU_SCACHE
1872         bool
1873         select BOARD_SCACHE
1874
1875 #
1876 # Support for a MIPS32 / MIPS64 style S-caches
1877 #
1878 config MIPS_CPU_SCACHE
1879         bool
1880         select BOARD_SCACHE
1881
1882 config R5000_CPU_SCACHE
1883         bool
1884         select BOARD_SCACHE
1885
1886 config RM7000_CPU_SCACHE
1887         bool
1888         select BOARD_SCACHE
1889
1890 config SIBYTE_DMA_PAGEOPS
1891         bool "Use DMA to clear/copy pages"
1892         depends on CPU_SB1
1893         help
1894           Instead of using the CPU to zero and copy pages, use a Data Mover
1895           channel.  These DMA channels are otherwise unused by the standard
1896           SiByte Linux port.  Seems to give a small performance benefit.
1897
1898 config CPU_HAS_PREFETCH
1899         bool
1900
1901 config CPU_GENERIC_DUMP_TLB
1902         bool
1903         default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
1904
1905 config CPU_R4K_FPU
1906         bool
1907         default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1908
1909 config CPU_R4K_CACHE_TLB
1910         bool
1911         default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1912
1913 choice
1914         prompt "MIPS MT options"
1915
1916 config MIPS_MT_DISABLED
1917         bool "Disable multithreading support."
1918         help
1919           Use this option if your workload can't take advantage of
1920           MIPS hardware multithreading support.  On systems that don't have
1921           the option of an MT-enabled processor this option will be the only
1922           option in this menu.
1923
1924 config MIPS_MT_SMP
1925         bool "Use 1 TC on each available VPE for SMP"
1926         depends on SYS_SUPPORTS_MULTITHREADING
1927         select CPU_MIPSR2_IRQ_VI
1928         select CPU_MIPSR2_IRQ_EI
1929         select MIPS_MT
1930         select NR_CPUS_DEFAULT_2
1931         select SMP
1932         select SYS_SUPPORTS_SCHED_SMT if SMP
1933         select SYS_SUPPORTS_SMP
1934         select SMP_UP
1935         select MIPS_PERF_SHARED_TC_COUNTERS
1936         help
1937           This is a kernel model which is known a VSMP but lately has been
1938           marketesed into SMVP.
1939           Virtual SMP uses the processor's VPEs  to implement virtual
1940           processors. In currently available configuration of the 34K processor
1941           this allows for a dual processor. Both processors will share the same
1942           primary caches; each will obtain the half of the TLB for it's own
1943           exclusive use. For a layman this model can be described as similar to
1944           what Intel calls Hyperthreading.
1945
1946           For further information see http://www.linux-mips.org/wiki/34K#VSMP
1947
1948 config MIPS_MT_SMTC
1949         bool "SMTC: Use all TCs on all VPEs for SMP"
1950         depends on CPU_MIPS32_R2
1951         #depends on CPU_MIPS64_R2               # once there is hardware ...
1952         depends on SYS_SUPPORTS_MULTITHREADING
1953         select CPU_MIPSR2_IRQ_VI
1954         select CPU_MIPSR2_IRQ_EI
1955         select MIPS_MT
1956         select NR_CPUS_DEFAULT_8
1957         select SMP
1958         select SYS_SUPPORTS_SMP
1959         select SMP_UP
1960         help
1961           This is a kernel model which is known a SMTC or lately has been
1962           marketesed into SMVP.
1963           is presenting the available TC's of the core as processors to Linux.
1964           On currently available 34K processors this means a Linux system will
1965           see up to 5 processors. The implementation of the SMTC kernel differs
1966           significantly from VSMP and cannot efficiently coexist in the same
1967           kernel binary so the choice between VSMP and SMTC is a compile time
1968           decision.
1969
1970           For further information see http://www.linux-mips.org/wiki/34K#SMTC
1971
1972 endchoice
1973
1974 config MIPS_MT
1975         bool
1976
1977 config SCHED_SMT
1978         bool "SMT (multithreading) scheduler support"
1979         depends on SYS_SUPPORTS_SCHED_SMT
1980         default n
1981         help
1982           SMT scheduler support improves the CPU scheduler's decision making
1983           when dealing with MIPS MT enabled cores at a cost of slightly
1984           increased overhead in some places. If unsure say N here.
1985
1986 config SYS_SUPPORTS_SCHED_SMT
1987         bool
1988
1989 config SYS_SUPPORTS_MULTITHREADING
1990         bool
1991
1992 config MIPS_MT_FPAFF
1993         bool "Dynamic FPU affinity for FP-intensive threads"
1994         default y
1995         depends on MIPS_MT_SMP || MIPS_MT_SMTC
1996
1997 config MIPS_VPE_LOADER
1998         bool "VPE loader support."
1999         depends on SYS_SUPPORTS_MULTITHREADING
2000         select CPU_MIPSR2_IRQ_VI
2001         select CPU_MIPSR2_IRQ_EI
2002         select MIPS_MT
2003         help
2004           Includes a loader for loading an elf relocatable object
2005           onto another VPE and running it.
2006
2007 config MIPS_MT_SMTC_IM_BACKSTOP
2008         bool "Use per-TC register bits as backstop for inhibited IM bits"
2009         depends on MIPS_MT_SMTC
2010         default n
2011         help
2012           To support multiple TC microthreads acting as "CPUs" within
2013           a VPE, VPE-wide interrupt mask bits must be specially manipulated
2014           during interrupt handling. To support legacy drivers and interrupt
2015           controller management code, SMTC has a "backstop" to track and
2016           if necessary restore the interrupt mask. This has some performance
2017           impact on interrupt service overhead.
2018
2019 config MIPS_MT_SMTC_IRQAFF
2020         bool "Support IRQ affinity API"
2021         depends on MIPS_MT_SMTC
2022         default n
2023         help
2024           Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
2025           for SMTC Linux kernel. Requires platform support, of which
2026           an example can be found in the MIPS kernel i8259 and Malta
2027           platform code.  Adds some overhead to interrupt dispatch, and
2028           should be used only if you know what you are doing.
2029
2030 config MIPS_VPE_LOADER_TOM
2031         bool "Load VPE program into memory hidden from linux"
2032         depends on MIPS_VPE_LOADER
2033         default y
2034         help
2035           The loader can use memory that is present but has been hidden from
2036           Linux using the kernel command line option "mem=xxMB". It's up to
2037           you to ensure the amount you put in the option and the space your
2038           program requires is less or equal to the amount physically present.
2039
2040 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
2041 config MIPS_VPE_APSP_API
2042         bool "Enable support for AP/SP API (RTLX)"
2043         depends on MIPS_VPE_LOADER
2044         help
2045
2046 config MIPS_CMP
2047         bool "MIPS CMP framework support"
2048         depends on SYS_SUPPORTS_MIPS_CMP
2049         select SYNC_R4K
2050         select SYS_SUPPORTS_SMP
2051         select SYS_SUPPORTS_SCHED_SMT if SMP
2052         select WEAK_ORDERING
2053         default n
2054         help
2055           This is a placeholder option for the GCMP work. It will need to
2056           be handled differently...
2057
2058 config SB1_PASS_1_WORKAROUNDS
2059         bool
2060         depends on CPU_SB1_PASS_1
2061         default y
2062
2063 config SB1_PASS_2_WORKAROUNDS
2064         bool
2065         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2066         default y
2067
2068 config SB1_PASS_2_1_WORKAROUNDS
2069         bool
2070         depends on CPU_SB1 && CPU_SB1_PASS_2
2071         default y
2072
2073 config 64BIT_PHYS_ADDR
2074         bool
2075
2076 config ARCH_PHYS_ADDR_T_64BIT
2077        def_bool 64BIT_PHYS_ADDR
2078
2079 config CPU_HAS_SMARTMIPS
2080         depends on SYS_SUPPORTS_SMARTMIPS
2081         bool "Support for the SmartMIPS ASE"
2082         help
2083           SmartMIPS is a extension of the MIPS32 architecture aimed at
2084           increased security at both hardware and software level for
2085           smartcards.  Enabling this option will allow proper use of the
2086           SmartMIPS instructions by Linux applications.  However a kernel with
2087           this option will not work on a MIPS core without SmartMIPS core.  If
2088           you don't know you probably don't have SmartMIPS and should say N
2089           here.
2090
2091 config CPU_HAS_WB
2092         bool
2093
2094 config XKS01
2095         bool
2096
2097 #
2098 # Vectored interrupt mode is an R2 feature
2099 #
2100 config CPU_MIPSR2_IRQ_VI
2101         bool
2102
2103 #
2104 # Extended interrupt mode is an R2 feature
2105 #
2106 config CPU_MIPSR2_IRQ_EI
2107         bool
2108
2109 config CPU_HAS_SYNC
2110         bool
2111         depends on !CPU_R3000
2112         default y
2113
2114 #
2115 # CPU non-features
2116 #
2117 config CPU_DADDI_WORKAROUNDS
2118         bool
2119
2120 config CPU_R4000_WORKAROUNDS
2121         bool
2122         select CPU_R4400_WORKAROUNDS
2123
2124 config CPU_R4400_WORKAROUNDS
2125         bool
2126
2127 #
2128 # - Highmem only makes sense for the 32-bit kernel.
2129 # - The current highmem code will only work properly on physically indexed
2130 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2131 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2132 #   moment we protect the user and offer the highmem option only on machines
2133 #   where it's known to be safe.  This will not offer highmem on a few systems
2134 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2135 #   indexed CPUs but we're playing safe.
2136 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2137 #   know they might have memory configurations that could make use of highmem
2138 #   support.
2139 #
2140 config HIGHMEM
2141         bool "High Memory Support"
2142         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2143
2144 config CPU_SUPPORTS_HIGHMEM
2145         bool
2146
2147 config SYS_SUPPORTS_HIGHMEM
2148         bool
2149
2150 config SYS_SUPPORTS_SMARTMIPS
2151         bool
2152
2153 config ARCH_FLATMEM_ENABLE
2154         def_bool y
2155         depends on !NUMA && !CPU_LOONGSON2
2156
2157 config ARCH_DISCONTIGMEM_ENABLE
2158         bool
2159         default y if SGI_IP27
2160         help
2161           Say Y to support efficient handling of discontiguous physical memory,
2162           for architectures which are either NUMA (Non-Uniform Memory Access)
2163           or have huge holes in the physical address space for other reasons.
2164           See <file:Documentation/vm/numa> for more.
2165
2166 config ARCH_SPARSEMEM_ENABLE
2167         bool
2168         select SPARSEMEM_STATIC
2169
2170 config NUMA
2171         bool "NUMA Support"
2172         depends on SYS_SUPPORTS_NUMA
2173         help
2174           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2175           Access).  This option improves performance on systems with more
2176           than two nodes; on two node systems it is generally better to
2177           leave it disabled; on single node systems disable this option
2178           disabled.
2179
2180 config SYS_SUPPORTS_NUMA
2181         bool
2182
2183 config NODES_SHIFT
2184         int
2185         default "6"
2186         depends on NEED_MULTIPLE_NODES
2187
2188 config HW_PERF_EVENTS
2189         bool "Enable hardware performance counter support for perf events"
2190         depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
2191         default y
2192         help
2193           Enable hardware performance counter support for perf events. If
2194           disabled, perf events will use software events only.
2195
2196 source "mm/Kconfig"
2197
2198 config SMP
2199         bool "Multi-Processing support"
2200         depends on SYS_SUPPORTS_SMP
2201         select IRQ_PER_CPU
2202         select USE_GENERIC_SMP_HELPERS
2203         help
2204           This enables support for systems with more than one CPU. If you have
2205           a system with only one CPU, like most personal computers, say N. If
2206           you have a system with more than one CPU, say Y.
2207
2208           If you say N here, the kernel will run on single and multiprocessor
2209           machines, but will use only one CPU of a multiprocessor machine. If
2210           you say Y here, the kernel will run on many, but not all,
2211           singleprocessor machines. On a singleprocessor machine, the kernel
2212           will run faster if you say N here.
2213
2214           People using multiprocessor machines who say Y here should also say
2215           Y to "Enhanced Real Time Clock Support", below.
2216
2217           See also the SMP-HOWTO available at
2218           <http://www.tldp.org/docs.html#howto>.
2219
2220           If you don't know what to do here, say N.
2221
2222 config SMP_UP
2223         bool
2224
2225 config SYS_SUPPORTS_MIPS_CMP
2226         bool
2227
2228 config SYS_SUPPORTS_SMP
2229         bool
2230
2231 config NR_CPUS_DEFAULT_1
2232         bool
2233
2234 config NR_CPUS_DEFAULT_2
2235         bool
2236
2237 config NR_CPUS_DEFAULT_4
2238         bool
2239
2240 config NR_CPUS_DEFAULT_8
2241         bool
2242
2243 config NR_CPUS_DEFAULT_16
2244         bool
2245
2246 config NR_CPUS_DEFAULT_32
2247         bool
2248
2249 config NR_CPUS_DEFAULT_64
2250         bool
2251
2252 config NR_CPUS
2253         int "Maximum number of CPUs (2-64)"
2254         range 1 64 if NR_CPUS_DEFAULT_1
2255         depends on SMP
2256         default "1" if NR_CPUS_DEFAULT_1
2257         default "2" if NR_CPUS_DEFAULT_2
2258         default "4" if NR_CPUS_DEFAULT_4
2259         default "8" if NR_CPUS_DEFAULT_8
2260         default "16" if NR_CPUS_DEFAULT_16
2261         default "32" if NR_CPUS_DEFAULT_32
2262         default "64" if NR_CPUS_DEFAULT_64
2263         help
2264           This allows you to specify the maximum number of CPUs which this
2265           kernel will support.  The maximum supported value is 32 for 32-bit
2266           kernel and 64 for 64-bit kernels; the minimum value which makes
2267           sense is 1 for Qemu (useful only for kernel debugging purposes)
2268           and 2 for all others.
2269
2270           This is purely to save memory - each supported CPU adds
2271           approximately eight kilobytes to the kernel image.  For best
2272           performance should round up your number of processors to the next
2273           power of two.
2274
2275 config MIPS_PERF_SHARED_TC_COUNTERS
2276         bool
2277
2278 #
2279 # Timer Interrupt Frequency Configuration
2280 #
2281
2282 choice
2283         prompt "Timer frequency"
2284         default HZ_250
2285         help
2286          Allows the configuration of the timer frequency.
2287
2288         config HZ_48
2289                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2290
2291         config HZ_100
2292                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2293
2294         config HZ_128
2295                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2296
2297         config HZ_250
2298                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2299
2300         config HZ_256
2301                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2302
2303         config HZ_1000
2304                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2305
2306         config HZ_1024
2307                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2308
2309 endchoice
2310
2311 config SYS_SUPPORTS_48HZ
2312         bool
2313
2314 config SYS_SUPPORTS_100HZ
2315         bool
2316
2317 config SYS_SUPPORTS_128HZ
2318         bool
2319
2320 config SYS_SUPPORTS_250HZ
2321         bool
2322
2323 config SYS_SUPPORTS_256HZ
2324         bool
2325
2326 config SYS_SUPPORTS_1000HZ
2327         bool
2328
2329 config SYS_SUPPORTS_1024HZ
2330         bool
2331
2332 config SYS_SUPPORTS_ARBIT_HZ
2333         bool
2334         default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2335                      !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2336                      !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2337                      !SYS_SUPPORTS_1024HZ
2338
2339 config HZ
2340         int
2341         default 48 if HZ_48
2342         default 100 if HZ_100
2343         default 128 if HZ_128
2344         default 250 if HZ_250
2345         default 256 if HZ_256
2346         default 1000 if HZ_1000
2347         default 1024 if HZ_1024
2348
2349 source "kernel/Kconfig.preempt"
2350
2351 config KEXEC
2352         bool "Kexec system call (EXPERIMENTAL)"
2353         depends on EXPERIMENTAL
2354         help
2355           kexec is a system call that implements the ability to shutdown your
2356           current kernel, and to start another kernel.  It is like a reboot
2357           but it is independent of the system firmware.   And like a reboot
2358           you can start any kernel with it, not just Linux.
2359
2360           The name comes from the similarity to the exec system call.
2361
2362           It is an ongoing process to be certain the hardware in a machine
2363           is properly shutdown, so do not be surprised if this code does not
2364           initially work for you.  It may help to enable device hotplugging
2365           support.  As of this writing the exact hardware interface is
2366           strongly in flux, so no good recommendation can be made.
2367
2368 config SECCOMP
2369         bool "Enable seccomp to safely compute untrusted bytecode"
2370         depends on PROC_FS
2371         default y
2372         help
2373           This kernel feature is useful for number crunching applications
2374           that may need to compute untrusted bytecode during their
2375           execution. By using pipes or other transports made available to
2376           the process as file descriptors supporting the read/write
2377           syscalls, it's possible to isolate those applications in
2378           their own address space using seccomp. Once seccomp is
2379           enabled via /proc/<pid>/seccomp, it cannot be disabled
2380           and the task is only allowed to execute a few safe syscalls
2381           defined by each seccomp mode.
2382
2383           If unsure, say Y. Only embedded should say N here.
2384
2385 config USE_OF
2386         bool
2387         select OF
2388         select OF_EARLY_FLATTREE
2389         select IRQ_DOMAIN
2390
2391 endmenu
2392
2393 config LOCKDEP_SUPPORT
2394         bool
2395         default y
2396
2397 config STACKTRACE_SUPPORT
2398         bool
2399         default y
2400
2401 source "init/Kconfig"
2402
2403 source "kernel/Kconfig.freezer"
2404
2405 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2406
2407 config HW_HAS_EISA
2408         bool
2409 config HW_HAS_PCI
2410         bool
2411
2412 config PCI
2413         bool "Support for PCI controller"
2414         depends on HW_HAS_PCI
2415         select PCI_DOMAINS
2416         select GENERIC_PCI_IOMAP
2417         select NO_GENERIC_PCI_IOPORT_MAP
2418         help
2419           Find out whether you have a PCI motherboard. PCI is the name of a
2420           bus system, i.e. the way the CPU talks to the other stuff inside
2421           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2422           say Y, otherwise N.
2423
2424 config PCI_DOMAINS
2425         bool
2426
2427 source "drivers/pci/Kconfig"
2428
2429 source "drivers/pci/pcie/Kconfig"
2430
2431 #
2432 # ISA support is now enabled via select.  Too many systems still have the one
2433 # or other ISA chip on the board that users don't know about so don't expect
2434 # users to choose the right thing ...
2435 #
2436 config ISA
2437         bool
2438
2439 config EISA
2440         bool "EISA support"
2441         depends on HW_HAS_EISA
2442         select ISA
2443         select GENERIC_ISA_DMA
2444         ---help---
2445           The Extended Industry Standard Architecture (EISA) bus was
2446           developed as an open alternative to the IBM MicroChannel bus.
2447
2448           The EISA bus provided some of the features of the IBM MicroChannel
2449           bus while maintaining backward compatibility with cards made for
2450           the older ISA bus.  The EISA bus saw limited use between 1988 and
2451           1995 when it was made obsolete by the PCI bus.
2452
2453           Say Y here if you are building a kernel for an EISA-based machine.
2454
2455           Otherwise, say N.
2456
2457 source "drivers/eisa/Kconfig"
2458
2459 config TC
2460         bool "TURBOchannel support"
2461         depends on MACH_DECSTATION
2462         help
2463           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2464           processors.  TURBOchannel programming specifications are available
2465           at:
2466           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2467           and:
2468           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2469           Linux driver support status is documented at:
2470           <http://www.linux-mips.org/wiki/DECstation>
2471
2472 config MMU
2473         bool
2474         default y
2475
2476 config I8253
2477         bool
2478         select CLKSRC_I8253
2479         select CLKEVT_I8253
2480         select MIPS_EXTERNAL_TIMER
2481
2482 config ZONE_DMA32
2483         bool
2484
2485 source "drivers/pcmcia/Kconfig"
2486
2487 source "drivers/pci/hotplug/Kconfig"
2488
2489 config RAPIDIO
2490         bool "RapidIO support"
2491         depends on PCI
2492         default n
2493         help
2494           If you say Y here, the kernel will include drivers and
2495           infrastructure code to support RapidIO interconnect devices.
2496
2497 source "drivers/rapidio/Kconfig"
2498
2499 endmenu
2500
2501 menu "Executable file formats"
2502
2503 source "fs/Kconfig.binfmt"
2504
2505 config TRAD_SIGNALS
2506         bool
2507
2508 config MIPS32_COMPAT
2509         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2510         depends on 64BIT
2511         help
2512           Select this option if you want Linux/MIPS 32-bit binary
2513           compatibility. Since all software available for Linux/MIPS is
2514           currently 32-bit you should say Y here.
2515
2516 config COMPAT
2517         bool
2518         depends on MIPS32_COMPAT
2519         select ARCH_WANT_OLD_COMPAT_IPC
2520         default y
2521
2522 config SYSVIPC_COMPAT
2523         bool
2524         depends on COMPAT && SYSVIPC
2525         default y
2526
2527 config MIPS32_O32
2528         bool "Kernel support for o32 binaries"
2529         depends on MIPS32_COMPAT
2530         help
2531           Select this option if you want to run o32 binaries.  These are pure
2532           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2533           existing binaries are in this format.
2534
2535           If unsure, say Y.
2536
2537 config MIPS32_N32
2538         bool "Kernel support for n32 binaries"
2539         depends on MIPS32_COMPAT
2540         help
2541           Select this option if you want to run n32 binaries.  These are
2542           64-bit binaries using 32-bit quantities for addressing and certain
2543           data that would normally be 64-bit.  They are used in special
2544           cases.
2545
2546           If unsure, say N.
2547
2548 config BINFMT_ELF32
2549         bool
2550         default y if MIPS32_O32 || MIPS32_N32
2551
2552 endmenu
2553
2554 menu "Power management options"
2555
2556 config ARCH_HIBERNATION_POSSIBLE
2557         def_bool y
2558         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2559
2560 config ARCH_SUSPEND_POSSIBLE
2561         def_bool y
2562         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2563
2564 source "kernel/power/Kconfig"
2565
2566 endmenu
2567
2568 source "arch/mips/kernel/cpufreq/Kconfig"
2569
2570 source "net/Kconfig"
2571
2572 source "drivers/Kconfig"
2573
2574 source "fs/Kconfig"
2575
2576 source "arch/mips/Kconfig.debug"
2577
2578 source "security/Kconfig"
2579
2580 source "crypto/Kconfig"
2581
2582 source "lib/Kconfig"