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