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