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