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