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