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