]> asedeno.scripts.mit.edu Git - linux.git/blob - arch/mips/Kconfig
378525aaadccf8923f7ecf453e15fbd12130c181
[linux.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 CPU_R4K_FPU
2259         bool
2260         default y if !(CPU_R3000 || CPU_TX39XX)
2261
2262 config CPU_R4K_CACHE_TLB
2263         bool
2264         default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
2265
2266 config MIPS_MT_SMP
2267         bool "MIPS MT SMP support (1 TC on each available VPE)"
2268         default y
2269         depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
2270         select CPU_MIPSR2_IRQ_VI
2271         select CPU_MIPSR2_IRQ_EI
2272         select SYNC_R4K
2273         select MIPS_MT
2274         select SMP
2275         select SMP_UP
2276         select SYS_SUPPORTS_SMP
2277         select SYS_SUPPORTS_SCHED_SMT
2278         select MIPS_PERF_SHARED_TC_COUNTERS
2279         help
2280           This is a kernel model which is known as SMVP. This is supported
2281           on cores with the MT ASE and uses the available VPEs to implement
2282           virtual processors which supports SMP. This is equivalent to the
2283           Intel Hyperthreading feature. For further information go to
2284           <http://www.imgtec.com/mips/mips-multithreading.asp>.
2285
2286 config MIPS_MT
2287         bool
2288
2289 config SCHED_SMT
2290         bool "SMT (multithreading) scheduler support"
2291         depends on SYS_SUPPORTS_SCHED_SMT
2292         default n
2293         help
2294           SMT scheduler support improves the CPU scheduler's decision making
2295           when dealing with MIPS MT enabled cores at a cost of slightly
2296           increased overhead in some places. If unsure say N here.
2297
2298 config SYS_SUPPORTS_SCHED_SMT
2299         bool
2300
2301 config SYS_SUPPORTS_MULTITHREADING
2302         bool
2303
2304 config MIPS_MT_FPAFF
2305         bool "Dynamic FPU affinity for FP-intensive threads"
2306         default y
2307         depends on MIPS_MT_SMP
2308
2309 config MIPSR2_TO_R6_EMULATOR
2310         bool "MIPS R2-to-R6 emulator"
2311         depends on CPU_MIPSR6
2312         default y
2313         help
2314           Choose this option if you want to run non-R6 MIPS userland code.
2315           Even if you say 'Y' here, the emulator will still be disabled by
2316           default. You can enable it using the 'mipsr2emu' kernel option.
2317           The only reason this is a build-time option is to save ~14K from the
2318           final kernel image.
2319
2320 config SYS_SUPPORTS_VPE_LOADER
2321         bool
2322         depends on SYS_SUPPORTS_MULTITHREADING
2323         help
2324           Indicates that the platform supports the VPE loader, and provides
2325           physical_memsize.
2326
2327 config MIPS_VPE_LOADER
2328         bool "VPE loader support."
2329         depends on SYS_SUPPORTS_VPE_LOADER && MODULES
2330         select CPU_MIPSR2_IRQ_VI
2331         select CPU_MIPSR2_IRQ_EI
2332         select MIPS_MT
2333         help
2334           Includes a loader for loading an elf relocatable object
2335           onto another VPE and running it.
2336
2337 config MIPS_VPE_LOADER_CMP
2338         bool
2339         default "y"
2340         depends on MIPS_VPE_LOADER && MIPS_CMP
2341
2342 config MIPS_VPE_LOADER_MT
2343         bool
2344         default "y"
2345         depends on MIPS_VPE_LOADER && !MIPS_CMP
2346
2347 config MIPS_VPE_LOADER_TOM
2348         bool "Load VPE program into memory hidden from linux"
2349         depends on MIPS_VPE_LOADER
2350         default y
2351         help
2352           The loader can use memory that is present but has been hidden from
2353           Linux using the kernel command line option "mem=xxMB". It's up to
2354           you to ensure the amount you put in the option and the space your
2355           program requires is less or equal to the amount physically present.
2356
2357 config MIPS_VPE_APSP_API
2358         bool "Enable support for AP/SP API (RTLX)"
2359         depends on MIPS_VPE_LOADER
2360
2361 config MIPS_VPE_APSP_API_CMP
2362         bool
2363         default "y"
2364         depends on MIPS_VPE_APSP_API && MIPS_CMP
2365
2366 config MIPS_VPE_APSP_API_MT
2367         bool
2368         default "y"
2369         depends on MIPS_VPE_APSP_API && !MIPS_CMP
2370
2371 config MIPS_CMP
2372         bool "MIPS CMP framework support (DEPRECATED)"
2373         depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
2374         select SMP
2375         select SYNC_R4K
2376         select SYS_SUPPORTS_SMP
2377         select WEAK_ORDERING
2378         default n
2379         help
2380           Select this if you are using a bootloader which implements the "CMP
2381           framework" protocol (ie. YAMON) and want your kernel to make use of
2382           its ability to start secondary CPUs.
2383
2384           Unless you have a specific need, you should use CONFIG_MIPS_CPS
2385           instead of this.
2386
2387 config MIPS_CPS
2388         bool "MIPS Coherent Processing System support"
2389         depends on SYS_SUPPORTS_MIPS_CPS
2390         select MIPS_CM
2391         select MIPS_CPS_PM if HOTPLUG_CPU
2392         select SMP
2393         select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
2394         select SYS_SUPPORTS_HOTPLUG_CPU
2395         select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
2396         select SYS_SUPPORTS_SMP
2397         select WEAK_ORDERING
2398         help
2399           Select this if you wish to run an SMP kernel across multiple cores
2400           within a MIPS Coherent Processing System. When this option is
2401           enabled the kernel will probe for other cores and boot them with
2402           no external assistance. It is safe to enable this when hardware
2403           support is unavailable.
2404
2405 config MIPS_CPS_PM
2406         depends on MIPS_CPS
2407         bool
2408
2409 config MIPS_CM
2410         bool
2411         select MIPS_CPC
2412
2413 config MIPS_CPC
2414         bool
2415
2416 config SB1_PASS_2_WORKAROUNDS
2417         bool
2418         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2419         default y
2420
2421 config SB1_PASS_2_1_WORKAROUNDS
2422         bool
2423         depends on CPU_SB1 && CPU_SB1_PASS_2
2424         default y
2425
2426
2427 choice
2428         prompt "SmartMIPS or microMIPS ASE support"
2429
2430 config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2431         bool "None"
2432         help
2433           Select this if you want neither microMIPS nor SmartMIPS support
2434
2435 config CPU_HAS_SMARTMIPS
2436         depends on SYS_SUPPORTS_SMARTMIPS
2437         bool "SmartMIPS"
2438         help
2439           SmartMIPS is a extension of the MIPS32 architecture aimed at
2440           increased security at both hardware and software level for
2441           smartcards.  Enabling this option will allow proper use of the
2442           SmartMIPS instructions by Linux applications.  However a kernel with
2443           this option will not work on a MIPS core without SmartMIPS core.  If
2444           you don't know you probably don't have SmartMIPS and should say N
2445           here.
2446
2447 config CPU_MICROMIPS
2448         depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
2449         bool "microMIPS"
2450         help
2451           When this option is enabled the kernel will be built using the
2452           microMIPS ISA
2453
2454 endchoice
2455
2456 config CPU_HAS_MSA
2457         bool "Support for the MIPS SIMD Architecture"
2458         depends on CPU_SUPPORTS_MSA
2459         depends on 64BIT || MIPS_O32_FP64_SUPPORT
2460         help
2461           MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2462           and a set of SIMD instructions to operate on them. When this option
2463           is enabled the kernel will support allocating & switching MSA
2464           vector register contexts. If you know that your kernel will only be
2465           running on CPUs which do not support MSA or that your userland will
2466           not be making use of it then you may wish to say N here to reduce
2467           the size & complexity of your kernel.
2468
2469           If unsure, say Y.
2470
2471 config CPU_HAS_WB
2472         bool
2473
2474 config XKS01
2475         bool
2476
2477 config CPU_HAS_RIXI
2478         bool
2479
2480 config CPU_HAS_LOAD_STORE_LR
2481         bool
2482         help
2483           CPU has support for unaligned load and store instructions:
2484           LWL, LWR, SWL, SWR (Load/store word left/right).
2485           LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit systems).
2486
2487 #
2488 # Vectored interrupt mode is an R2 feature
2489 #
2490 config CPU_MIPSR2_IRQ_VI
2491         bool
2492
2493 #
2494 # Extended interrupt mode is an R2 feature
2495 #
2496 config CPU_MIPSR2_IRQ_EI
2497         bool
2498
2499 config CPU_HAS_SYNC
2500         bool
2501         depends on !CPU_R3000
2502         default y
2503
2504 #
2505 # CPU non-features
2506 #
2507 config CPU_DADDI_WORKAROUNDS
2508         bool
2509
2510 config CPU_R4000_WORKAROUNDS
2511         bool
2512         select CPU_R4400_WORKAROUNDS
2513
2514 config CPU_R4400_WORKAROUNDS
2515         bool
2516
2517 config MIPS_ASID_SHIFT
2518         int
2519         default 6 if CPU_R3000 || CPU_TX39XX
2520         default 4 if CPU_R8000
2521         default 0
2522
2523 config MIPS_ASID_BITS
2524         int
2525         default 0 if MIPS_ASID_BITS_VARIABLE
2526         default 6 if CPU_R3000 || CPU_TX39XX
2527         default 8
2528
2529 config MIPS_ASID_BITS_VARIABLE
2530         bool
2531
2532 config MIPS_CRC_SUPPORT
2533         bool
2534
2535 #
2536 # - Highmem only makes sense for the 32-bit kernel.
2537 # - The current highmem code will only work properly on physically indexed
2538 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2539 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2540 #   moment we protect the user and offer the highmem option only on machines
2541 #   where it's known to be safe.  This will not offer highmem on a few systems
2542 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2543 #   indexed CPUs but we're playing safe.
2544 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2545 #   know they might have memory configurations that could make use of highmem
2546 #   support.
2547 #
2548 config HIGHMEM
2549         bool "High Memory Support"
2550         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
2551
2552 config CPU_SUPPORTS_HIGHMEM
2553         bool
2554
2555 config SYS_SUPPORTS_HIGHMEM
2556         bool
2557
2558 config SYS_SUPPORTS_SMARTMIPS
2559         bool
2560
2561 config SYS_SUPPORTS_MICROMIPS
2562         bool
2563
2564 config SYS_SUPPORTS_MIPS16
2565         bool
2566         help
2567           This option must be set if a kernel might be executed on a MIPS16-
2568           enabled CPU even if MIPS16 is not actually being used.  In other
2569           words, it makes the kernel MIPS16-tolerant.
2570
2571 config CPU_SUPPORTS_MSA
2572         bool
2573
2574 config ARCH_FLATMEM_ENABLE
2575         def_bool y
2576         depends on !NUMA && !CPU_LOONGSON2
2577
2578 config ARCH_DISCONTIGMEM_ENABLE
2579         bool
2580         default y if SGI_IP27
2581         help
2582           Say Y to support efficient handling of discontiguous physical memory,
2583           for architectures which are either NUMA (Non-Uniform Memory Access)
2584           or have huge holes in the physical address space for other reasons.
2585           See <file:Documentation/vm/numa.rst> for more.
2586
2587 config ARCH_SPARSEMEM_ENABLE
2588         bool
2589         select SPARSEMEM_STATIC
2590
2591 config NUMA
2592         bool "NUMA Support"
2593         depends on SYS_SUPPORTS_NUMA
2594         help
2595           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2596           Access).  This option improves performance on systems with more
2597           than two nodes; on two node systems it is generally better to
2598           leave it disabled; on single node systems disable this option
2599           disabled.
2600
2601 config SYS_SUPPORTS_NUMA
2602         bool
2603
2604 config RELOCATABLE
2605         bool "Relocatable kernel"
2606         depends on SYS_SUPPORTS_RELOCATABLE && (CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_MIPS32_R6 || CPU_MIPS64_R6 || CAVIUM_OCTEON_SOC)
2607         help
2608           This builds a kernel image that retains relocation information
2609           so it can be loaded someplace besides the default 1MB.
2610           The relocations make the kernel binary about 15% larger,
2611           but are discarded at runtime
2612
2613 config RELOCATION_TABLE_SIZE
2614         hex "Relocation table size"
2615         depends on RELOCATABLE
2616         range 0x0 0x01000000
2617         default "0x00100000"
2618         ---help---
2619           A table of relocation data will be appended to the kernel binary
2620           and parsed at boot to fix up the relocated kernel.
2621
2622           This option allows the amount of space reserved for the table to be
2623           adjusted, although the default of 1Mb should be ok in most cases.
2624
2625           The build will fail and a valid size suggested if this is too small.
2626
2627           If unsure, leave at the default value.
2628
2629 config RANDOMIZE_BASE
2630         bool "Randomize the address of the kernel image"
2631         depends on RELOCATABLE
2632         ---help---
2633            Randomizes the physical and virtual address at which the
2634            kernel image is loaded, as a security feature that
2635            deters exploit attempts relying on knowledge of the location
2636            of kernel internals.
2637
2638            Entropy is generated using any coprocessor 0 registers available.
2639
2640            The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
2641
2642            If unsure, say N.
2643
2644 config RANDOMIZE_BASE_MAX_OFFSET
2645         hex "Maximum kASLR offset" if EXPERT
2646         depends on RANDOMIZE_BASE
2647         range 0x0 0x40000000 if EVA || 64BIT
2648         range 0x0 0x08000000
2649         default "0x01000000"
2650         ---help---
2651           When kASLR is active, this provides the maximum offset that will
2652           be applied to the kernel image. It should be set according to the
2653           amount of physical RAM available in the target system minus
2654           PHYSICAL_START and must be a power of 2.
2655
2656           This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2657           EVA or 64-bit. The default is 16Mb.
2658
2659 config NODES_SHIFT
2660         int
2661         default "6"
2662         depends on NEED_MULTIPLE_NODES
2663
2664 config HW_PERF_EVENTS
2665         bool "Enable hardware performance counter support for perf events"
2666         depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON3)
2667         default y
2668         help
2669           Enable hardware performance counter support for perf events. If
2670           disabled, perf events will use software events only.
2671
2672 config SMP
2673         bool "Multi-Processing support"
2674         depends on SYS_SUPPORTS_SMP
2675         help
2676           This enables support for systems with more than one CPU. If you have
2677           a system with only one CPU, say N. If you have a system with more
2678           than one CPU, say Y.
2679
2680           If you say N here, the kernel will run on uni- and multiprocessor
2681           machines, but will use only one CPU of a multiprocessor machine. If
2682           you say Y here, the kernel will run on many, but not all,
2683           uniprocessor machines. On a uniprocessor machine, the kernel
2684           will run faster if you say N here.
2685
2686           People using multiprocessor machines who say Y here should also say
2687           Y to "Enhanced Real Time Clock Support", below.
2688
2689           See also the SMP-HOWTO available at
2690           <http://www.tldp.org/docs.html#howto>.
2691
2692           If you don't know what to do here, say N.
2693
2694 config HOTPLUG_CPU
2695         bool "Support for hot-pluggable CPUs"
2696         depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2697         help
2698           Say Y here to allow turning CPUs off and on. CPUs can be
2699           controlled through /sys/devices/system/cpu.
2700           (Note: power management support will enable this option
2701             automatically on SMP systems. )
2702           Say N if you want to disable CPU hotplug.
2703
2704 config SMP_UP
2705         bool
2706
2707 config SYS_SUPPORTS_MIPS_CMP
2708         bool
2709
2710 config SYS_SUPPORTS_MIPS_CPS
2711         bool
2712
2713 config SYS_SUPPORTS_SMP
2714         bool
2715
2716 config NR_CPUS_DEFAULT_4
2717         bool
2718
2719 config NR_CPUS_DEFAULT_8
2720         bool
2721
2722 config NR_CPUS_DEFAULT_16
2723         bool
2724
2725 config NR_CPUS_DEFAULT_32
2726         bool
2727
2728 config NR_CPUS_DEFAULT_64
2729         bool
2730
2731 config NR_CPUS
2732         int "Maximum number of CPUs (2-256)"
2733         range 2 256
2734         depends on SMP
2735         default "4" if NR_CPUS_DEFAULT_4
2736         default "8" if NR_CPUS_DEFAULT_8
2737         default "16" if NR_CPUS_DEFAULT_16
2738         default "32" if NR_CPUS_DEFAULT_32
2739         default "64" if NR_CPUS_DEFAULT_64
2740         help
2741           This allows you to specify the maximum number of CPUs which this
2742           kernel will support.  The maximum supported value is 32 for 32-bit
2743           kernel and 64 for 64-bit kernels; the minimum value which makes
2744           sense is 1 for Qemu (useful only for kernel debugging purposes)
2745           and 2 for all others.
2746
2747           This is purely to save memory - each supported CPU adds
2748           approximately eight kilobytes to the kernel image.  For best
2749           performance should round up your number of processors to the next
2750           power of two.
2751
2752 config MIPS_PERF_SHARED_TC_COUNTERS
2753         bool
2754
2755 config MIPS_NR_CPU_NR_MAP_1024
2756         bool
2757
2758 config MIPS_NR_CPU_NR_MAP
2759         int
2760         depends on SMP
2761         default 1024 if MIPS_NR_CPU_NR_MAP_1024
2762         default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2763
2764 #
2765 # Timer Interrupt Frequency Configuration
2766 #
2767
2768 choice
2769         prompt "Timer frequency"
2770         default HZ_250
2771         help
2772          Allows the configuration of the timer frequency.
2773
2774         config HZ_24
2775                 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2776
2777         config HZ_48
2778                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2779
2780         config HZ_100
2781                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2782
2783         config HZ_128
2784                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2785
2786         config HZ_250
2787                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2788
2789         config HZ_256
2790                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2791
2792         config HZ_1000
2793                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2794
2795         config HZ_1024
2796                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2797
2798 endchoice
2799
2800 config SYS_SUPPORTS_24HZ
2801         bool
2802
2803 config SYS_SUPPORTS_48HZ
2804         bool
2805
2806 config SYS_SUPPORTS_100HZ
2807         bool
2808
2809 config SYS_SUPPORTS_128HZ
2810         bool
2811
2812 config SYS_SUPPORTS_250HZ
2813         bool
2814
2815 config SYS_SUPPORTS_256HZ
2816         bool
2817
2818 config SYS_SUPPORTS_1000HZ
2819         bool
2820
2821 config SYS_SUPPORTS_1024HZ
2822         bool
2823
2824 config SYS_SUPPORTS_ARBIT_HZ
2825         bool
2826         default y if !SYS_SUPPORTS_24HZ && \
2827                      !SYS_SUPPORTS_48HZ && \
2828                      !SYS_SUPPORTS_100HZ && \
2829                      !SYS_SUPPORTS_128HZ && \
2830                      !SYS_SUPPORTS_250HZ && \
2831                      !SYS_SUPPORTS_256HZ && \
2832                      !SYS_SUPPORTS_1000HZ && \
2833                      !SYS_SUPPORTS_1024HZ
2834
2835 config HZ
2836         int
2837         default 24 if HZ_24
2838         default 48 if HZ_48
2839         default 100 if HZ_100
2840         default 128 if HZ_128
2841         default 250 if HZ_250
2842         default 256 if HZ_256
2843         default 1000 if HZ_1000
2844         default 1024 if HZ_1024
2845
2846 config SCHED_HRTICK
2847         def_bool HIGH_RES_TIMERS
2848
2849 config KEXEC
2850         bool "Kexec system call"
2851         select KEXEC_CORE
2852         help
2853           kexec is a system call that implements the ability to shutdown your
2854           current kernel, and to start another kernel.  It is like a reboot
2855           but it is independent of the system firmware.   And like a reboot
2856           you can start any kernel with it, not just Linux.
2857
2858           The name comes from the similarity to the exec system call.
2859
2860           It is an ongoing process to be certain the hardware in a machine
2861           is properly shutdown, so do not be surprised if this code does not
2862           initially work for you.  As of this writing the exact hardware
2863           interface is strongly in flux, so no good recommendation can be
2864           made.
2865
2866 config CRASH_DUMP
2867         bool "Kernel crash dumps"
2868         help
2869           Generate crash dump after being started by kexec.
2870           This should be normally only set in special crash dump kernels
2871           which are loaded in the main kernel with kexec-tools into
2872           a specially reserved region and then later executed after
2873           a crash by kdump/kexec. The crash dump kernel must be compiled
2874           to a memory address not used by the main kernel or firmware using
2875           PHYSICAL_START.
2876
2877 config PHYSICAL_START
2878         hex "Physical address where the kernel is loaded"
2879         default "0xffffffff84000000"
2880         depends on CRASH_DUMP
2881         help
2882           This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2883           If you plan to use kernel for capturing the crash dump change
2884           this value to start of the reserved region (the "X" value as
2885           specified in the "crashkernel=YM@XM" command line boot parameter
2886           passed to the panic-ed kernel).
2887
2888 config SECCOMP
2889         bool "Enable seccomp to safely compute untrusted bytecode"
2890         depends on PROC_FS
2891         default y
2892         help
2893           This kernel feature is useful for number crunching applications
2894           that may need to compute untrusted bytecode during their
2895           execution. By using pipes or other transports made available to
2896           the process as file descriptors supporting the read/write
2897           syscalls, it's possible to isolate those applications in
2898           their own address space using seccomp. Once seccomp is
2899           enabled via /proc/<pid>/seccomp, it cannot be disabled
2900           and the task is only allowed to execute a few safe syscalls
2901           defined by each seccomp mode.
2902
2903           If unsure, say Y. Only embedded should say N here.
2904
2905 config MIPS_O32_FP64_SUPPORT
2906         bool "Support for O32 binaries using 64-bit FP"
2907         depends on 32BIT || MIPS32_O32
2908         help
2909           When this is enabled, the kernel will support use of 64-bit floating
2910           point registers with binaries using the O32 ABI along with the
2911           EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
2912           32-bit MIPS systems this support is at the cost of increasing the
2913           size and complexity of the compiled FPU emulator. Thus if you are
2914           running a MIPS32 system and know that none of your userland binaries
2915           will require 64-bit floating point, you may wish to reduce the size
2916           of your kernel & potentially improve FP emulation performance by
2917           saying N here.
2918
2919           Although binutils currently supports use of this flag the details
2920           concerning its effect upon the O32 ABI in userland are still being
2921           worked on. In order to avoid userland becoming dependant upon current
2922           behaviour before the details have been finalised, this option should
2923           be considered experimental and only enabled by those working upon
2924           said details.
2925
2926           If unsure, say N.
2927
2928 config USE_OF
2929         bool
2930         select OF
2931         select OF_EARLY_FLATTREE
2932         select IRQ_DOMAIN
2933
2934 config UHI_BOOT
2935         bool
2936
2937 config BUILTIN_DTB
2938         bool
2939
2940 choice
2941         prompt "Kernel appended dtb support" if USE_OF
2942         default MIPS_NO_APPENDED_DTB
2943
2944         config MIPS_NO_APPENDED_DTB
2945                 bool "None"
2946                 help
2947                   Do not enable appended dtb support.
2948
2949         config MIPS_ELF_APPENDED_DTB
2950                 bool "vmlinux"
2951                 help
2952                   With this option, the boot code will look for a device tree binary
2953                   DTB) included in the vmlinux ELF section .appended_dtb. By default
2954                   it is empty and the DTB can be appended using binutils command
2955                   objcopy:
2956
2957                     objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
2958
2959                   This is meant as a backward compatiblity convenience for those
2960                   systems with a bootloader that can't be upgraded to accommodate
2961                   the documented boot protocol using a device tree.
2962
2963         config MIPS_RAW_APPENDED_DTB
2964                 bool "vmlinux.bin or vmlinuz.bin"
2965                 help
2966                   With this option, the boot code will look for a device tree binary
2967                   DTB) appended to raw vmlinux.bin or vmlinuz.bin.
2968                   (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
2969
2970                   This is meant as a backward compatibility 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                   Beware that there is very little in terms of protection against
2975                   this option being confused by leftover garbage in memory that might
2976                   look like a DTB header after a reboot if no actual DTB is appended
2977                   to vmlinux.bin.  Do not leave this option active in a production kernel
2978                   if you don't intend to always append a DTB.
2979 endchoice
2980
2981 choice
2982         prompt "Kernel command line type" if !CMDLINE_OVERRIDE
2983         default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
2984                                          !MIPS_MALTA && \
2985                                          !CAVIUM_OCTEON_SOC
2986         default MIPS_CMDLINE_FROM_BOOTLOADER
2987
2988         config MIPS_CMDLINE_FROM_DTB
2989                 depends on USE_OF
2990                 bool "Dtb kernel arguments if available"
2991
2992         config MIPS_CMDLINE_DTB_EXTEND
2993                 depends on USE_OF
2994                 bool "Extend dtb kernel arguments with bootloader arguments"
2995
2996         config MIPS_CMDLINE_FROM_BOOTLOADER
2997                 bool "Bootloader kernel arguments if available"
2998
2999         config MIPS_CMDLINE_BUILTIN_EXTEND
3000                 depends on CMDLINE_BOOL
3001                 bool "Extend builtin kernel arguments with bootloader arguments"
3002 endchoice
3003
3004 endmenu
3005
3006 config LOCKDEP_SUPPORT
3007         bool
3008         default y
3009
3010 config STACKTRACE_SUPPORT
3011         bool
3012         default y
3013
3014 config HAVE_LATENCYTOP_SUPPORT
3015         bool
3016         default y
3017
3018 config PGTABLE_LEVELS
3019         int
3020         default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
3021         default 3 if 64BIT && !PAGE_SIZE_64KB
3022         default 2
3023
3024 config MIPS_AUTO_PFN_OFFSET
3025         bool
3026
3027 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3028
3029 config HW_HAS_EISA
3030         bool
3031 config HW_HAS_PCI
3032         bool
3033
3034 config PCI
3035         bool "Support for PCI controller"
3036         depends on HW_HAS_PCI
3037         select PCI_DOMAINS
3038         help
3039           Find out whether you have a PCI motherboard. PCI is the name of a
3040           bus system, i.e. the way the CPU talks to the other stuff inside
3041           your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
3042           say Y, otherwise N.
3043
3044 config HT_PCI
3045         bool "Support for HT-linked PCI"
3046         default y
3047         depends on CPU_LOONGSON3
3048         select PCI
3049         select PCI_DOMAINS
3050         help
3051           Loongson family machines use Hyper-Transport bus for inter-core
3052           connection and device connection. The PCI bus is a subordinate
3053           linked at HT. Choose Y for Loongson-3 based machines.
3054
3055 config PCI_DOMAINS
3056         bool
3057
3058 config PCI_DOMAINS_GENERIC
3059         bool
3060
3061 config PCI_DRIVERS_GENERIC
3062         select PCI_DOMAINS_GENERIC if PCI_DOMAINS
3063         bool
3064
3065 config PCI_DRIVERS_LEGACY
3066         def_bool !PCI_DRIVERS_GENERIC
3067         select NO_GENERIC_PCI_IOPORT_MAP
3068
3069 source "drivers/pci/Kconfig"
3070
3071 #
3072 # ISA support is now enabled via select.  Too many systems still have the one
3073 # or other ISA chip on the board that users don't know about so don't expect
3074 # users to choose the right thing ...
3075 #
3076 config ISA
3077         bool
3078
3079 config EISA
3080         bool "EISA support"
3081         depends on HW_HAS_EISA
3082         select ISA
3083         select GENERIC_ISA_DMA
3084         ---help---
3085           The Extended Industry Standard Architecture (EISA) bus was
3086           developed as an open alternative to the IBM MicroChannel bus.
3087
3088           The EISA bus provided some of the features of the IBM MicroChannel
3089           bus while maintaining backward compatibility with cards made for
3090           the older ISA bus.  The EISA bus saw limited use between 1988 and
3091           1995 when it was made obsolete by the PCI bus.
3092
3093           Say Y here if you are building a kernel for an EISA-based machine.
3094
3095           Otherwise, say N.
3096
3097 source "drivers/eisa/Kconfig"
3098
3099 config TC
3100         bool "TURBOchannel support"
3101         depends on MACH_DECSTATION
3102         help
3103           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3104           processors.  TURBOchannel programming specifications are available
3105           at:
3106           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3107           and:
3108           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3109           Linux driver support status is documented at:
3110           <http://www.linux-mips.org/wiki/DECstation>
3111
3112 config MMU
3113         bool
3114         default y
3115
3116 config ARCH_MMAP_RND_BITS_MIN
3117         default 12 if 64BIT
3118         default 8
3119
3120 config ARCH_MMAP_RND_BITS_MAX
3121         default 18 if 64BIT
3122         default 15
3123
3124 config ARCH_MMAP_RND_COMPAT_BITS_MIN
3125        default 8
3126
3127 config ARCH_MMAP_RND_COMPAT_BITS_MAX
3128        default 15
3129
3130 config I8253
3131         bool
3132         select CLKSRC_I8253
3133         select CLKEVT_I8253
3134         select MIPS_EXTERNAL_TIMER
3135
3136 config ZONE_DMA
3137         bool
3138
3139 config ZONE_DMA32
3140         bool
3141
3142 source "drivers/pcmcia/Kconfig"
3143
3144 config HAS_RAPIDIO
3145         bool
3146         default n
3147
3148 config RAPIDIO
3149         tristate "RapidIO support"
3150         depends on HAS_RAPIDIO || PCI
3151         help
3152           If you say Y here, the kernel will include drivers and
3153           infrastructure code to support RapidIO interconnect devices.
3154
3155 source "drivers/rapidio/Kconfig"
3156
3157 endmenu
3158
3159 config TRAD_SIGNALS
3160         bool
3161
3162 config MIPS32_COMPAT
3163         bool
3164
3165 config COMPAT
3166         bool
3167
3168 config SYSVIPC_COMPAT
3169         bool
3170
3171 config MIPS32_O32
3172         bool "Kernel support for o32 binaries"
3173         depends on 64BIT
3174         select ARCH_WANT_OLD_COMPAT_IPC
3175         select COMPAT
3176         select MIPS32_COMPAT
3177         select SYSVIPC_COMPAT if SYSVIPC
3178         help
3179           Select this option if you want to run o32 binaries.  These are pure
3180           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
3181           existing binaries are in this format.
3182
3183           If unsure, say Y.
3184
3185 config MIPS32_N32
3186         bool "Kernel support for n32 binaries"
3187         depends on 64BIT
3188         select COMPAT
3189         select MIPS32_COMPAT
3190         select SYSVIPC_COMPAT if SYSVIPC
3191         help
3192           Select this option if you want to run n32 binaries.  These are
3193           64-bit binaries using 32-bit quantities for addressing and certain
3194           data that would normally be 64-bit.  They are used in special
3195           cases.
3196
3197           If unsure, say N.
3198
3199 config BINFMT_ELF32
3200         bool
3201         default y if MIPS32_O32 || MIPS32_N32
3202         select ELFCORE
3203
3204 menu "Power management options"
3205
3206 config ARCH_HIBERNATION_POSSIBLE
3207         def_bool y
3208         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3209
3210 config ARCH_SUSPEND_POSSIBLE
3211         def_bool y
3212         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3213
3214 source "kernel/power/Kconfig"
3215
3216 endmenu
3217
3218 config MIPS_EXTERNAL_TIMER
3219         bool
3220
3221 menu "CPU Power Management"
3222
3223 if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
3224 source "drivers/cpufreq/Kconfig"
3225 endif
3226
3227 source "drivers/cpuidle/Kconfig"
3228
3229 endmenu
3230
3231 source "drivers/firmware/Kconfig"
3232
3233 source "arch/mips/kvm/Kconfig"