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