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