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