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