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