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