Merge branch '3.11-fixes' into mips-for-linux-next
[linux-2.6.git] / arch / mips / Kconfig
blobc2917906caaa8552133b199b3a79ce0ab17d4306
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 ARCH_HAVE_CUSTOM_GPIO_H
12         select HAVE_FUNCTION_TRACER
13         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
14         select HAVE_DYNAMIC_FTRACE
15         select HAVE_FTRACE_MCOUNT_RECORD
16         select HAVE_C_RECORDMCOUNT
17         select HAVE_FUNCTION_GRAPH_TRACER
18         select HAVE_KPROBES
19         select HAVE_KRETPROBES
20         select HAVE_DEBUG_KMEMLEAK
21         select ARCH_BINFMT_ELF_RANDOMIZE_PIE
22         select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
23         select RTC_LIB if !MACH_LOONGSON
24         select GENERIC_ATOMIC64 if !64BIT
25         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
26         select HAVE_DMA_ATTRS
27         select HAVE_DMA_API_DEBUG
28         select HAVE_GENERIC_HARDIRQS
29         select GENERIC_IRQ_PROBE
30         select GENERIC_IRQ_SHOW
31         select GENERIC_PCI_IOMAP
32         select HAVE_ARCH_JUMP_LABEL
33         select ARCH_WANT_IPC_PARSE_VERSION
34         select IRQ_FORCED_THREADING
35         select HAVE_MEMBLOCK
36         select HAVE_MEMBLOCK_NODE_MAP
37         select ARCH_DISCARD_MEMBLOCK
38         select GENERIC_SMP_IDLE_THREAD
39         select BUILDTIME_EXTABLE_SORT
40         select GENERIC_CLOCKEVENTS
41         select GENERIC_CMOS_UPDATE
42         select HAVE_MOD_ARCH_SPECIFIC
43         select VIRT_TO_BUS
44         select MODULES_USE_ELF_REL if MODULES
45         select MODULES_USE_ELF_RELA if MODULES && 64BIT
46         select CLONE_BACKWARDS
47         select HAVE_DEBUG_STACKOVERFLOW
49 menu "Machine selection"
51 choice
52         prompt "System type"
53         default SGI_IP22
55 config MIPS_ALCHEMY
56         bool "Alchemy processor based machines"
57         select 64BIT_PHYS_ADDR
58         select CEVT_R4K
59         select CSRC_R4K
60         select IRQ_CPU
61         select SYS_HAS_CPU_MIPS32_R1
62         select SYS_SUPPORTS_32BIT_KERNEL
63         select SYS_SUPPORTS_APM_EMULATION
64         select ARCH_REQUIRE_GPIOLIB
65         select SYS_SUPPORTS_ZBOOT
66         select USB_ARCH_HAS_OHCI
67         select USB_ARCH_HAS_EHCI
69 config AR7
70         bool "Texas Instruments AR7"
71         select BOOT_ELF32
72         select DMA_NONCOHERENT
73         select CEVT_R4K
74         select CSRC_R4K
75         select IRQ_CPU
76         select NO_EXCEPT_FILL
77         select SWAP_IO_SPACE
78         select SYS_HAS_CPU_MIPS32_R1
79         select SYS_HAS_EARLY_PRINTK
80         select SYS_SUPPORTS_32BIT_KERNEL
81         select SYS_SUPPORTS_LITTLE_ENDIAN
82         select SYS_SUPPORTS_ZBOOT_UART16550
83         select ARCH_REQUIRE_GPIOLIB
84         select VLYNQ
85         select HAVE_CLK
86         help
87           Support for the Texas Instruments AR7 System-on-a-Chip
88           family: TNETD7100, 7200 and 7300.
90 config ATH79
91         bool "Atheros AR71XX/AR724X/AR913X based boards"
92         select ARCH_REQUIRE_GPIOLIB
93         select BOOT_RAW
94         select CEVT_R4K
95         select CSRC_R4K
96         select DMA_NONCOHERENT
97         select HAVE_CLK
98         select CLKDEV_LOOKUP
99         select IRQ_CPU
100         select MIPS_MACHINE
101         select SYS_HAS_CPU_MIPS32_R2
102         select SYS_HAS_EARLY_PRINTK
103         select SYS_SUPPORTS_32BIT_KERNEL
104         select SYS_SUPPORTS_BIG_ENDIAN
105         help
106           Support for the Atheros AR71XX/AR724X/AR913X SoCs.
108 config BCM47XX
109         bool "Broadcom BCM47XX based boards"
110         select ARCH_WANT_OPTIONAL_GPIOLIB
111         select BOOT_RAW
112         select CEVT_R4K
113         select CSRC_R4K
114         select DMA_NONCOHERENT
115         select FW_CFE
116         select HW_HAS_PCI
117         select IRQ_CPU
118         select SYS_HAS_CPU_MIPS32_R1
119         select NO_EXCEPT_FILL
120         select SYS_SUPPORTS_32BIT_KERNEL
121         select SYS_SUPPORTS_LITTLE_ENDIAN
122         select SYS_HAS_EARLY_PRINTK
123         help
124          Support for BCM47XX based boards
126 config BCM63XX
127         bool "Broadcom BCM63XX based boards"
128         select BOOT_RAW
129         select CEVT_R4K
130         select CSRC_R4K
131         select DMA_NONCOHERENT
132         select IRQ_CPU
133         select SYS_HAS_CPU_MIPS32_R1
134         select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348
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         help
142          Support for BCM63XX based boards
144 config MIPS_COBALT
145         bool "Cobalt Server"
146         select CEVT_R4K
147         select CSRC_R4K
148         select CEVT_GT641XX
149         select DMA_NONCOHERENT
150         select HW_HAS_PCI
151         select I8253
152         select I8259
153         select IRQ_CPU
154         select IRQ_GT641XX
155         select PCI_GT64XXX_PCI0
156         select PCI
157         select SYS_HAS_CPU_NEVADA
158         select SYS_HAS_EARLY_PRINTK
159         select SYS_SUPPORTS_32BIT_KERNEL
160         select SYS_SUPPORTS_64BIT_KERNEL
161         select SYS_SUPPORTS_LITTLE_ENDIAN
163 config MACH_DECSTATION
164         bool "DECstations"
165         select BOOT_ELF32
166         select CEVT_DS1287
167         select CEVT_R4K
168         select CSRC_IOASIC
169         select CSRC_R4K
170         select CPU_DADDI_WORKAROUNDS if 64BIT
171         select CPU_R4000_WORKAROUNDS if 64BIT
172         select CPU_R4400_WORKAROUNDS if 64BIT
173         select DMA_NONCOHERENT
174         select NO_IOPORT
175         select IRQ_CPU
176         select SYS_HAS_CPU_R3000
177         select SYS_HAS_CPU_R4X00
178         select SYS_SUPPORTS_32BIT_KERNEL
179         select SYS_SUPPORTS_64BIT_KERNEL
180         select SYS_SUPPORTS_LITTLE_ENDIAN
181         select SYS_SUPPORTS_128HZ
182         select SYS_SUPPORTS_256HZ
183         select SYS_SUPPORTS_1024HZ
184         help
185           This enables support for DEC's MIPS based workstations.  For details
186           see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
187           DECstation porting pages on <http://decstation.unix-ag.org/>.
189           If you have one of the following DECstation Models you definitely
190           want to choose R4xx0 for the CPU Type:
192                 DECstation 5000/50
193                 DECstation 5000/150
194                 DECstation 5000/260
195                 DECsystem 5900/260
197           otherwise choose R3000.
199 config MACH_JAZZ
200         bool "Jazz family of machines"
201         select FW_ARC
202         select FW_ARC32
203         select ARCH_MAY_HAVE_PC_FDC
204         select CEVT_R4K
205         select CSRC_R4K
206         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
207         select GENERIC_ISA_DMA
208         select HAVE_PCSPKR_PLATFORM
209         select IRQ_CPU
210         select I8253
211         select I8259
212         select ISA
213         select SYS_HAS_CPU_R4X00
214         select SYS_SUPPORTS_32BIT_KERNEL
215         select SYS_SUPPORTS_64BIT_KERNEL
216         select SYS_SUPPORTS_100HZ
217         help
218          This a family of machines based on the MIPS R4030 chipset which was
219          used by several vendors to build RISC/os and Windows NT workstations.
220          Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
221          Olivetti M700-10 workstations.
223 config MACH_JZ4740
224         bool "Ingenic JZ4740 based machines"
225         select SYS_HAS_CPU_MIPS32_R1
226         select SYS_SUPPORTS_32BIT_KERNEL
227         select SYS_SUPPORTS_LITTLE_ENDIAN
228         select SYS_SUPPORTS_ZBOOT_UART16550
229         select DMA_NONCOHERENT
230         select IRQ_CPU
231         select ARCH_REQUIRE_GPIOLIB
232         select SYS_HAS_EARLY_PRINTK
233         select HAVE_PWM
234         select HAVE_CLK
235         select GENERIC_IRQ_CHIP
237 config LANTIQ
238         bool "Lantiq based platforms"
239         select DMA_NONCOHERENT
240         select IRQ_CPU
241         select CEVT_R4K
242         select CSRC_R4K
243         select SYS_HAS_CPU_MIPS32_R1
244         select SYS_HAS_CPU_MIPS32_R2
245         select SYS_SUPPORTS_BIG_ENDIAN
246         select SYS_SUPPORTS_32BIT_KERNEL
247         select SYS_SUPPORTS_MULTITHREADING
248         select SYS_HAS_EARLY_PRINTK
249         select ARCH_REQUIRE_GPIOLIB
250         select SWAP_IO_SPACE
251         select BOOT_RAW
252         select HAVE_MACH_CLKDEV
253         select CLKDEV_LOOKUP
254         select USE_OF
255         select PINCTRL
256         select PINCTRL_LANTIQ
258 config LASAT
259         bool "LASAT Networks platforms"
260         select CEVT_R4K
261         select CSRC_R4K
262         select DMA_NONCOHERENT
263         select SYS_HAS_EARLY_PRINTK
264         select HW_HAS_PCI
265         select IRQ_CPU
266         select PCI_GT64XXX_PCI0
267         select MIPS_NILE4
268         select R5000_CPU_SCACHE
269         select SYS_HAS_CPU_R5000
270         select SYS_SUPPORTS_32BIT_KERNEL
271         select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
272         select SYS_SUPPORTS_LITTLE_ENDIAN
274 config MACH_LOONGSON
275         bool "Loongson family of machines"
276         select SYS_SUPPORTS_ZBOOT
277         help
278           This enables the support of Loongson family of machines.
280           Loongson is a family of general-purpose MIPS-compatible CPUs.
281           developed at Institute of Computing Technology (ICT),
282           Chinese Academy of Sciences (CAS) in the People's Republic
283           of China. The chief architect is Professor Weiwu Hu.
285 config MACH_LOONGSON1
286         bool "Loongson 1 family of machines"
287         select SYS_SUPPORTS_ZBOOT
288         help
289           This enables support for the Loongson 1 based machines.
291           Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
292           the ICT (Institute of Computing Technology) and the Chinese Academy
293           of Sciences.
295 config MIPS_MALTA
296         bool "MIPS Malta board"
297         select ARCH_MAY_HAVE_PC_FDC
298         select BOOT_ELF32
299         select BOOT_RAW
300         select CEVT_R4K
301         select CSRC_R4K
302         select CSRC_GIC
303         select DMA_NONCOHERENT
304         select GENERIC_ISA_DMA
305         select HAVE_PCSPKR_PLATFORM
306         select IRQ_CPU
307         select IRQ_GIC
308         select HW_HAS_PCI
309         select I8253
310         select I8259
311         select MIPS_BONITO64
312         select MIPS_CPU_SCACHE
313         select PCI_GT64XXX_PCI0
314         select MIPS_MSC
315         select SWAP_IO_SPACE
316         select SYS_HAS_CPU_MIPS32_R1
317         select SYS_HAS_CPU_MIPS32_R2
318         select SYS_HAS_CPU_MIPS64_R1
319         select SYS_HAS_CPU_MIPS64_R2
320         select SYS_HAS_CPU_NEVADA
321         select SYS_HAS_CPU_RM7000
322         select SYS_HAS_EARLY_PRINTK
323         select SYS_SUPPORTS_32BIT_KERNEL
324         select SYS_SUPPORTS_64BIT_KERNEL
325         select SYS_SUPPORTS_BIG_ENDIAN
326         select SYS_SUPPORTS_LITTLE_ENDIAN
327         select SYS_SUPPORTS_MIPS_CMP
328         select SYS_SUPPORTS_MULTITHREADING
329         select SYS_SUPPORTS_SMARTMIPS
330         select SYS_SUPPORTS_ZBOOT
331         help
332           This enables support for the MIPS Technologies Malta evaluation
333           board.
335 config MIPS_SEAD3
336         bool "MIPS SEAD3 board"
337         select BOOT_ELF32
338         select BOOT_RAW
339         select CEVT_R4K
340         select CSRC_R4K
341         select CSRC_GIC
342         select CPU_MIPSR2_IRQ_VI
343         select CPU_MIPSR2_IRQ_EI
344         select DMA_NONCOHERENT
345         select IRQ_CPU
346         select IRQ_GIC
347         select MIPS_MSC
348         select SYS_HAS_CPU_MIPS32_R1
349         select SYS_HAS_CPU_MIPS32_R2
350         select SYS_HAS_CPU_MIPS64_R1
351         select SYS_HAS_EARLY_PRINTK
352         select SYS_SUPPORTS_32BIT_KERNEL
353         select SYS_SUPPORTS_64BIT_KERNEL
354         select SYS_SUPPORTS_BIG_ENDIAN
355         select SYS_SUPPORTS_LITTLE_ENDIAN
356         select SYS_SUPPORTS_SMARTMIPS
357         select SYS_SUPPORTS_MICROMIPS
358         select USB_ARCH_HAS_EHCI
359         select USB_EHCI_BIG_ENDIAN_DESC
360         select USB_EHCI_BIG_ENDIAN_MMIO
361         select USE_OF
362         help
363           This enables support for the MIPS Technologies SEAD3 evaluation
364           board.
366 config NEC_MARKEINS
367         bool "NEC EMMA2RH Mark-eins board"
368         select SOC_EMMA2RH
369         select HW_HAS_PCI
370         help
371           This enables support for the NEC Electronics Mark-eins boards.
373 config MACH_VR41XX
374         bool "NEC VR4100 series based machines"
375         select CEVT_R4K
376         select CSRC_R4K
377         select SYS_HAS_CPU_VR41XX
378         select ARCH_REQUIRE_GPIOLIB
380 config NXP_STB220
381         bool "NXP STB220 board"
382         select SOC_PNX833X
383         help
384          Support for NXP Semiconductors STB220 Development Board.
386 config NXP_STB225
387         bool "NXP 225 board"
388         select SOC_PNX833X
389         select SOC_PNX8335
390         help
391          Support for NXP Semiconductors STB225 Development Board.
393 config PMC_MSP
394         bool "PMC-Sierra MSP chipsets"
395         select CEVT_R4K
396         select CSRC_R4K
397         select DMA_NONCOHERENT
398         select SWAP_IO_SPACE
399         select NO_EXCEPT_FILL
400         select BOOT_RAW
401         select SYS_HAS_CPU_MIPS32_R1
402         select SYS_HAS_CPU_MIPS32_R2
403         select SYS_SUPPORTS_32BIT_KERNEL
404         select SYS_SUPPORTS_BIG_ENDIAN
405         select IRQ_CPU
406         select SERIAL_8250
407         select SERIAL_8250_CONSOLE
408         select USB_EHCI_BIG_ENDIAN_MMIO
409         select USB_EHCI_BIG_ENDIAN_DESC
410         help
411           This adds support for the PMC-Sierra family of Multi-Service
412           Processor System-On-A-Chips.  These parts include a number
413           of integrated peripherals, interfaces and DSPs in addition to
414           a variety of MIPS cores.
416 config POWERTV
417         bool "Cisco PowerTV"
418         select BOOT_ELF32
419         select CEVT_R4K
420         select CPU_MIPSR2_IRQ_VI
421         select CPU_MIPSR2_IRQ_EI
422         select CSRC_POWERTV
423         select DMA_NONCOHERENT
424         select HW_HAS_PCI
425         select SYS_HAS_CPU_MIPS32_R2
426         select SYS_SUPPORTS_32BIT_KERNEL
427         select SYS_SUPPORTS_BIG_ENDIAN
428         select SYS_SUPPORTS_HIGHMEM
429         select USB_OHCI_LITTLE_ENDIAN
430         help
431           This enables support for the Cisco PowerTV Platform.
433 config RALINK
434         bool "Ralink based machines"
435         select CEVT_R4K
436         select CSRC_R4K
437         select BOOT_RAW
438         select DMA_NONCOHERENT
439         select IRQ_CPU
440         select USE_OF
441         select SYS_HAS_CPU_MIPS32_R1
442         select SYS_HAS_CPU_MIPS32_R2
443         select SYS_SUPPORTS_32BIT_KERNEL
444         select SYS_SUPPORTS_LITTLE_ENDIAN
445         select SYS_HAS_EARLY_PRINTK
446         select HAVE_MACH_CLKDEV
447         select CLKDEV_LOOKUP
448         select ARCH_HAS_RESET_CONTROLLER
449         select RESET_CONTROLLER
451 config SGI_IP22
452         bool "SGI IP22 (Indy/Indigo2)"
453         select FW_ARC
454         select FW_ARC32
455         select BOOT_ELF32
456         select CEVT_R4K
457         select CSRC_R4K
458         select DEFAULT_SGI_PARTITION
459         select DMA_NONCOHERENT
460         select HW_HAS_EISA
461         select I8253
462         select I8259
463         select IP22_CPU_SCACHE
464         select IRQ_CPU
465         select GENERIC_ISA_DMA_SUPPORT_BROKEN
466         select SGI_HAS_I8042
467         select SGI_HAS_INDYDOG
468         select SGI_HAS_HAL2
469         select SGI_HAS_SEEQ
470         select SGI_HAS_WD93
471         select SGI_HAS_ZILOG
472         select SWAP_IO_SPACE
473         select SYS_HAS_CPU_R4X00
474         select SYS_HAS_CPU_R5000
475         #
476         # Disable EARLY_PRINTK for now since it leads to overwritten prom
477         # memory during early boot on some machines.
478         #
479         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
480         # for a more details discussion
481         #
482         # select SYS_HAS_EARLY_PRINTK
483         select SYS_SUPPORTS_32BIT_KERNEL
484         select SYS_SUPPORTS_64BIT_KERNEL
485         select SYS_SUPPORTS_BIG_ENDIAN
486         help
487           This are the SGI Indy, Challenge S and Indigo2, as well as certain
488           OEM variants like the Tandem CMN B006S. To compile a Linux kernel
489           that runs on these, say Y here.
491 config SGI_IP27
492         bool "SGI IP27 (Origin200/2000)"
493         select FW_ARC
494         select FW_ARC64
495         select BOOT_ELF64
496         select DEFAULT_SGI_PARTITION
497         select DMA_COHERENT
498         select SYS_HAS_EARLY_PRINTK
499         select HW_HAS_PCI
500         select NR_CPUS_DEFAULT_64
501         select SYS_HAS_CPU_R10000
502         select SYS_SUPPORTS_64BIT_KERNEL
503         select SYS_SUPPORTS_BIG_ENDIAN
504         select SYS_SUPPORTS_NUMA
505         select SYS_SUPPORTS_SMP
506         help
507           This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
508           workstations.  To compile a Linux kernel that runs on these, say Y
509           here.
511 config SGI_IP28
512         bool "SGI IP28 (Indigo2 R10k)"
513         select FW_ARC
514         select FW_ARC64
515         select BOOT_ELF64
516         select CEVT_R4K
517         select CSRC_R4K
518         select DEFAULT_SGI_PARTITION
519         select DMA_NONCOHERENT
520         select GENERIC_ISA_DMA_SUPPORT_BROKEN
521         select IRQ_CPU
522         select HW_HAS_EISA
523         select I8253
524         select I8259
525         select SGI_HAS_I8042
526         select SGI_HAS_INDYDOG
527         select SGI_HAS_HAL2
528         select SGI_HAS_SEEQ
529         select SGI_HAS_WD93
530         select SGI_HAS_ZILOG
531         select SWAP_IO_SPACE
532         select SYS_HAS_CPU_R10000
533         #
534         # Disable EARLY_PRINTK for now since it leads to overwritten prom
535         # memory during early boot on some machines.
536         #
537         # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
538         # for a more details discussion
539         #
540         # select SYS_HAS_EARLY_PRINTK
541         select SYS_SUPPORTS_64BIT_KERNEL
542         select SYS_SUPPORTS_BIG_ENDIAN
543       help
544         This is the SGI Indigo2 with R10000 processor.  To compile a Linux
545         kernel that runs on these, say Y here.
547 config SGI_IP32
548         bool "SGI IP32 (O2)"
549         select FW_ARC
550         select FW_ARC32
551         select BOOT_ELF32
552         select CEVT_R4K
553         select CSRC_R4K
554         select DMA_NONCOHERENT
555         select HW_HAS_PCI
556         select IRQ_CPU
557         select R5000_CPU_SCACHE
558         select RM7000_CPU_SCACHE
559         select SYS_HAS_CPU_R5000
560         select SYS_HAS_CPU_R10000 if BROKEN
561         select SYS_HAS_CPU_RM7000
562         select SYS_HAS_CPU_NEVADA
563         select SYS_SUPPORTS_64BIT_KERNEL
564         select SYS_SUPPORTS_BIG_ENDIAN
565         help
566           If you want this kernel to run on SGI O2 workstation, say Y here.
568 config SIBYTE_CRHINE
569         bool "Sibyte BCM91120C-CRhine"
570         select BOOT_ELF32
571         select DMA_COHERENT
572         select SIBYTE_BCM1120
573         select SWAP_IO_SPACE
574         select SYS_HAS_CPU_SB1
575         select SYS_SUPPORTS_BIG_ENDIAN
576         select SYS_SUPPORTS_LITTLE_ENDIAN
578 config SIBYTE_CARMEL
579         bool "Sibyte BCM91120x-Carmel"
580         select BOOT_ELF32
581         select DMA_COHERENT
582         select SIBYTE_BCM1120
583         select SWAP_IO_SPACE
584         select SYS_HAS_CPU_SB1
585         select SYS_SUPPORTS_BIG_ENDIAN
586         select SYS_SUPPORTS_LITTLE_ENDIAN
588 config SIBYTE_CRHONE
589         bool "Sibyte BCM91125C-CRhone"
590         select BOOT_ELF32
591         select DMA_COHERENT
592         select SIBYTE_BCM1125
593         select SWAP_IO_SPACE
594         select SYS_HAS_CPU_SB1
595         select SYS_SUPPORTS_BIG_ENDIAN
596         select SYS_SUPPORTS_HIGHMEM
597         select SYS_SUPPORTS_LITTLE_ENDIAN
599 config SIBYTE_RHONE
600         bool "Sibyte BCM91125E-Rhone"
601         select BOOT_ELF32
602         select DMA_COHERENT
603         select SIBYTE_BCM1125H
604         select SWAP_IO_SPACE
605         select SYS_HAS_CPU_SB1
606         select SYS_SUPPORTS_BIG_ENDIAN
607         select SYS_SUPPORTS_LITTLE_ENDIAN
609 config SIBYTE_SWARM
610         bool "Sibyte BCM91250A-SWARM"
611         select BOOT_ELF32
612         select DMA_COHERENT
613         select HAVE_PATA_PLATFORM
614         select SIBYTE_SB1250
615         select SWAP_IO_SPACE
616         select SYS_HAS_CPU_SB1
617         select SYS_SUPPORTS_BIG_ENDIAN
618         select SYS_SUPPORTS_HIGHMEM
619         select SYS_SUPPORTS_LITTLE_ENDIAN
620         select ZONE_DMA32 if 64BIT
622 config SIBYTE_LITTLESUR
623         bool "Sibyte BCM91250C2-LittleSur"
624         select BOOT_ELF32
625         select DMA_COHERENT
626         select HAVE_PATA_PLATFORM
627         select SIBYTE_SB1250
628         select SWAP_IO_SPACE
629         select SYS_HAS_CPU_SB1
630         select SYS_SUPPORTS_BIG_ENDIAN
631         select SYS_SUPPORTS_HIGHMEM
632         select SYS_SUPPORTS_LITTLE_ENDIAN
634 config SIBYTE_SENTOSA
635         bool "Sibyte BCM91250E-Sentosa"
636         select BOOT_ELF32
637         select DMA_COHERENT
638         select SIBYTE_SB1250
639         select SWAP_IO_SPACE
640         select SYS_HAS_CPU_SB1
641         select SYS_SUPPORTS_BIG_ENDIAN
642         select SYS_SUPPORTS_LITTLE_ENDIAN
644 config SIBYTE_BIGSUR
645         bool "Sibyte BCM91480B-BigSur"
646         select BOOT_ELF32
647         select DMA_COHERENT
648         select NR_CPUS_DEFAULT_4
649         select SIBYTE_BCM1x80
650         select SWAP_IO_SPACE
651         select SYS_HAS_CPU_SB1
652         select SYS_SUPPORTS_BIG_ENDIAN
653         select SYS_SUPPORTS_HIGHMEM
654         select SYS_SUPPORTS_LITTLE_ENDIAN
655         select ZONE_DMA32 if 64BIT
657 config SNI_RM
658         bool "SNI RM200/300/400"
659         select FW_ARC if CPU_LITTLE_ENDIAN
660         select FW_ARC32 if CPU_LITTLE_ENDIAN
661         select FW_SNIPROM if CPU_BIG_ENDIAN
662         select ARCH_MAY_HAVE_PC_FDC
663         select BOOT_ELF32
664         select CEVT_R4K
665         select CSRC_R4K
666         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
667         select DMA_NONCOHERENT
668         select GENERIC_ISA_DMA
669         select HAVE_PCSPKR_PLATFORM
670         select HW_HAS_EISA
671         select HW_HAS_PCI
672         select IRQ_CPU
673         select I8253
674         select I8259
675         select ISA
676         select SWAP_IO_SPACE if CPU_BIG_ENDIAN
677         select SYS_HAS_CPU_R4X00
678         select SYS_HAS_CPU_R5000
679         select SYS_HAS_CPU_R10000
680         select R5000_CPU_SCACHE
681         select SYS_HAS_EARLY_PRINTK
682         select SYS_SUPPORTS_32BIT_KERNEL
683         select SYS_SUPPORTS_64BIT_KERNEL
684         select SYS_SUPPORTS_BIG_ENDIAN
685         select SYS_SUPPORTS_HIGHMEM
686         select SYS_SUPPORTS_LITTLE_ENDIAN
687         help
688           The SNI RM200/300/400 are MIPS-based machines manufactured by
689           Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
690           Technology and now in turn merged with Fujitsu.  Say Y here to
691           support this machine type.
693 config MACH_TX39XX
694         bool "Toshiba TX39 series based machines"
696 config MACH_TX49XX
697         bool "Toshiba TX49 series based machines"
699 config MIKROTIK_RB532
700         bool "Mikrotik RB532 boards"
701         select CEVT_R4K
702         select CSRC_R4K
703         select DMA_NONCOHERENT
704         select HW_HAS_PCI
705         select IRQ_CPU
706         select SYS_HAS_CPU_MIPS32_R1
707         select SYS_SUPPORTS_32BIT_KERNEL
708         select SYS_SUPPORTS_LITTLE_ENDIAN
709         select SWAP_IO_SPACE
710         select BOOT_RAW
711         select ARCH_REQUIRE_GPIOLIB
712         help
713           Support the Mikrotik(tm) RouterBoard 532 series,
714           based on the IDT RC32434 SoC.
716 config CAVIUM_OCTEON_SOC
717         bool "Cavium Networks Octeon SoC based boards"
718         select CEVT_R4K
719         select 64BIT_PHYS_ADDR
720         select DMA_COHERENT
721         select SYS_SUPPORTS_64BIT_KERNEL
722         select SYS_SUPPORTS_BIG_ENDIAN
723         select EDAC_SUPPORT
724         select SYS_SUPPORTS_HOTPLUG_CPU
725         select SYS_HAS_EARLY_PRINTK
726         select SYS_HAS_CPU_CAVIUM_OCTEON
727         select SWAP_IO_SPACE
728         select HW_HAS_PCI
729         select ARCH_SUPPORTS_MSI
730         select ZONE_DMA32
731         select USB_ARCH_HAS_OHCI
732         select USB_ARCH_HAS_EHCI
733         select HOLES_IN_ZONE
734         select ARCH_REQUIRE_GPIOLIB
735         help
736           This option supports all of the Octeon reference boards from Cavium
737           Networks. It builds a kernel that dynamically determines the Octeon
738           CPU type and supports all known board reference implementations.
739           Some of the supported boards are:
740                 EBT3000
741                 EBH3000
742                 EBH3100
743                 Thunder
744                 Kodama
745                 Hikari
746           Say Y here for most Octeon reference boards.
748 config NLM_XLR_BOARD
749         bool "Netlogic XLR/XLS based systems"
750         select BOOT_ELF32
751         select NLM_COMMON
752         select SYS_HAS_CPU_XLR
753         select SYS_SUPPORTS_SMP
754         select HW_HAS_PCI
755         select SWAP_IO_SPACE
756         select SYS_SUPPORTS_32BIT_KERNEL
757         select SYS_SUPPORTS_64BIT_KERNEL
758         select 64BIT_PHYS_ADDR
759         select SYS_SUPPORTS_BIG_ENDIAN
760         select SYS_SUPPORTS_HIGHMEM
761         select DMA_COHERENT
762         select NR_CPUS_DEFAULT_32
763         select CEVT_R4K
764         select CSRC_R4K
765         select IRQ_CPU
766         select ARCH_SUPPORTS_MSI
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.
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.
806 endchoice
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"
828 endmenu
830 config RWSEM_GENERIC_SPINLOCK
831         bool
832         default y
834 config RWSEM_XCHGADD_ALGORITHM
835         bool
837 config ARCH_HAS_ILOG2_U32
838         bool
839         default n
841 config ARCH_HAS_ILOG2_U64
842         bool
843         default n
845 config GENERIC_HWEIGHT
846         bool
847         default y
849 config GENERIC_CALIBRATE_DELAY
850         bool
851         default y
853 config SCHED_OMIT_FRAME_POINTER
854         bool
855         default y
858 # Select some configuration options automatically based on user selections.
860 config FW_ARC
861         bool
863 config ARCH_MAY_HAVE_PC_FDC
864         bool
866 config BOOT_RAW
867         bool
869 config CEVT_BCM1480
870         bool
872 config CEVT_DS1287
873         bool
875 config CEVT_GT641XX
876         bool
878 config CEVT_R4K
879         bool
881 config CEVT_GIC
882         bool
884 config CEVT_SB1250
885         bool
887 config CEVT_TXX9
888         bool
890 config CSRC_BCM1480
891         bool
893 config CSRC_IOASIC
894         bool
896 config CSRC_POWERTV
897         bool
899 config CSRC_R4K
900         bool
902 config CSRC_GIC
903         bool
905 config CSRC_SB1250
906         bool
908 config GPIO_TXX9
909         select ARCH_REQUIRE_GPIOLIB
910         bool
912 config FW_CFE
913         bool
915 config ARCH_DMA_ADDR_T_64BIT
916         def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
918 config DMA_COHERENT
919         bool
921 config DMA_NONCOHERENT
922         bool
923         select NEED_DMA_MAP_STATE
925 config NEED_DMA_MAP_STATE
926         bool
928 config SYS_HAS_EARLY_PRINTK
929         bool
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.
941 config SYS_SUPPORTS_HOTPLUG_CPU
942         bool
944 config I8259
945         bool
947 config MIPS_BONITO64
948         bool
950 config MIPS_MSC
951         bool
953 config MIPS_NILE4
954         bool
956 config SYNC_R4K
957         bool
959 config MIPS_MACHINE
960         def_bool n
962 config NO_IOPORT
963         def_bool n
965 config GENERIC_ISA_DMA
966         bool
967         select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
968         select ISA_DMA_API
970 config GENERIC_ISA_DMA_SUPPORT_BROKEN
971         bool
972         select GENERIC_ISA_DMA
974 config ISA_DMA_API
975         bool
977 config HOLES_IN_ZONE
978         bool
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.
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.
994 config CPU_BIG_ENDIAN
995         bool "Big endian"
996         depends on SYS_SUPPORTS_BIG_ENDIAN
998 config CPU_LITTLE_ENDIAN
999         bool "Little endian"
1000         depends on SYS_SUPPORTS_LITTLE_ENDIAN
1002 endchoice
1004 config EXPORT_UASM
1005         bool
1007 config SYS_SUPPORTS_APM_EMULATION
1008         bool
1010 config SYS_SUPPORTS_BIG_ENDIAN
1011         bool
1013 config SYS_SUPPORTS_LITTLE_ENDIAN
1014         bool
1016 config SYS_SUPPORTS_HUGETLBFS
1017         bool
1018         depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1019         default y
1021 config MIPS_HUGE_TLB_SUPPORT
1022         def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1024 config IRQ_CPU
1025         bool
1027 config IRQ_CPU_RM7K
1028         bool
1030 config IRQ_MSP_SLP
1031         bool
1033 config IRQ_MSP_CIC
1034         bool
1036 config IRQ_TXX9
1037         bool
1039 config IRQ_GT641XX
1040         bool
1042 config IRQ_GIC
1043         bool
1045 config PCI_GT64XXX_PCI0
1046         bool
1048 config NO_EXCEPT_FILL
1049         bool
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
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
1075 config SOC_PNX8335
1076         bool
1077         select SOC_PNX833X
1079 config SWAP_IO_SPACE
1080         bool
1082 config SGI_HAS_INDYDOG
1083         bool
1085 config SGI_HAS_HAL2
1086         bool
1088 config SGI_HAS_SEEQ
1089         bool
1091 config SGI_HAS_WD93
1092         bool
1094 config SGI_HAS_ZILOG
1095         bool
1097 config SGI_HAS_I8042
1098         bool
1100 config DEFAULT_SGI_PARTITION
1101         bool
1103 config FW_ARC32
1104         bool
1106 config FW_SNIPROM
1107         bool
1109 config BOOT_ELF32
1110         bool
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"
1119 config HAVE_STD_PC_SERIAL_PORT
1120         bool
1122 config ARC_CONSOLE
1123         bool "ARC console support"
1124         depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1126 config ARC_MEMORY
1127         bool
1128         depends on MACH_JAZZ || SNI_RM || SGI_IP32
1129         default y
1131 config ARC_PROMLIB
1132         bool
1133         depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1134         default y
1136 config FW_ARC64
1137         bool
1139 config BOOT_ELF64
1140         bool
1142 menu "CPU selection"
1144 choice
1145         prompt "CPU type"
1146         default CPU_R4X00
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.
1156           It has an internal FPGA northbridge, which is compatible to
1157           bonito64.
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.
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.
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.
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.
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.
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.
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.
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.
1259 config CPU_TX39XX
1260         bool "R39XX"
1261         depends on SYS_HAS_CPU_TX39XX
1262         select CPU_SUPPORTS_32BIT_KERNEL
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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.
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
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
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.
1402 config CPU_BMIPS3300
1403         bool "BMIPS3300"
1404         depends on SYS_HAS_CPU_BMIPS3300
1405         select CPU_BMIPS
1406         help
1407           Broadcom BMIPS3300 processors.
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.
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.
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.
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.
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
1464 if CPU_LOONGSON2F
1465 config CPU_NOP_WORKAROUNDS
1466         bool
1468 config CPU_JUMP_WORKAROUNDS
1469         bool
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.
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.
1488           If unsure, please say Y.
1489 endif # CPU_LOONGSON2F
1491 config SYS_SUPPORTS_ZBOOT
1492         bool
1493         select HAVE_KERNEL_GZIP
1494         select HAVE_KERNEL_BZIP2
1495         select HAVE_KERNEL_LZMA
1496         select HAVE_KERNEL_LZO
1498 config SYS_SUPPORTS_ZBOOT_UART16550
1499         bool
1500         select SYS_SUPPORTS_ZBOOT
1502 config CPU_LOONGSON2
1503         bool
1504         select CPU_SUPPORTS_32BIT_KERNEL
1505         select CPU_SUPPORTS_64BIT_KERNEL
1506         select CPU_SUPPORTS_HIGHMEM
1507         select CPU_SUPPORTS_HUGEPAGES
1509 config CPU_LOONGSON1
1510         bool
1511         select CPU_MIPS32
1512         select CPU_MIPSR2
1513         select CPU_HAS_PREFETCH
1514         select CPU_SUPPORTS_32BIT_KERNEL
1515         select CPU_SUPPORTS_HIGHMEM
1517 config CPU_BMIPS
1518         bool
1519         select CPU_MIPS32
1520         select CPU_SUPPORTS_32BIT_KERNEL
1521         select DMA_NONCOHERENT
1522         select IRQ_CPU
1523         select SWAP_IO_SPACE
1524         select WEAK_ORDERING
1526 config SYS_HAS_CPU_LOONGSON2E
1527         bool
1529 config SYS_HAS_CPU_LOONGSON2F
1530         bool
1531         select CPU_SUPPORTS_CPUFREQ
1532         select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1533         select CPU_SUPPORTS_UNCACHED_ACCELERATED
1535 config SYS_HAS_CPU_LOONGSON1B
1536         bool
1538 config SYS_HAS_CPU_MIPS32_R1
1539         bool
1541 config SYS_HAS_CPU_MIPS32_R2
1542         bool
1544 config SYS_HAS_CPU_MIPS64_R1
1545         bool
1547 config SYS_HAS_CPU_MIPS64_R2
1548         bool
1550 config SYS_HAS_CPU_R3000
1551         bool
1553 config SYS_HAS_CPU_TX39XX
1554         bool
1556 config SYS_HAS_CPU_VR41XX
1557         bool
1559 config SYS_HAS_CPU_R4300
1560         bool
1562 config SYS_HAS_CPU_R4X00
1563         bool
1565 config SYS_HAS_CPU_TX49XX
1566         bool
1568 config SYS_HAS_CPU_R5000
1569         bool
1571 config SYS_HAS_CPU_R5432
1572         bool
1574 config SYS_HAS_CPU_R5500
1575         bool
1577 config SYS_HAS_CPU_R6000
1578         bool
1580 config SYS_HAS_CPU_NEVADA
1581         bool
1583 config SYS_HAS_CPU_R8000
1584         bool
1586 config SYS_HAS_CPU_R10000
1587         bool
1589 config SYS_HAS_CPU_RM7000
1590         bool
1592 config SYS_HAS_CPU_SB1
1593         bool
1595 config SYS_HAS_CPU_CAVIUM_OCTEON
1596         bool
1598 config SYS_HAS_CPU_BMIPS3300
1599         bool
1601 config SYS_HAS_CPU_BMIPS4350
1602         bool
1604 config SYS_HAS_CPU_BMIPS4380
1605         bool
1607 config SYS_HAS_CPU_BMIPS5000
1608         bool
1610 config SYS_HAS_CPU_XLR
1611         bool
1613 config SYS_HAS_CPU_XLP
1614         bool
1617 # CPU may reorder R->R, R->W, W->R, W->W
1618 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1620 config WEAK_ORDERING
1621         bool
1624 # CPU may reorder reads and writes beyond LL/SC
1625 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1627 config WEAK_REORDERING_BEYOND_LLSC
1628         bool
1629 endmenu
1632 # These two indicate any level of the MIPS32 and MIPS64 architecture
1634 config CPU_MIPS32
1635         bool
1636         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1638 config CPU_MIPS64
1639         bool
1640         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1643 # These two indicate the revision of the architecture, either Release 1 or Release 2
1645 config CPU_MIPSR1
1646         bool
1647         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1649 config CPU_MIPSR2
1650         bool
1651         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1653 config SYS_SUPPORTS_32BIT_KERNEL
1654         bool
1655 config SYS_SUPPORTS_64BIT_KERNEL
1656         bool
1657 config CPU_SUPPORTS_32BIT_KERNEL
1658         bool
1659 config CPU_SUPPORTS_64BIT_KERNEL
1660         bool
1661 config CPU_SUPPORTS_CPUFREQ
1662         bool
1663 config CPU_SUPPORTS_ADDRWINCFG
1664         bool
1665 config CPU_SUPPORTS_HUGEPAGES
1666         bool
1667 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1668         bool
1669 config MIPS_PGD_C0_CONTEXT
1670         bool
1671         default y if 64BIT && CPU_MIPSR2 && !CPU_XLP
1674 # Set to y for ptrace access to watch registers.
1676 config HARDWARE_WATCHPOINTS
1677        bool
1678        default y if CPU_MIPSR1 || CPU_MIPSR2
1680 menu "Kernel type"
1682 choice
1683         prompt "Kernel code model"
1684         help
1685           You should only select this option if you have a workload that
1686           actually benefits from 64-bit processing or if your machine has
1687           large memory.  You will only be presented a single option in this
1688           menu if your system does not support both 32-bit and 64-bit kernels.
1690 config 32BIT
1691         bool "32-bit kernel"
1692         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1693         select TRAD_SIGNALS
1694         help
1695           Select this option if you want to build a 32-bit kernel.
1696 config 64BIT
1697         bool "64-bit kernel"
1698         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1699         help
1700           Select this option if you want to build a 64-bit kernel.
1702 endchoice
1704 config KVM_GUEST
1705         bool "KVM Guest Kernel"
1706         depends on BROKEN_ON_SMP
1707         help
1708           Select this option if building a guest kernel for KVM (Trap & Emulate) mode
1710 config KVM_HOST_FREQ
1711         int "KVM Host Processor Frequency (MHz)"
1712         depends on KVM_GUEST
1713         default 500
1714         help
1715           Select this option if building a guest kernel for KVM to skip
1716           RTC emulation when determining guest CPU Frequency.  Instead, the guest
1717           processor frequency is automatically derived from the host frequency.
1719 choice
1720         prompt "Kernel page size"
1721         default PAGE_SIZE_4KB
1723 config PAGE_SIZE_4KB
1724         bool "4kB"
1725         depends on !CPU_LOONGSON2
1726         help
1727          This option select the standard 4kB Linux page size.  On some
1728          R3000-family processors this is the only available page size.  Using
1729          4kB page size will minimize memory consumption and is therefore
1730          recommended for low memory systems.
1732 config PAGE_SIZE_8KB
1733         bool "8kB"
1734         depends on CPU_R8000 || CPU_CAVIUM_OCTEON
1735         help
1736           Using 8kB page size will result in higher performance kernel at
1737           the price of higher memory consumption.  This option is available
1738           only on R8000 and cnMIPS processors.  Note that you will need a
1739           suitable Linux distribution to support this.
1741 config PAGE_SIZE_16KB
1742         bool "16kB"
1743         depends on !CPU_R3000 && !CPU_TX39XX
1744         help
1745           Using 16kB page size will result in higher performance kernel at
1746           the price of higher memory consumption.  This option is available on
1747           all non-R3000 family processors.  Note that you will need a suitable
1748           Linux distribution to support this.
1750 config PAGE_SIZE_32KB
1751         bool "32kB"
1752         depends on CPU_CAVIUM_OCTEON
1753         help
1754           Using 32kB page size will result in higher performance kernel at
1755           the price of higher memory consumption.  This option is available
1756           only on cnMIPS cores.  Note that you will need a suitable Linux
1757           distribution to support this.
1759 config PAGE_SIZE_64KB
1760         bool "64kB"
1761         depends on !CPU_R3000 && !CPU_TX39XX
1762         help
1763           Using 64kB page size will result in higher performance kernel at
1764           the price of higher memory consumption.  This option is available on
1765           all non-R3000 family processor.  Not that at the time of this
1766           writing this option is still high experimental.
1768 endchoice
1770 config FORCE_MAX_ZONEORDER
1771         int "Maximum zone order"
1772         range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB
1773         default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB
1774         range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB
1775         default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB
1776         range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB
1777         default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB
1778         range 11 64
1779         default "11"
1780         help
1781           The kernel memory allocator divides physically contiguous memory
1782           blocks into "zones", where each zone is a power of two number of
1783           pages.  This option selects the largest power of two that the kernel
1784           keeps in the memory allocator.  If you need to allocate very large
1785           blocks of physically contiguous memory, then you may need to
1786           increase this value.
1788           This config option is actually maximum order plus one. For example,
1789           a value of 11 means that the largest free memory block is 2^10 pages.
1791           The page size is not necessarily 4KB.  Keep this in mind
1792           when choosing a value for this option.
1794 config CEVT_GIC
1795         bool "Use GIC global counter for clock events"
1796         depends on IRQ_GIC && !(MIPS_SEAD3 || MIPS_MT_SMTC)
1797         help
1798           Use the GIC global counter for the clock events. The R4K clock
1799           event driver is always present, so if the platform ends up not
1800           detecting a GIC, it will fall back to the R4K timer for the
1801           generation of clock events.
1803 config BOARD_SCACHE
1804         bool
1806 config IP22_CPU_SCACHE
1807         bool
1808         select BOARD_SCACHE
1811 # Support for a MIPS32 / MIPS64 style S-caches
1813 config MIPS_CPU_SCACHE
1814         bool
1815         select BOARD_SCACHE
1817 config R5000_CPU_SCACHE
1818         bool
1819         select BOARD_SCACHE
1821 config RM7000_CPU_SCACHE
1822         bool
1823         select BOARD_SCACHE
1825 config SIBYTE_DMA_PAGEOPS
1826         bool "Use DMA to clear/copy pages"
1827         depends on CPU_SB1
1828         help
1829           Instead of using the CPU to zero and copy pages, use a Data Mover
1830           channel.  These DMA channels are otherwise unused by the standard
1831           SiByte Linux port.  Seems to give a small performance benefit.
1833 config CPU_HAS_PREFETCH
1834         bool
1836 config CPU_GENERIC_DUMP_TLB
1837         bool
1838         default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
1840 config CPU_R4K_FPU
1841         bool
1842         default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1844 config CPU_R4K_CACHE_TLB
1845         bool
1846         default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1848 choice
1849         prompt "MIPS MT options"
1851 config MIPS_MT_DISABLED
1852         bool "Disable multithreading support."
1853         help
1854           Use this option if your workload can't take advantage of
1855           MIPS hardware multithreading support.  On systems that don't have
1856           the option of an MT-enabled processor this option will be the only
1857           option in this menu.
1859 config MIPS_MT_SMP
1860         bool "Use 1 TC on each available VPE for SMP"
1861         depends on SYS_SUPPORTS_MULTITHREADING
1862         select CPU_MIPSR2_IRQ_VI
1863         select CPU_MIPSR2_IRQ_EI
1864         select MIPS_MT
1865         select SMP
1866         select SYS_SUPPORTS_SCHED_SMT if SMP
1867         select SYS_SUPPORTS_SMP
1868         select SMP_UP
1869         select MIPS_PERF_SHARED_TC_COUNTERS
1870         help
1871           This is a kernel model which is known a VSMP but lately has been
1872           marketesed into SMVP.
1873           Virtual SMP uses the processor's VPEs  to implement virtual
1874           processors. In currently available configuration of the 34K processor
1875           this allows for a dual processor. Both processors will share the same
1876           primary caches; each will obtain the half of the TLB for it's own
1877           exclusive use. For a layman this model can be described as similar to
1878           what Intel calls Hyperthreading.
1880           For further information see http://www.linux-mips.org/wiki/34K#VSMP
1882 config MIPS_MT_SMTC
1883         bool "SMTC: Use all TCs on all VPEs for SMP"
1884         depends on CPU_MIPS32_R2
1885         #depends on CPU_MIPS64_R2               # once there is hardware ...
1886         depends on SYS_SUPPORTS_MULTITHREADING
1887         select CPU_MIPSR2_IRQ_VI
1888         select CPU_MIPSR2_IRQ_EI
1889         select MIPS_MT
1890         select NR_CPUS_DEFAULT_8
1891         select SMP
1892         select SYS_SUPPORTS_SMP
1893         select SMP_UP
1894         help
1895           This is a kernel model which is known a SMTC or lately has been
1896           marketesed into SMVP.
1897           is presenting the available TC's of the core as processors to Linux.
1898           On currently available 34K processors this means a Linux system will
1899           see up to 5 processors. The implementation of the SMTC kernel differs
1900           significantly from VSMP and cannot efficiently coexist in the same
1901           kernel binary so the choice between VSMP and SMTC is a compile time
1902           decision.
1904           For further information see http://www.linux-mips.org/wiki/34K#SMTC
1906 endchoice
1908 config MIPS_MT
1909         bool
1911 config SCHED_SMT
1912         bool "SMT (multithreading) scheduler support"
1913         depends on SYS_SUPPORTS_SCHED_SMT
1914         default n
1915         help
1916           SMT scheduler support improves the CPU scheduler's decision making
1917           when dealing with MIPS MT enabled cores at a cost of slightly
1918           increased overhead in some places. If unsure say N here.
1920 config SYS_SUPPORTS_SCHED_SMT
1921         bool
1923 config SYS_SUPPORTS_MULTITHREADING
1924         bool
1926 config MIPS_MT_FPAFF
1927         bool "Dynamic FPU affinity for FP-intensive threads"
1928         default y
1929         depends on MIPS_MT_SMP || MIPS_MT_SMTC
1931 config MIPS_VPE_LOADER
1932         bool "VPE loader support."
1933         depends on SYS_SUPPORTS_MULTITHREADING && MODULES
1934         select CPU_MIPSR2_IRQ_VI
1935         select CPU_MIPSR2_IRQ_EI
1936         select MIPS_MT
1937         help
1938           Includes a loader for loading an elf relocatable object
1939           onto another VPE and running it.
1941 config MIPS_MT_SMTC_IM_BACKSTOP
1942         bool "Use per-TC register bits as backstop for inhibited IM bits"
1943         depends on MIPS_MT_SMTC
1944         default n
1945         help
1946           To support multiple TC microthreads acting as "CPUs" within
1947           a VPE, VPE-wide interrupt mask bits must be specially manipulated
1948           during interrupt handling. To support legacy drivers and interrupt
1949           controller management code, SMTC has a "backstop" to track and
1950           if necessary restore the interrupt mask. This has some performance
1951           impact on interrupt service overhead.
1953 config MIPS_MT_SMTC_IRQAFF
1954         bool "Support IRQ affinity API"
1955         depends on MIPS_MT_SMTC
1956         default n
1957         help
1958           Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1959           for SMTC Linux kernel. Requires platform support, of which
1960           an example can be found in the MIPS kernel i8259 and Malta
1961           platform code.  Adds some overhead to interrupt dispatch, and
1962           should be used only if you know what you are doing.
1964 config MIPS_VPE_LOADER_TOM
1965         bool "Load VPE program into memory hidden from linux"
1966         depends on MIPS_VPE_LOADER
1967         default y
1968         help
1969           The loader can use memory that is present but has been hidden from
1970           Linux using the kernel command line option "mem=xxMB". It's up to
1971           you to ensure the amount you put in the option and the space your
1972           program requires is less or equal to the amount physically present.
1974 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1975 config MIPS_VPE_APSP_API
1976         bool "Enable support for AP/SP API (RTLX)"
1977         depends on MIPS_VPE_LOADER
1978         help
1980 config MIPS_CMP
1981         bool "MIPS CMP framework support"
1982         depends on SYS_SUPPORTS_MIPS_CMP
1983         select SYNC_R4K
1984         select SYS_SUPPORTS_SMP
1985         select SYS_SUPPORTS_SCHED_SMT if SMP
1986         select WEAK_ORDERING
1987         default n
1988         help
1989           This is a placeholder option for the GCMP work. It will need to
1990           be handled differently...
1992 config SB1_PASS_1_WORKAROUNDS
1993         bool
1994         depends on CPU_SB1_PASS_1
1995         default y
1997 config SB1_PASS_2_WORKAROUNDS
1998         bool
1999         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2000         default y
2002 config SB1_PASS_2_1_WORKAROUNDS
2003         bool
2004         depends on CPU_SB1 && CPU_SB1_PASS_2
2005         default y
2008 config 64BIT_PHYS_ADDR
2009         bool
2011 config ARCH_PHYS_ADDR_T_64BIT
2012        def_bool 64BIT_PHYS_ADDR
2014 config CPU_HAS_SMARTMIPS
2015         depends on SYS_SUPPORTS_SMARTMIPS
2016         bool "Support for the SmartMIPS ASE"
2017         help
2018           SmartMIPS is a extension of the MIPS32 architecture aimed at
2019           increased security at both hardware and software level for
2020           smartcards.  Enabling this option will allow proper use of the
2021           SmartMIPS instructions by Linux applications.  However a kernel with
2022           this option will not work on a MIPS core without SmartMIPS core.  If
2023           you don't know you probably don't have SmartMIPS and should say N
2024           here.
2026 config CPU_MICROMIPS
2027         depends on SYS_SUPPORTS_MICROMIPS
2028         bool "Build kernel using microMIPS ISA"
2029         help
2030           When this option is enabled the kernel will be built using the
2031           microMIPS ISA
2033 config CPU_HAS_WB
2034         bool
2036 config XKS01
2037         bool
2040 # Vectored interrupt mode is an R2 feature
2042 config CPU_MIPSR2_IRQ_VI
2043         bool
2046 # Extended interrupt mode is an R2 feature
2048 config CPU_MIPSR2_IRQ_EI
2049         bool
2051 config CPU_HAS_SYNC
2052         bool
2053         depends on !CPU_R3000
2054         default y
2057 # CPU non-features
2059 config CPU_DADDI_WORKAROUNDS
2060         bool
2062 config CPU_R4000_WORKAROUNDS
2063         bool
2064         select CPU_R4400_WORKAROUNDS
2066 config CPU_R4400_WORKAROUNDS
2067         bool
2070 # - Highmem only makes sense for the 32-bit kernel.
2071 # - The current highmem code will only work properly on physically indexed
2072 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2073 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2074 #   moment we protect the user and offer the highmem option only on machines
2075 #   where it's known to be safe.  This will not offer highmem on a few systems
2076 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2077 #   indexed CPUs but we're playing safe.
2078 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2079 #   know they might have memory configurations that could make use of highmem
2080 #   support.
2082 config HIGHMEM
2083         bool "High Memory Support"
2084         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2086 config CPU_SUPPORTS_HIGHMEM
2087         bool
2089 config SYS_SUPPORTS_HIGHMEM
2090         bool
2092 config SYS_SUPPORTS_SMARTMIPS
2093         bool
2095 config SYS_SUPPORTS_MICROMIPS
2096         bool
2098 config ARCH_FLATMEM_ENABLE
2099         def_bool y
2100         depends on !NUMA && !CPU_LOONGSON2
2102 config ARCH_DISCONTIGMEM_ENABLE
2103         bool
2104         default y if SGI_IP27
2105         help
2106           Say Y to support efficient handling of discontiguous physical memory,
2107           for architectures which are either NUMA (Non-Uniform Memory Access)
2108           or have huge holes in the physical address space for other reasons.
2109           See <file:Documentation/vm/numa> for more.
2111 config ARCH_SPARSEMEM_ENABLE
2112         bool
2113         select SPARSEMEM_STATIC
2115 config NUMA
2116         bool "NUMA Support"
2117         depends on SYS_SUPPORTS_NUMA
2118         help
2119           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2120           Access).  This option improves performance on systems with more
2121           than two nodes; on two node systems it is generally better to
2122           leave it disabled; on single node systems disable this option
2123           disabled.
2125 config SYS_SUPPORTS_NUMA
2126         bool
2128 config NODES_SHIFT
2129         int
2130         default "6"
2131         depends on NEED_MULTIPLE_NODES
2133 config HW_PERF_EVENTS
2134         bool "Enable hardware performance counter support for perf events"
2135         depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
2136         default y
2137         help
2138           Enable hardware performance counter support for perf events. If
2139           disabled, perf events will use software events only.
2141 source "mm/Kconfig"
2143 config SMP
2144         bool "Multi-Processing support"
2145         depends on SYS_SUPPORTS_SMP
2146         select USE_GENERIC_SMP_HELPERS
2147         help
2148           This enables support for systems with more than one CPU. If you have
2149           a system with only one CPU, like most personal computers, say N. If
2150           you have a system with more than one CPU, say Y.
2152           If you say N here, the kernel will run on single and multiprocessor
2153           machines, but will use only one CPU of a multiprocessor machine. If
2154           you say Y here, the kernel will run on many, but not all,
2155           singleprocessor machines. On a singleprocessor machine, the kernel
2156           will run faster if you say N here.
2158           People using multiprocessor machines who say Y here should also say
2159           Y to "Enhanced Real Time Clock Support", below.
2161           See also the SMP-HOWTO available at
2162           <http://www.tldp.org/docs.html#howto>.
2164           If you don't know what to do here, say N.
2166 config SMP_UP
2167         bool
2169 config SYS_SUPPORTS_MIPS_CMP
2170         bool
2172 config SYS_SUPPORTS_SMP
2173         bool
2175 config NR_CPUS_DEFAULT_4
2176         bool
2178 config NR_CPUS_DEFAULT_8
2179         bool
2181 config NR_CPUS_DEFAULT_16
2182         bool
2184 config NR_CPUS_DEFAULT_32
2185         bool
2187 config NR_CPUS_DEFAULT_64
2188         bool
2190 config NR_CPUS
2191         int "Maximum number of CPUs (2-64)"
2192         range 2 64
2193         depends on SMP
2194         default "4" if NR_CPUS_DEFAULT_4
2195         default "8" if NR_CPUS_DEFAULT_8
2196         default "16" if NR_CPUS_DEFAULT_16
2197         default "32" if NR_CPUS_DEFAULT_32
2198         default "64" if NR_CPUS_DEFAULT_64
2199         help
2200           This allows you to specify the maximum number of CPUs which this
2201           kernel will support.  The maximum supported value is 32 for 32-bit
2202           kernel and 64 for 64-bit kernels; the minimum value which makes
2203           sense is 1 for Qemu (useful only for kernel debugging purposes)
2204           and 2 for all others.
2206           This is purely to save memory - each supported CPU adds
2207           approximately eight kilobytes to the kernel image.  For best
2208           performance should round up your number of processors to the next
2209           power of two.
2211 config MIPS_PERF_SHARED_TC_COUNTERS
2212         bool
2215 # Timer Interrupt Frequency Configuration
2218 choice
2219         prompt "Timer frequency"
2220         default HZ_250
2221         help
2222          Allows the configuration of the timer frequency.
2224         config HZ_48
2225                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2227         config HZ_100
2228                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2230         config HZ_128
2231                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2233         config HZ_250
2234                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2236         config HZ_256
2237                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2239         config HZ_1000
2240                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2242         config HZ_1024
2243                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2245 endchoice
2247 config SYS_SUPPORTS_48HZ
2248         bool
2250 config SYS_SUPPORTS_100HZ
2251         bool
2253 config SYS_SUPPORTS_128HZ
2254         bool
2256 config SYS_SUPPORTS_250HZ
2257         bool
2259 config SYS_SUPPORTS_256HZ
2260         bool
2262 config SYS_SUPPORTS_1000HZ
2263         bool
2265 config SYS_SUPPORTS_1024HZ
2266         bool
2268 config SYS_SUPPORTS_ARBIT_HZ
2269         bool
2270         default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2271                      !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2272                      !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2273                      !SYS_SUPPORTS_1024HZ
2275 config HZ
2276         int
2277         default 48 if HZ_48
2278         default 100 if HZ_100
2279         default 128 if HZ_128
2280         default 250 if HZ_250
2281         default 256 if HZ_256
2282         default 1000 if HZ_1000
2283         default 1024 if HZ_1024
2285 source "kernel/Kconfig.preempt"
2287 config KEXEC
2288         bool "Kexec system call"
2289         help
2290           kexec is a system call that implements the ability to shutdown your
2291           current kernel, and to start another kernel.  It is like a reboot
2292           but it is independent of the system firmware.   And like a reboot
2293           you can start any kernel with it, not just Linux.
2295           The name comes from the similarity to the exec system call.
2297           It is an ongoing process to be certain the hardware in a machine
2298           is properly shutdown, so do not be surprised if this code does not
2299           initially work for you.  It may help to enable device hotplugging
2300           support.  As of this writing the exact hardware interface is
2301           strongly in flux, so no good recommendation can be made.
2303 config CRASH_DUMP
2304           bool "Kernel crash dumps"
2305           help
2306           Generate crash dump after being started by kexec.
2307           This should be normally only set in special crash dump kernels
2308           which are loaded in the main kernel with kexec-tools into
2309           a specially reserved region and then later executed after
2310           a crash by kdump/kexec. The crash dump kernel must be compiled
2311           to a memory address not used by the main kernel or firmware using
2312           PHYSICAL_START.
2314 config PHYSICAL_START
2315           hex "Physical address where the kernel is loaded"
2316           default "0xffffffff84000000" if 64BIT
2317           default "0x84000000" if 32BIT
2318           depends on CRASH_DUMP
2319           help
2320           This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2321           If you plan to use kernel for capturing the crash dump change
2322           this value to start of the reserved region (the "X" value as
2323           specified in the "crashkernel=YM@XM" command line boot parameter
2324           passed to the panic-ed kernel).
2326 config SECCOMP
2327         bool "Enable seccomp to safely compute untrusted bytecode"
2328         depends on PROC_FS
2329         default y
2330         help
2331           This kernel feature is useful for number crunching applications
2332           that may need to compute untrusted bytecode during their
2333           execution. By using pipes or other transports made available to
2334           the process as file descriptors supporting the read/write
2335           syscalls, it's possible to isolate those applications in
2336           their own address space using seccomp. Once seccomp is
2337           enabled via /proc/<pid>/seccomp, it cannot be disabled
2338           and the task is only allowed to execute a few safe syscalls
2339           defined by each seccomp mode.
2341           If unsure, say Y. Only embedded should say N here.
2343 config CC_STACKPROTECTOR
2344         bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
2345         help
2346           This option turns on the -fstack-protector GCC feature. This
2347           feature puts, at the beginning of functions, a canary value on
2348           the stack just before the return address, and validates
2349           the value just before actually returning.  Stack based buffer
2350           overflows (that need to overwrite this return address) now also
2351           overwrite the canary, which gets detected and the attack is then
2352           neutralized via a kernel panic.
2354           This feature requires gcc version 4.2 or above.
2356 config USE_OF
2357         bool
2358         select OF
2359         select OF_EARLY_FLATTREE
2360         select IRQ_DOMAIN
2362 endmenu
2364 config LOCKDEP_SUPPORT
2365         bool
2366         default y
2368 config STACKTRACE_SUPPORT
2369         bool
2370         default y
2372 source "init/Kconfig"
2374 source "kernel/Kconfig.freezer"
2376 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2378 config HW_HAS_EISA
2379         bool
2380 config HW_HAS_PCI
2381         bool
2383 config PCI
2384         bool "Support for PCI controller"
2385         depends on HW_HAS_PCI
2386         select PCI_DOMAINS
2387         select NO_GENERIC_PCI_IOPORT_MAP
2388         help
2389           Find out whether you have a PCI motherboard. PCI is the name of a
2390           bus system, i.e. the way the CPU talks to the other stuff inside
2391           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2392           say Y, otherwise N.
2394 config PCI_DOMAINS
2395         bool
2397 source "drivers/pci/Kconfig"
2399 source "drivers/pci/pcie/Kconfig"
2402 # ISA support is now enabled via select.  Too many systems still have the one
2403 # or other ISA chip on the board that users don't know about so don't expect
2404 # users to choose the right thing ...
2406 config ISA
2407         bool
2409 config EISA
2410         bool "EISA support"
2411         depends on HW_HAS_EISA
2412         select ISA
2413         select GENERIC_ISA_DMA
2414         ---help---
2415           The Extended Industry Standard Architecture (EISA) bus was
2416           developed as an open alternative to the IBM MicroChannel bus.
2418           The EISA bus provided some of the features of the IBM MicroChannel
2419           bus while maintaining backward compatibility with cards made for
2420           the older ISA bus.  The EISA bus saw limited use between 1988 and
2421           1995 when it was made obsolete by the PCI bus.
2423           Say Y here if you are building a kernel for an EISA-based machine.
2425           Otherwise, say N.
2427 source "drivers/eisa/Kconfig"
2429 config TC
2430         bool "TURBOchannel support"
2431         depends on MACH_DECSTATION
2432         help
2433           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2434           processors.  TURBOchannel programming specifications are available
2435           at:
2436           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2437           and:
2438           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2439           Linux driver support status is documented at:
2440           <http://www.linux-mips.org/wiki/DECstation>
2442 config MMU
2443         bool
2444         default y
2446 config I8253
2447         bool
2448         select CLKSRC_I8253
2449         select CLKEVT_I8253
2450         select MIPS_EXTERNAL_TIMER
2452 config ZONE_DMA
2453         bool
2455 config ZONE_DMA32
2456         bool
2458 source "drivers/pcmcia/Kconfig"
2460 source "drivers/pci/hotplug/Kconfig"
2462 config RAPIDIO
2463         bool "RapidIO support"
2464         depends on PCI
2465         default n
2466         help
2467           If you say Y here, the kernel will include drivers and
2468           infrastructure code to support RapidIO interconnect devices.
2470 source "drivers/rapidio/Kconfig"
2472 endmenu
2474 menu "Executable file formats"
2476 source "fs/Kconfig.binfmt"
2478 config TRAD_SIGNALS
2479         bool
2481 config MIPS32_COMPAT
2482         bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2483         depends on 64BIT
2484         help
2485           Select this option if you want Linux/MIPS 32-bit binary
2486           compatibility. Since all software available for Linux/MIPS is
2487           currently 32-bit you should say Y here.
2489 config COMPAT
2490         bool
2491         depends on MIPS32_COMPAT
2492         select ARCH_WANT_OLD_COMPAT_IPC
2493         default y
2495 config SYSVIPC_COMPAT
2496         bool
2497         depends on COMPAT && SYSVIPC
2498         default y
2500 config MIPS32_O32
2501         bool "Kernel support for o32 binaries"
2502         depends on MIPS32_COMPAT
2503         help
2504           Select this option if you want to run o32 binaries.  These are pure
2505           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2506           existing binaries are in this format.
2508           If unsure, say Y.
2510 config MIPS32_N32
2511         bool "Kernel support for n32 binaries"
2512         depends on MIPS32_COMPAT
2513         help
2514           Select this option if you want to run n32 binaries.  These are
2515           64-bit binaries using 32-bit quantities for addressing and certain
2516           data that would normally be 64-bit.  They are used in special
2517           cases.
2519           If unsure, say N.
2521 config BINFMT_ELF32
2522         bool
2523         default y if MIPS32_O32 || MIPS32_N32
2525 endmenu
2527 menu "Power management options"
2529 config ARCH_HIBERNATION_POSSIBLE
2530         def_bool y
2531         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2533 config ARCH_SUSPEND_POSSIBLE
2534         def_bool y
2535         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2537 source "kernel/power/Kconfig"
2539 endmenu
2541 config MIPS_EXTERNAL_TIMER
2542         bool
2544 if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
2545 menu "CPU Power Management"
2546 source "drivers/cpufreq/Kconfig"
2547 endmenu
2548 endif
2550 source "net/Kconfig"
2552 source "drivers/Kconfig"
2554 source "drivers/firmware/Kconfig"
2556 source "fs/Kconfig"
2558 source "arch/mips/Kconfig.debug"
2560 source "security/Kconfig"
2562 source "crypto/Kconfig"
2564 source "lib/Kconfig"
2566 source "arch/mips/kvm/Kconfig"