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