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