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