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