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