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