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