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