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