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