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