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