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