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