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