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