Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[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_MOD_ARCH_SPECIFIC
76         select HAVE_NMI
77         select HAVE_OPROFILE
78         select HAVE_PERF_EVENTS
79         select HAVE_REGS_AND_STACK_ACCESS_API
80         select HAVE_RSEQ
81         select HAVE_SPARSE_SYSCALL_NR
82         select HAVE_STACKPROTECTOR
83         select HAVE_SYSCALL_TRACEPOINTS
84         select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
85         select IRQ_FORCED_THREADING
86         select ISA if EISA
87         select MODULES_USE_ELF_REL if MODULES
88         select MODULES_USE_ELF_RELA if MODULES && 64BIT
89         select PERF_USE_VMALLOC
90         select RTC_LIB
91         select SYSCTL_EXCEPTION_TRACE
92         select VIRT_TO_BUS
93
94 config MIPS_FIXUP_BIGPHYS_ADDR
95         bool
96
97 menu "Machine selection"
98
99 choice
100         prompt "System type"
101         default MIPS_GENERIC
102
103 config MIPS_GENERIC
104         bool "Generic board-agnostic MIPS kernel"
105         select BOOT_RAW
106         select BUILTIN_DTB
107         select CEVT_R4K
108         select CLKSRC_MIPS_GIC
109         select COMMON_CLK
110         select CPU_MIPSR2_IRQ_EI
111         select CPU_MIPSR2_IRQ_VI
112         select CSRC_R4K
113         select DMA_PERDEV_COHERENT
114         select HAVE_PCI
115         select IRQ_MIPS_CPU
116         select MIPS_AUTO_PFN_OFFSET
117         select MIPS_CPU_SCACHE
118         select MIPS_GIC
119         select MIPS_L1_CACHE_SHIFT_7
120         select NO_EXCEPT_FILL
121         select PCI_DRIVERS_GENERIC
122         select SMP_UP if SMP
123         select SWAP_IO_SPACE
124         select SYS_HAS_CPU_MIPS32_R1
125         select SYS_HAS_CPU_MIPS32_R2
126         select SYS_HAS_CPU_MIPS32_R6
127         select SYS_HAS_CPU_MIPS64_R1
128         select SYS_HAS_CPU_MIPS64_R2
129         select SYS_HAS_CPU_MIPS64_R6
130         select SYS_SUPPORTS_32BIT_KERNEL
131         select SYS_SUPPORTS_64BIT_KERNEL
132         select SYS_SUPPORTS_BIG_ENDIAN
133         select SYS_SUPPORTS_HIGHMEM
134         select SYS_SUPPORTS_LITTLE_ENDIAN
135         select SYS_SUPPORTS_MICROMIPS
136         select SYS_SUPPORTS_MIPS16
137         select SYS_SUPPORTS_MIPS_CPS
138         select SYS_SUPPORTS_MULTITHREADING
139         select SYS_SUPPORTS_RELOCATABLE
140         select SYS_SUPPORTS_SMARTMIPS
141         select UHI_BOOT
142         select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
143         select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
144         select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
145         select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
146         select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
147         select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
148         select USE_OF
149         help
150           Select this to build a kernel which aims to support multiple boards,
151           generally using a flattened device tree passed from the bootloader
152           using the boot protocol defined in the UHI (Unified Hosting
153           Interface) specification.
154
155 config MIPS_ALCHEMY
156         bool "Alchemy processor based machines"
157         select PHYS_ADDR_T_64BIT
158         select CEVT_R4K
159         select CSRC_R4K
160         select IRQ_MIPS_CPU
161         select DMA_MAYBE_COHERENT       # Au1000,1500,1100 aren't, rest is
162         select MIPS_FIXUP_BIGPHYS_ADDR if PCI
163         select SYS_HAS_CPU_MIPS32_R1
164         select SYS_SUPPORTS_32BIT_KERNEL
165         select SYS_SUPPORTS_APM_EMULATION
166         select GPIOLIB
167         select SYS_SUPPORTS_ZBOOT
168         select COMMON_CLK
169
170 config AR7
171         bool "Texas Instruments AR7"
172         select BOOT_ELF32
173         select DMA_NONCOHERENT
174         select CEVT_R4K
175         select CSRC_R4K
176         select IRQ_MIPS_CPU
177         select NO_EXCEPT_FILL
178         select SWAP_IO_SPACE
179         select SYS_HAS_CPU_MIPS32_R1
180         select SYS_HAS_EARLY_PRINTK
181         select SYS_SUPPORTS_32BIT_KERNEL
182         select SYS_SUPPORTS_LITTLE_ENDIAN
183         select SYS_SUPPORTS_MIPS16
184         select SYS_SUPPORTS_ZBOOT_UART16550
185         select GPIOLIB
186         select VLYNQ
187         select HAVE_LEGACY_CLK
188         help
189           Support for the Texas Instruments AR7 System-on-a-Chip
190           family: TNETD7100, 7200 and 7300.
191
192 config ATH25
193         bool "Atheros AR231x/AR531x SoC support"
194         select CEVT_R4K
195         select CSRC_R4K
196         select DMA_NONCOHERENT
197         select IRQ_MIPS_CPU
198         select IRQ_DOMAIN
199         select SYS_HAS_CPU_MIPS32_R1
200         select SYS_SUPPORTS_BIG_ENDIAN
201         select SYS_SUPPORTS_32BIT_KERNEL
202         select SYS_HAS_EARLY_PRINTK
203         help
204           Support for Atheros AR231x and Atheros AR531x based boards
205
206 config ATH79
207         bool "Atheros AR71XX/AR724X/AR913X based boards"
208         select ARCH_HAS_RESET_CONTROLLER
209         select BOOT_RAW
210         select CEVT_R4K
211         select CSRC_R4K
212         select DMA_NONCOHERENT
213         select GPIOLIB
214         select PINCTRL
215         select COMMON_CLK
216         select IRQ_MIPS_CPU
217         select SYS_HAS_CPU_MIPS32_R2
218         select SYS_HAS_EARLY_PRINTK
219         select SYS_SUPPORTS_32BIT_KERNEL
220         select SYS_SUPPORTS_BIG_ENDIAN
221         select SYS_SUPPORTS_MIPS16
222         select SYS_SUPPORTS_ZBOOT_UART_PROM
223         select USE_OF
224         select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
225         help
226           Support for the Atheros AR71XX/AR724X/AR913X SoCs.
227
228 config BMIPS_GENERIC
229         bool "Broadcom Generic BMIPS kernel"
230         select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
231         select ARCH_HAS_PHYS_TO_DMA
232         select BOOT_RAW
233         select NO_EXCEPT_FILL
234         select USE_OF
235         select CEVT_R4K
236         select CSRC_R4K
237         select SYNC_R4K
238         select COMMON_CLK
239         select BCM6345_L1_IRQ
240         select BCM7038_L1_IRQ
241         select BCM7120_L2_IRQ
242         select BRCMSTB_L2_IRQ
243         select IRQ_MIPS_CPU
244         select DMA_NONCOHERENT
245         select SYS_SUPPORTS_32BIT_KERNEL
246         select SYS_SUPPORTS_LITTLE_ENDIAN
247         select SYS_SUPPORTS_BIG_ENDIAN
248         select SYS_SUPPORTS_HIGHMEM
249         select SYS_HAS_CPU_BMIPS32_3300
250         select SYS_HAS_CPU_BMIPS4350
251         select SYS_HAS_CPU_BMIPS4380
252         select SYS_HAS_CPU_BMIPS5000
253         select SWAP_IO_SPACE
254         select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
255         select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
256         select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
257         select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
258         select HARDIRQS_SW_RESEND
259         help
260           Build a generic DT-based kernel image that boots on select
261           BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
262           box chips.  Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
263           must be set appropriately for your board.
264
265 config BCM47XX
266         bool "Broadcom BCM47XX based boards"
267         select BOOT_RAW
268         select CEVT_R4K
269         select CSRC_R4K
270         select DMA_NONCOHERENT
271         select HAVE_PCI
272         select IRQ_MIPS_CPU
273         select SYS_HAS_CPU_MIPS32_R1
274         select NO_EXCEPT_FILL
275         select SYS_SUPPORTS_32BIT_KERNEL
276         select SYS_SUPPORTS_LITTLE_ENDIAN
277         select SYS_SUPPORTS_MIPS16
278         select SYS_SUPPORTS_ZBOOT
279         select SYS_HAS_EARLY_PRINTK
280         select USE_GENERIC_EARLY_PRINTK_8250
281         select GPIOLIB
282         select LEDS_GPIO_REGISTER
283         select BCM47XX_NVRAM
284         select BCM47XX_SPROM
285         select BCM47XX_SSB if !BCM47XX_BCMA
286         help
287           Support for BCM47XX based boards
288
289 config BCM63XX
290         bool "Broadcom BCM63XX based boards"
291         select BOOT_RAW
292         select CEVT_R4K
293         select CSRC_R4K
294         select SYNC_R4K
295         select DMA_NONCOHERENT
296         select IRQ_MIPS_CPU
297         select SYS_SUPPORTS_32BIT_KERNEL
298         select SYS_SUPPORTS_BIG_ENDIAN
299         select SYS_HAS_EARLY_PRINTK
300         select SWAP_IO_SPACE
301         select GPIOLIB
302         select MIPS_L1_CACHE_SHIFT_4
303         select CLKDEV_LOOKUP
304         select HAVE_LEGACY_CLK
305         help
306           Support for BCM63XX based boards
307
308 config MIPS_COBALT
309         bool "Cobalt Server"
310         select CEVT_R4K
311         select CSRC_R4K
312         select CEVT_GT641XX
313         select DMA_NONCOHERENT
314         select FORCE_PCI
315         select I8253
316         select I8259
317         select IRQ_MIPS_CPU
318         select IRQ_GT641XX
319         select PCI_GT64XXX_PCI0
320         select SYS_HAS_CPU_NEVADA
321         select SYS_HAS_EARLY_PRINTK
322         select SYS_SUPPORTS_32BIT_KERNEL
323         select SYS_SUPPORTS_64BIT_KERNEL
324         select SYS_SUPPORTS_LITTLE_ENDIAN
325         select USE_GENERIC_EARLY_PRINTK_8250
326
327 config MACH_DECSTATION
328         bool "DECstations"
329         select BOOT_ELF32
330         select CEVT_DS1287
331         select CEVT_R4K if CPU_R4X00
332         select CSRC_IOASIC
333         select CSRC_R4K if CPU_R4X00
334         select CPU_DADDI_WORKAROUNDS if 64BIT
335         select CPU_R4000_WORKAROUNDS if 64BIT
336         select CPU_R4400_WORKAROUNDS if 64BIT
337         select DMA_NONCOHERENT
338         select NO_IOPORT_MAP
339         select IRQ_MIPS_CPU
340         select SYS_HAS_CPU_R3000
341         select SYS_HAS_CPU_R4X00
342         select SYS_SUPPORTS_32BIT_KERNEL
343         select SYS_SUPPORTS_64BIT_KERNEL
344         select SYS_SUPPORTS_LITTLE_ENDIAN
345         select SYS_SUPPORTS_128HZ
346         select SYS_SUPPORTS_256HZ
347         select SYS_SUPPORTS_1024HZ
348         select MIPS_L1_CACHE_SHIFT_4
349         help
350           This enables support for DEC's MIPS based workstations.  For details
351           see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
352           DECstation porting pages on <http://decstation.unix-ag.org/>.
353
354           If you have one of the following DECstation Models you definitely
355           want to choose R4xx0 for the CPU Type:
356
357                 DECstation 5000/50
358                 DECstation 5000/150
359                 DECstation 5000/260
360                 DECsystem 5900/260
361
362           otherwise choose R3000.
363
364 config MACH_JAZZ
365         bool "Jazz family of machines"
366         select ARC_MEMORY
367         select ARC_PROMLIB
368         select ARCH_MIGHT_HAVE_PC_PARPORT
369         select ARCH_MIGHT_HAVE_PC_SERIO
370         select FW_ARC
371         select FW_ARC32
372         select ARCH_MAY_HAVE_PC_FDC
373         select CEVT_R4K
374         select CSRC_R4K
375         select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
376         select GENERIC_ISA_DMA
377         select HAVE_PCSPKR_PLATFORM
378         select IRQ_MIPS_CPU
379         select I8253
380         select I8259
381         select ISA
382         select SYS_HAS_CPU_R4X00
383         select SYS_SUPPORTS_32BIT_KERNEL
384         select SYS_SUPPORTS_64BIT_KERNEL
385         select SYS_SUPPORTS_100HZ
386         help
387           This a family of machines based on the MIPS R4030 chipset which was
388           used by several vendors to build RISC/os and Windows NT workstations.
389           Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
390           Olivetti M700-10 workstations.
391
392 config MACH_INGENIC
393         bool "Ingenic SoC based machines"
394         select SYS_SUPPORTS_32BIT_KERNEL
395         select SYS_SUPPORTS_LITTLE_ENDIAN
396         select SYS_SUPPORTS_ZBOOT_UART16550
397         select CPU_SUPPORTS_HUGEPAGES
398         select DMA_NONCOHERENT
399         select IRQ_MIPS_CPU
400         select PINCTRL
401         select GPIOLIB
402         select COMMON_CLK
403         select GENERIC_IRQ_CHIP
404         select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
405         select USE_OF
406
407 config LANTIQ
408         bool "Lantiq based platforms"
409         select DMA_NONCOHERENT
410         select IRQ_MIPS_CPU
411         select CEVT_R4K
412         select CSRC_R4K
413         select SYS_HAS_CPU_MIPS32_R1
414         select SYS_HAS_CPU_MIPS32_R2
415         select SYS_SUPPORTS_BIG_ENDIAN
416         select SYS_SUPPORTS_32BIT_KERNEL
417         select SYS_SUPPORTS_MIPS16
418         select SYS_SUPPORTS_MULTITHREADING
419         select SYS_SUPPORTS_VPE_LOADER
420         select SYS_HAS_EARLY_PRINTK
421         select GPIOLIB
422         select SWAP_IO_SPACE
423         select BOOT_RAW
424         select CLKDEV_LOOKUP
425         select HAVE_LEGACY_CLK
426         select USE_OF
427         select PINCTRL
428         select PINCTRL_LANTIQ
429         select ARCH_HAS_RESET_CONTROLLER
430         select RESET_CONTROLLER
431
432 config MACH_LOONGSON32
433         bool "Loongson 32-bit family of machines"
434         select SYS_SUPPORTS_ZBOOT
435         help
436           This enables support for the Loongson-1 family of machines.
437
438           Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
439           the Institute of Computing Technology (ICT), Chinese Academy of
440           Sciences (CAS).
441
442 config MACH_LOONGSON2EF
443         bool "Loongson-2E/F family of machines"
444         select SYS_SUPPORTS_ZBOOT
445         help
446           This enables the support of early Loongson-2E/F family of machines.
447
448 config MACH_LOONGSON64
449         bool "Loongson 64-bit family of machines"
450         select ARCH_SPARSEMEM_ENABLE
451         select ARCH_MIGHT_HAVE_PC_PARPORT
452         select ARCH_MIGHT_HAVE_PC_SERIO
453         select GENERIC_ISA_DMA_SUPPORT_BROKEN
454         select BOOT_ELF32
455         select BOARD_SCACHE
456         select CSRC_R4K
457         select CEVT_R4K
458         select CPU_HAS_WB
459         select FORCE_PCI
460         select ISA
461         select I8259
462         select IRQ_MIPS_CPU
463         select NO_EXCEPT_FILL
464         select NR_CPUS_DEFAULT_64
465         select USE_GENERIC_EARLY_PRINTK_8250
466         select PCI_DRIVERS_GENERIC
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         select CLOCKSOURCE_WATCHDOG if CPU_FREQ
1112         bool
1113
1114 config CSRC_SB1250
1115         bool
1116
1117 config MIPS_CLOCK_VSYSCALL
1118         def_bool CSRC_R4K || CLKSRC_MIPS_GIC
1119
1120 config GPIO_TXX9
1121         select GPIOLIB
1122         bool
1123
1124 config FW_CFE
1125         bool
1126
1127 config ARCH_SUPPORTS_UPROBES
1128         bool
1129
1130 config DMA_MAYBE_COHERENT
1131         select ARCH_HAS_DMA_COHERENCE_H
1132         select DMA_NONCOHERENT
1133         bool
1134
1135 config DMA_PERDEV_COHERENT
1136         bool
1137         select ARCH_HAS_SETUP_DMA_OPS
1138         select DMA_NONCOHERENT
1139
1140 config DMA_NONCOHERENT
1141         bool
1142         #
1143         # MIPS allows mixing "slightly different" Cacheability and Coherency
1144         # Attribute bits.  It is believed that the uncached access through
1145         # KSEG1 and the implementation specific "uncached accelerated" used
1146         # by pgprot_writcombine can be mixed, and the latter sometimes provides
1147         # significant advantages.
1148         #
1149         select ARCH_HAS_DMA_WRITE_COMBINE
1150         select ARCH_HAS_DMA_PREP_COHERENT
1151         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
1152         select ARCH_HAS_DMA_SET_UNCACHED
1153         select DMA_NONCOHERENT_MMAP
1154         select DMA_NONCOHERENT_CACHE_SYNC
1155         select NEED_DMA_MAP_STATE
1156
1157 config SYS_HAS_EARLY_PRINTK
1158         bool
1159
1160 config SYS_SUPPORTS_HOTPLUG_CPU
1161         bool
1162
1163 config MIPS_BONITO64
1164         bool
1165
1166 config MIPS_MSC
1167         bool
1168
1169 config SYNC_R4K
1170         bool
1171
1172 config MIPS_MACHINE
1173         def_bool n
1174
1175 config NO_IOPORT_MAP
1176         def_bool n
1177
1178 config GENERIC_CSUM
1179         def_bool CPU_NO_LOAD_STORE_LR
1180
1181 config GENERIC_ISA_DMA
1182         bool
1183         select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
1184         select ISA_DMA_API
1185
1186 config GENERIC_ISA_DMA_SUPPORT_BROKEN
1187         bool
1188         select GENERIC_ISA_DMA
1189
1190 config HAVE_PLAT_DELAY
1191         bool
1192
1193 config HAVE_PLAT_FW_INIT_CMDLINE
1194         bool
1195
1196 config HAVE_PLAT_MEMCPY
1197         bool
1198
1199 config ISA_DMA_API
1200         bool
1201
1202 config HOLES_IN_ZONE
1203         bool
1204
1205 config SYS_SUPPORTS_RELOCATABLE
1206         bool
1207         help
1208           Selected if the platform supports relocating the kernel.
1209           The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
1210           to allow access to command line and entropy sources.
1211
1212 config MIPS_CBPF_JIT
1213         def_bool y
1214         depends on BPF_JIT && HAVE_CBPF_JIT
1215
1216 config MIPS_EBPF_JIT
1217         def_bool y
1218         depends on BPF_JIT && HAVE_EBPF_JIT
1219
1220
1221 #
1222 # Endianness selection.  Sufficiently obscure so many users don't know what to
1223 # answer,so we try hard to limit the available choices.  Also the use of a
1224 # choice statement should be more obvious to the user.
1225 #
1226 choice
1227         prompt "Endianness selection"
1228         help
1229           Some MIPS machines can be configured for either little or big endian
1230           byte order. These modes require different kernels and a different
1231           Linux distribution.  In general there is one preferred byteorder for a
1232           particular system but some systems are just as commonly used in the
1233           one or the other endianness.
1234
1235 config CPU_BIG_ENDIAN
1236         bool "Big endian"
1237         depends on SYS_SUPPORTS_BIG_ENDIAN
1238
1239 config CPU_LITTLE_ENDIAN
1240         bool "Little endian"
1241         depends on SYS_SUPPORTS_LITTLE_ENDIAN
1242
1243 endchoice
1244
1245 config EXPORT_UASM
1246         bool
1247
1248 config SYS_SUPPORTS_APM_EMULATION
1249         bool
1250
1251 config SYS_SUPPORTS_BIG_ENDIAN
1252         bool
1253
1254 config SYS_SUPPORTS_LITTLE_ENDIAN
1255         bool
1256
1257 config SYS_SUPPORTS_HUGETLBFS
1258         bool
1259         depends on CPU_SUPPORTS_HUGEPAGES
1260         default y
1261
1262 config MIPS_HUGE_TLB_SUPPORT
1263         def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1264
1265 config IRQ_CPU_RM7K
1266         bool
1267
1268 config IRQ_MSP_SLP
1269         bool
1270
1271 config IRQ_MSP_CIC
1272         bool
1273
1274 config IRQ_TXX9
1275         bool
1276
1277 config IRQ_GT641XX
1278         bool
1279
1280 config PCI_GT64XXX_PCI0
1281         bool
1282
1283 config PCI_XTALK_BRIDGE
1284         bool
1285
1286 config NO_EXCEPT_FILL
1287         bool
1288
1289 config SOC_PNX833X
1290         bool
1291         select CEVT_R4K
1292         select CSRC_R4K
1293         select IRQ_MIPS_CPU
1294         select DMA_NONCOHERENT
1295         select SYS_HAS_CPU_MIPS32_R2
1296         select SYS_SUPPORTS_32BIT_KERNEL
1297         select SYS_SUPPORTS_LITTLE_ENDIAN
1298         select SYS_SUPPORTS_BIG_ENDIAN
1299         select SYS_SUPPORTS_MIPS16
1300         select CPU_MIPSR2_IRQ_VI
1301
1302 config SOC_PNX8335
1303         bool
1304         select SOC_PNX833X
1305
1306 config MIPS_SPRAM
1307         bool
1308
1309 config SWAP_IO_SPACE
1310         bool
1311
1312 config SGI_HAS_INDYDOG
1313         bool
1314
1315 config SGI_HAS_HAL2
1316         bool
1317
1318 config SGI_HAS_SEEQ
1319         bool
1320
1321 config SGI_HAS_WD93
1322         bool
1323
1324 config SGI_HAS_ZILOG
1325         bool
1326
1327 config SGI_HAS_I8042
1328         bool
1329
1330 config DEFAULT_SGI_PARTITION
1331         bool
1332
1333 config FW_ARC32
1334         bool
1335
1336 config FW_SNIPROM
1337         bool
1338
1339 config BOOT_ELF32
1340         bool
1341
1342 config MIPS_L1_CACHE_SHIFT_4
1343         bool
1344
1345 config MIPS_L1_CACHE_SHIFT_5
1346         bool
1347
1348 config MIPS_L1_CACHE_SHIFT_6
1349         bool
1350
1351 config MIPS_L1_CACHE_SHIFT_7
1352         bool
1353
1354 config MIPS_L1_CACHE_SHIFT
1355         int
1356         default "7" if MIPS_L1_CACHE_SHIFT_7
1357         default "6" if MIPS_L1_CACHE_SHIFT_6
1358         default "5" if MIPS_L1_CACHE_SHIFT_5
1359         default "4" if MIPS_L1_CACHE_SHIFT_4
1360         default "5"
1361
1362 config ARC_CMDLINE_ONLY
1363         bool
1364
1365 config ARC_CONSOLE
1366         bool "ARC console support"
1367         depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1368
1369 config ARC_MEMORY
1370         bool
1371
1372 config ARC_PROMLIB
1373         bool
1374
1375 config FW_ARC64
1376         bool
1377
1378 config BOOT_ELF64
1379         bool
1380
1381 menu "CPU selection"
1382
1383 choice
1384         prompt "CPU type"
1385         default CPU_R4X00
1386
1387 config CPU_LOONGSON64
1388         bool "Loongson 64-bit CPU"
1389         depends on SYS_HAS_CPU_LOONGSON64
1390         select ARCH_HAS_PHYS_TO_DMA
1391         select CPU_MIPSR2
1392         select CPU_HAS_PREFETCH
1393         select CPU_SUPPORTS_64BIT_KERNEL
1394         select CPU_SUPPORTS_HIGHMEM
1395         select CPU_SUPPORTS_HUGEPAGES
1396         select CPU_SUPPORTS_MSA
1397         select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
1398         select CPU_MIPSR2_IRQ_VI
1399         select WEAK_ORDERING
1400         select WEAK_REORDERING_BEYOND_LLSC
1401         select MIPS_ASID_BITS_VARIABLE
1402         select MIPS_PGD_C0_CONTEXT
1403         select MIPS_L1_CACHE_SHIFT_6
1404         select GPIOLIB
1405         select SWIOTLB
1406         help
1407                 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
1408                 cores implements the MIPS64R2 instruction set with many extensions,
1409                 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
1410                 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
1411                 Loongson-2E/2F is not covered here and will be removed in future.
1412
1413 config LOONGSON3_ENHANCEMENT
1414         bool "New Loongson-3 CPU Enhancements"
1415         default n
1416         depends on CPU_LOONGSON64
1417         help
1418           New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
1419           R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
1420           FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
1421           Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
1422           Fast TLB refill support, etc.
1423
1424           This option enable those enhancements which are not probed at run
1425           time. If you want a generic kernel to run on all Loongson 3 machines,
1426           please say 'N' here. If you want a high-performance kernel to run on
1427           new Loongson-3 machines only, please say 'Y' here.
1428
1429 config CPU_LOONGSON3_WORKAROUNDS
1430         bool "Old Loongson-3 LLSC Workarounds"
1431         default y if SMP
1432         depends on CPU_LOONGSON64
1433         help
1434           Loongson-3 processors have the llsc issues which require workarounds.
1435           Without workarounds the system may hang unexpectedly.
1436
1437           Newer Loongson-3 will fix these issues and no workarounds are needed.
1438           The workarounds have no significant side effect on them but may
1439           decrease the performance of the system so this option should be
1440           disabled unless the kernel is intended to be run on old systems.
1441
1442           If unsure, please say Y.
1443
1444 config CPU_LOONGSON3_CPUCFG_EMULATION
1445         bool "Emulate the CPUCFG instruction on older Loongson cores"
1446         default y
1447         depends on CPU_LOONGSON64
1448         help
1449           Loongson-3A R4 and newer have the CPUCFG instruction available for
1450           userland to query CPU capabilities, much like CPUID on x86. This
1451           option provides emulation of the instruction on older Loongson
1452           cores, back to Loongson-3A1000.
1453
1454           If unsure, please say Y.
1455
1456 config CPU_LOONGSON2E
1457         bool "Loongson 2E"
1458         depends on SYS_HAS_CPU_LOONGSON2E
1459         select CPU_LOONGSON2EF
1460         help
1461           The Loongson 2E processor implements the MIPS III instruction set
1462           with many extensions.
1463
1464           It has an internal FPGA northbridge, which is compatible to
1465           bonito64.
1466
1467 config CPU_LOONGSON2F
1468         bool "Loongson 2F"
1469         depends on SYS_HAS_CPU_LOONGSON2F
1470         select CPU_LOONGSON2EF
1471         select GPIOLIB
1472         help
1473           The Loongson 2F processor implements the MIPS III instruction set
1474           with many extensions.
1475
1476           Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1477           have a similar programming interface with FPGA northbridge used in
1478           Loongson2E.
1479
1480 config CPU_LOONGSON1B
1481         bool "Loongson 1B"
1482         depends on SYS_HAS_CPU_LOONGSON1B
1483         select CPU_LOONGSON32
1484         select LEDS_GPIO_REGISTER
1485         help
1486           The Loongson 1B 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_LOONGSON1C
1491         bool "Loongson 1C"
1492         depends on SYS_HAS_CPU_LOONGSON1C
1493         select CPU_LOONGSON32
1494         select LEDS_GPIO_REGISTER
1495         help
1496           The Loongson 1C is a 32-bit SoC, which implements the MIPS32
1497           Release 1 instruction set and part of the MIPS32 Release 2
1498           instruction set.
1499
1500 config CPU_MIPS32_R1
1501         bool "MIPS32 Release 1"
1502         depends on SYS_HAS_CPU_MIPS32_R1
1503         select CPU_HAS_PREFETCH
1504         select CPU_SUPPORTS_32BIT_KERNEL
1505         select CPU_SUPPORTS_HIGHMEM
1506         help
1507           Choose this option to build a kernel for release 1 or later of the
1508           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1509           MIPS processor are based on a MIPS32 processor.  If you know the
1510           specific type of processor in your system, choose those that one
1511           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1512           Release 2 of the MIPS32 architecture is available since several
1513           years so chances are you even have a MIPS32 Release 2 processor
1514           in which case you should choose CPU_MIPS32_R2 instead for better
1515           performance.
1516
1517 config CPU_MIPS32_R2
1518         bool "MIPS32 Release 2"
1519         depends on SYS_HAS_CPU_MIPS32_R2
1520         select CPU_HAS_PREFETCH
1521         select CPU_SUPPORTS_32BIT_KERNEL
1522         select CPU_SUPPORTS_HIGHMEM
1523         select CPU_SUPPORTS_MSA
1524         select HAVE_KVM
1525         help
1526           Choose this option to build a kernel for release 2 or later of the
1527           MIPS32 architecture.  Most modern embedded systems with a 32-bit
1528           MIPS processor are based on a MIPS32 processor.  If you know the
1529           specific type of processor in your system, choose those that one
1530           otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1531
1532 config CPU_MIPS32_R5
1533         bool "MIPS32 Release 5"
1534         depends on SYS_HAS_CPU_MIPS32_R5
1535         select CPU_HAS_PREFETCH
1536         select CPU_SUPPORTS_32BIT_KERNEL
1537         select CPU_SUPPORTS_HIGHMEM
1538         select CPU_SUPPORTS_MSA
1539         select HAVE_KVM
1540         select MIPS_O32_FP64_SUPPORT
1541         help
1542           Choose this option to build a kernel for release 5 or later of the
1543           MIPS32 architecture.  New MIPS processors, starting with the Warrior
1544           family, are based on a MIPS32r5 processor. If you own an older
1545           processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1546
1547 config CPU_MIPS32_R6
1548         bool "MIPS32 Release 6"
1549         depends on SYS_HAS_CPU_MIPS32_R6
1550         select CPU_HAS_PREFETCH
1551         select CPU_NO_LOAD_STORE_LR
1552         select CPU_SUPPORTS_32BIT_KERNEL
1553         select CPU_SUPPORTS_HIGHMEM
1554         select CPU_SUPPORTS_MSA
1555         select HAVE_KVM
1556         select MIPS_O32_FP64_SUPPORT
1557         help
1558           Choose this option to build a kernel for release 6 or later of the
1559           MIPS32 architecture.  New MIPS processors, starting with the Warrior
1560           family, are based on a MIPS32r6 processor. If you own an older
1561           processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1562
1563 config CPU_MIPS64_R1
1564         bool "MIPS64 Release 1"
1565         depends on SYS_HAS_CPU_MIPS64_R1
1566         select CPU_HAS_PREFETCH
1567         select CPU_SUPPORTS_32BIT_KERNEL
1568         select CPU_SUPPORTS_64BIT_KERNEL
1569         select CPU_SUPPORTS_HIGHMEM
1570         select CPU_SUPPORTS_HUGEPAGES
1571         help
1572           Choose this option to build a kernel for release 1 or later of the
1573           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1574           MIPS processor are based on a MIPS64 processor.  If you know the
1575           specific type of processor in your system, choose those that one
1576           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1577           Release 2 of the MIPS64 architecture is available since several
1578           years so chances are you even have a MIPS64 Release 2 processor
1579           in which case you should choose CPU_MIPS64_R2 instead for better
1580           performance.
1581
1582 config CPU_MIPS64_R2
1583         bool "MIPS64 Release 2"
1584         depends on SYS_HAS_CPU_MIPS64_R2
1585         select CPU_HAS_PREFETCH
1586         select CPU_SUPPORTS_32BIT_KERNEL
1587         select CPU_SUPPORTS_64BIT_KERNEL
1588         select CPU_SUPPORTS_HIGHMEM
1589         select CPU_SUPPORTS_HUGEPAGES
1590         select CPU_SUPPORTS_MSA
1591         select HAVE_KVM
1592         help
1593           Choose this option to build a kernel for release 2 or later of the
1594           MIPS64 architecture.  Many modern embedded systems with a 64-bit
1595           MIPS processor are based on a MIPS64 processor.  If you know the
1596           specific type of processor in your system, choose those that one
1597           otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1598
1599 config CPU_MIPS64_R5
1600         bool "MIPS64 Release 5"
1601         depends on SYS_HAS_CPU_MIPS64_R5
1602         select CPU_HAS_PREFETCH
1603         select CPU_SUPPORTS_32BIT_KERNEL
1604         select CPU_SUPPORTS_64BIT_KERNEL
1605         select CPU_SUPPORTS_HIGHMEM
1606         select CPU_SUPPORTS_HUGEPAGES
1607         select CPU_SUPPORTS_MSA
1608         select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1609         select HAVE_KVM
1610         help
1611           Choose this option to build a kernel for release 5 or later of the
1612           MIPS64 architecture.  This is a intermediate MIPS architecture
1613           release partly implementing release 6 features. Though there is no
1614           any hardware known to be based on this release.
1615
1616 config CPU_MIPS64_R6
1617         bool "MIPS64 Release 6"
1618         depends on SYS_HAS_CPU_MIPS64_R6
1619         select CPU_HAS_PREFETCH
1620         select CPU_NO_LOAD_STORE_LR
1621         select CPU_SUPPORTS_32BIT_KERNEL
1622         select CPU_SUPPORTS_64BIT_KERNEL
1623         select CPU_SUPPORTS_HIGHMEM
1624         select CPU_SUPPORTS_HUGEPAGES
1625         select CPU_SUPPORTS_MSA
1626         select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1627         select HAVE_KVM
1628         help
1629           Choose this option to build a kernel for release 6 or later of the
1630           MIPS64 architecture.  New MIPS processors, starting with the Warrior
1631           family, are based on a MIPS64r6 processor. If you own an older
1632           processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1633
1634 config CPU_P5600
1635         bool "MIPS Warrior P5600"
1636         depends on SYS_HAS_CPU_P5600
1637         select CPU_HAS_PREFETCH
1638         select CPU_SUPPORTS_32BIT_KERNEL
1639         select CPU_SUPPORTS_HIGHMEM
1640         select CPU_SUPPORTS_MSA
1641         select CPU_SUPPORTS_UNCACHED_ACCELERATED
1642         select CPU_SUPPORTS_CPUFREQ
1643         select CPU_MIPSR2_IRQ_VI
1644         select CPU_MIPSR2_IRQ_EI
1645         select HAVE_KVM
1646         select MIPS_O32_FP64_SUPPORT
1647         help
1648           Choose this option to build a kernel for MIPS Warrior P5600 CPU.
1649           It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
1650           MMU with two-levels TLB, UCA, MSA, MDU core level features and system
1651           level features like up to six P5600 calculation cores, CM2 with L2
1652           cache, IOCU/IOMMU (though might be unused depending on the system-
1653           specific IP core configuration), GIC, CPC, virtualisation module,
1654           eJTAG and PDtrace.
1655
1656 config CPU_R3000
1657         bool "R3000"
1658         depends on SYS_HAS_CPU_R3000
1659         select CPU_HAS_WB
1660         select CPU_R3K_TLB
1661         select CPU_SUPPORTS_32BIT_KERNEL
1662         select CPU_SUPPORTS_HIGHMEM
1663         help
1664           Please make sure to pick the right CPU type. Linux/MIPS is not
1665           designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1666           *not* work on R4000 machines and vice versa.  However, since most
1667           of the supported machines have an R4000 (or similar) CPU, R4x00
1668           might be a safe bet.  If the resulting kernel does not work,
1669           try to recompile with R3000.
1670
1671 config CPU_TX39XX
1672         bool "R39XX"
1673         depends on SYS_HAS_CPU_TX39XX
1674         select CPU_SUPPORTS_32BIT_KERNEL
1675         select CPU_R3K_TLB
1676
1677 config CPU_VR41XX
1678         bool "R41xx"
1679         depends on SYS_HAS_CPU_VR41XX
1680         select CPU_SUPPORTS_32BIT_KERNEL
1681         select CPU_SUPPORTS_64BIT_KERNEL
1682         help
1683           The options selects support for the NEC VR4100 series of processors.
1684           Only choose this option if you have one of these processors as a
1685           kernel built with this option will not run on any other type of
1686           processor or vice versa.
1687
1688 config CPU_R4X00
1689         bool "R4x00"
1690         depends on SYS_HAS_CPU_R4X00
1691         select CPU_SUPPORTS_32BIT_KERNEL
1692         select CPU_SUPPORTS_64BIT_KERNEL
1693         select CPU_SUPPORTS_HUGEPAGES
1694         help
1695           MIPS Technologies R4000-series processors other than 4300, including
1696           the R4000, R4400, R4600, and 4700.
1697
1698 config CPU_TX49XX
1699         bool "R49XX"
1700         depends on SYS_HAS_CPU_TX49XX
1701         select CPU_HAS_PREFETCH
1702         select CPU_SUPPORTS_32BIT_KERNEL
1703         select CPU_SUPPORTS_64BIT_KERNEL
1704         select CPU_SUPPORTS_HUGEPAGES
1705
1706 config CPU_R5000
1707         bool "R5000"
1708         depends on SYS_HAS_CPU_R5000
1709         select CPU_SUPPORTS_32BIT_KERNEL
1710         select CPU_SUPPORTS_64BIT_KERNEL
1711         select CPU_SUPPORTS_HUGEPAGES
1712         help
1713           MIPS Technologies R5000-series processors other than the Nevada.
1714
1715 config CPU_R5500
1716         bool "R5500"
1717         depends on SYS_HAS_CPU_R5500
1718         select CPU_SUPPORTS_32BIT_KERNEL
1719         select CPU_SUPPORTS_64BIT_KERNEL
1720         select CPU_SUPPORTS_HUGEPAGES
1721         help
1722           NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1723           instruction set.
1724
1725 config CPU_NEVADA
1726         bool "RM52xx"
1727         depends on SYS_HAS_CPU_NEVADA
1728         select CPU_SUPPORTS_32BIT_KERNEL
1729         select CPU_SUPPORTS_64BIT_KERNEL
1730         select CPU_SUPPORTS_HUGEPAGES
1731         help
1732           QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1733
1734 config CPU_R10000
1735         bool "R10000"
1736         depends on SYS_HAS_CPU_R10000
1737         select CPU_HAS_PREFETCH
1738         select CPU_SUPPORTS_32BIT_KERNEL
1739         select CPU_SUPPORTS_64BIT_KERNEL
1740         select CPU_SUPPORTS_HIGHMEM
1741         select CPU_SUPPORTS_HUGEPAGES
1742         help
1743           MIPS Technologies R10000-series processors.
1744
1745 config CPU_RM7000
1746         bool "RM7000"
1747         depends on SYS_HAS_CPU_RM7000
1748         select CPU_HAS_PREFETCH
1749         select CPU_SUPPORTS_32BIT_KERNEL
1750         select CPU_SUPPORTS_64BIT_KERNEL
1751         select CPU_SUPPORTS_HIGHMEM
1752         select CPU_SUPPORTS_HUGEPAGES
1753
1754 config CPU_SB1
1755         bool "SB1"
1756         depends on SYS_HAS_CPU_SB1
1757         select CPU_SUPPORTS_32BIT_KERNEL
1758         select CPU_SUPPORTS_64BIT_KERNEL
1759         select CPU_SUPPORTS_HIGHMEM
1760         select CPU_SUPPORTS_HUGEPAGES
1761         select WEAK_ORDERING
1762
1763 config CPU_CAVIUM_OCTEON
1764         bool "Cavium Octeon processor"
1765         depends on SYS_HAS_CPU_CAVIUM_OCTEON
1766         select CPU_HAS_PREFETCH
1767         select CPU_SUPPORTS_64BIT_KERNEL
1768         select WEAK_ORDERING
1769         select CPU_SUPPORTS_HIGHMEM
1770         select CPU_SUPPORTS_HUGEPAGES
1771         select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1772         select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1773         select MIPS_L1_CACHE_SHIFT_7
1774         select HAVE_KVM
1775         help
1776           The Cavium Octeon processor is a highly integrated chip containing
1777           many ethernet hardware widgets for networking tasks. The processor
1778           can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1779           Full details can be found at http://www.caviumnetworks.com.
1780
1781 config CPU_BMIPS
1782         bool "Broadcom BMIPS"
1783         depends on SYS_HAS_CPU_BMIPS
1784         select CPU_MIPS32
1785         select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
1786         select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1787         select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1788         select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1789         select CPU_SUPPORTS_32BIT_KERNEL
1790         select DMA_NONCOHERENT
1791         select IRQ_MIPS_CPU
1792         select SWAP_IO_SPACE
1793         select WEAK_ORDERING
1794         select CPU_SUPPORTS_HIGHMEM
1795         select CPU_HAS_PREFETCH
1796         select CPU_SUPPORTS_CPUFREQ
1797         select MIPS_EXTERNAL_TIMER
1798         help
1799           Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
1800
1801 config CPU_XLR
1802         bool "Netlogic XLR SoC"
1803         depends on SYS_HAS_CPU_XLR
1804         select CPU_SUPPORTS_32BIT_KERNEL
1805         select CPU_SUPPORTS_64BIT_KERNEL
1806         select CPU_SUPPORTS_HIGHMEM
1807         select CPU_SUPPORTS_HUGEPAGES
1808         select WEAK_ORDERING
1809         select WEAK_REORDERING_BEYOND_LLSC
1810         help
1811           Netlogic Microsystems XLR/XLS processors.
1812
1813 config CPU_XLP
1814         bool "Netlogic XLP SoC"
1815         depends on SYS_HAS_CPU_XLP
1816         select CPU_SUPPORTS_32BIT_KERNEL
1817         select CPU_SUPPORTS_64BIT_KERNEL
1818         select CPU_SUPPORTS_HIGHMEM
1819         select WEAK_ORDERING
1820         select WEAK_REORDERING_BEYOND_LLSC
1821         select CPU_HAS_PREFETCH
1822         select CPU_MIPSR2
1823         select CPU_SUPPORTS_HUGEPAGES
1824         select MIPS_ASID_BITS_VARIABLE
1825         help
1826           Netlogic Microsystems XLP processors.
1827 endchoice
1828
1829 config CPU_MIPS32_3_5_FEATURES
1830         bool "MIPS32 Release 3.5 Features"
1831         depends on SYS_HAS_CPU_MIPS32_R3_5
1832         depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
1833                    CPU_P5600
1834         help
1835           Choose this option to build a kernel for release 2 or later of the
1836           MIPS32 architecture including features from the 3.5 release such as
1837           support for Enhanced Virtual Addressing (EVA).
1838
1839 config CPU_MIPS32_3_5_EVA
1840         bool "Enhanced Virtual Addressing (EVA)"
1841         depends on CPU_MIPS32_3_5_FEATURES
1842         select EVA
1843         default y
1844         help
1845           Choose this option if you want to enable the Enhanced Virtual
1846           Addressing (EVA) on your MIPS32 core (such as proAptiv).
1847           One of its primary benefits is an increase in the maximum size
1848           of lowmem (up to 3GB). If unsure, say 'N' here.
1849
1850 config CPU_MIPS32_R5_FEATURES
1851         bool "MIPS32 Release 5 Features"
1852         depends on SYS_HAS_CPU_MIPS32_R5
1853         depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
1854         help
1855           Choose this option to build a kernel for release 2 or later of the
1856           MIPS32 architecture including features from release 5 such as
1857           support for Extended Physical Addressing (XPA).
1858
1859 config CPU_MIPS32_R5_XPA
1860         bool "Extended Physical Addressing (XPA)"
1861         depends on CPU_MIPS32_R5_FEATURES
1862         depends on !EVA
1863         depends on !PAGE_SIZE_4KB
1864         depends on SYS_SUPPORTS_HIGHMEM
1865         select XPA
1866         select HIGHMEM
1867         select PHYS_ADDR_T_64BIT
1868         default n
1869         help
1870           Choose this option if you want to enable the Extended Physical
1871           Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1872           benefit is to increase physical addressing equal to or greater
1873           than 40 bits. Note that this has the side effect of turning on
1874           64-bit addressing which in turn makes the PTEs 64-bit in size.
1875           If unsure, say 'N' here.
1876
1877 if CPU_LOONGSON2F
1878 config CPU_NOP_WORKAROUNDS
1879         bool
1880
1881 config CPU_JUMP_WORKAROUNDS
1882         bool
1883
1884 config CPU_LOONGSON2F_WORKAROUNDS
1885         bool "Loongson 2F Workarounds"
1886         default y
1887         select CPU_NOP_WORKAROUNDS
1888         select CPU_JUMP_WORKAROUNDS
1889         help
1890           Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1891           require workarounds.  Without workarounds the system may hang
1892           unexpectedly.  For more information please refer to the gas
1893           -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1894
1895           Loongson 2F03 and later have fixed these issues and no workarounds
1896           are needed.  The workarounds have no significant side effect on them
1897           but may decrease the performance of the system so this option should
1898           be disabled unless the kernel is intended to be run on 2F01 or 2F02
1899           systems.
1900
1901           If unsure, please say Y.
1902 endif # CPU_LOONGSON2F
1903
1904 config SYS_SUPPORTS_ZBOOT
1905         bool
1906         select HAVE_KERNEL_GZIP
1907         select HAVE_KERNEL_BZIP2
1908         select HAVE_KERNEL_LZ4
1909         select HAVE_KERNEL_LZMA
1910         select HAVE_KERNEL_LZO
1911         select HAVE_KERNEL_XZ
1912
1913 config SYS_SUPPORTS_ZBOOT_UART16550
1914         bool
1915         select SYS_SUPPORTS_ZBOOT
1916
1917 config SYS_SUPPORTS_ZBOOT_UART_PROM
1918         bool
1919         select SYS_SUPPORTS_ZBOOT
1920
1921 config CPU_LOONGSON2EF
1922         bool
1923         select CPU_SUPPORTS_32BIT_KERNEL
1924         select CPU_SUPPORTS_64BIT_KERNEL
1925         select CPU_SUPPORTS_HIGHMEM
1926         select CPU_SUPPORTS_HUGEPAGES
1927         select ARCH_HAS_PHYS_TO_DMA
1928
1929 config CPU_LOONGSON32
1930         bool
1931         select CPU_MIPS32
1932         select CPU_MIPSR2
1933         select CPU_HAS_PREFETCH
1934         select CPU_SUPPORTS_32BIT_KERNEL
1935         select CPU_SUPPORTS_HIGHMEM
1936         select CPU_SUPPORTS_CPUFREQ
1937
1938 config CPU_BMIPS32_3300
1939         select SMP_UP if SMP
1940         bool
1941
1942 config CPU_BMIPS4350
1943         bool
1944         select SYS_SUPPORTS_SMP
1945         select SYS_SUPPORTS_HOTPLUG_CPU
1946
1947 config CPU_BMIPS4380
1948         bool
1949         select MIPS_L1_CACHE_SHIFT_6
1950         select SYS_SUPPORTS_SMP
1951         select SYS_SUPPORTS_HOTPLUG_CPU
1952         select CPU_HAS_RIXI
1953
1954 config CPU_BMIPS5000
1955         bool
1956         select MIPS_CPU_SCACHE
1957         select MIPS_L1_CACHE_SHIFT_7
1958         select SYS_SUPPORTS_SMP
1959         select SYS_SUPPORTS_HOTPLUG_CPU
1960         select CPU_HAS_RIXI
1961
1962 config SYS_HAS_CPU_LOONGSON64
1963         bool
1964         select CPU_SUPPORTS_CPUFREQ
1965         select CPU_HAS_RIXI
1966
1967 config SYS_HAS_CPU_LOONGSON2E
1968         bool
1969
1970 config SYS_HAS_CPU_LOONGSON2F
1971         bool
1972         select CPU_SUPPORTS_CPUFREQ
1973         select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1974
1975 config SYS_HAS_CPU_LOONGSON1B
1976         bool
1977
1978 config SYS_HAS_CPU_LOONGSON1C
1979         bool
1980
1981 config SYS_HAS_CPU_MIPS32_R1
1982         bool
1983
1984 config SYS_HAS_CPU_MIPS32_R2
1985         bool
1986
1987 config SYS_HAS_CPU_MIPS32_R3_5
1988         bool
1989
1990 config SYS_HAS_CPU_MIPS32_R5
1991         bool
1992         select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1993
1994 config SYS_HAS_CPU_MIPS32_R6
1995         bool
1996         select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1997
1998 config SYS_HAS_CPU_MIPS64_R1
1999         bool
2000
2001 config SYS_HAS_CPU_MIPS64_R2
2002         bool
2003
2004 config SYS_HAS_CPU_MIPS64_R6
2005         bool
2006         select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2007
2008 config SYS_HAS_CPU_P5600
2009         bool
2010         select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2011
2012 config SYS_HAS_CPU_R3000
2013         bool
2014
2015 config SYS_HAS_CPU_TX39XX
2016         bool
2017
2018 config SYS_HAS_CPU_VR41XX
2019         bool
2020
2021 config SYS_HAS_CPU_R4X00
2022         bool
2023
2024 config SYS_HAS_CPU_TX49XX
2025         bool
2026
2027 config SYS_HAS_CPU_R5000
2028         bool
2029
2030 config SYS_HAS_CPU_R5500
2031         bool
2032
2033 config SYS_HAS_CPU_NEVADA
2034         bool
2035
2036 config SYS_HAS_CPU_R10000
2037         bool
2038         select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2039
2040 config SYS_HAS_CPU_RM7000
2041         bool
2042
2043 config SYS_HAS_CPU_SB1
2044         bool
2045
2046 config SYS_HAS_CPU_CAVIUM_OCTEON
2047         bool
2048
2049 config SYS_HAS_CPU_BMIPS
2050         bool
2051
2052 config SYS_HAS_CPU_BMIPS32_3300
2053         bool
2054         select SYS_HAS_CPU_BMIPS
2055
2056 config SYS_HAS_CPU_BMIPS4350
2057         bool
2058         select SYS_HAS_CPU_BMIPS
2059
2060 config SYS_HAS_CPU_BMIPS4380
2061         bool
2062         select SYS_HAS_CPU_BMIPS
2063
2064 config SYS_HAS_CPU_BMIPS5000
2065         bool
2066         select SYS_HAS_CPU_BMIPS
2067         select ARCH_HAS_SYNC_DMA_FOR_CPU
2068
2069 config SYS_HAS_CPU_XLR
2070         bool
2071
2072 config SYS_HAS_CPU_XLP
2073         bool
2074
2075 #
2076 # CPU may reorder R->R, R->W, W->R, W->W
2077 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
2078 #
2079 config WEAK_ORDERING
2080         bool
2081
2082 #
2083 # CPU may reorder reads and writes beyond LL/SC
2084 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
2085 #
2086 config WEAK_REORDERING_BEYOND_LLSC
2087         bool
2088 endmenu
2089
2090 #
2091 # These two indicate any level of the MIPS32 and MIPS64 architecture
2092 #
2093 config CPU_MIPS32
2094         bool
2095         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
2096                      CPU_MIPS32_R6 || CPU_P5600
2097
2098 config CPU_MIPS64
2099         bool
2100         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
2101                      CPU_MIPS64_R6
2102
2103 #
2104 # These indicate the revision of the architecture
2105 #
2106 config CPU_MIPSR1
2107         bool
2108         default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
2109
2110 config CPU_MIPSR2
2111         bool
2112         default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
2113         select CPU_HAS_RIXI
2114         select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2115         select MIPS_SPRAM
2116
2117 config CPU_MIPSR5
2118         bool
2119         default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
2120         select CPU_HAS_RIXI
2121         select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2122         select MIPS_SPRAM
2123
2124 config CPU_MIPSR6
2125         bool
2126         default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
2127         select CPU_HAS_RIXI
2128         select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2129         select HAVE_ARCH_BITREVERSE
2130         select MIPS_ASID_BITS_VARIABLE
2131         select MIPS_CRC_SUPPORT
2132         select MIPS_SPRAM
2133
2134 config TARGET_ISA_REV
2135         int
2136         default 1 if CPU_MIPSR1
2137         default 2 if CPU_MIPSR2
2138         default 5 if CPU_MIPSR5
2139         default 6 if CPU_MIPSR6
2140         default 0
2141         help
2142           Reflects the ISA revision being targeted by the kernel build. This
2143           is effectively the Kconfig equivalent of MIPS_ISA_REV.
2144
2145 config EVA
2146         bool
2147
2148 config XPA
2149         bool
2150
2151 config SYS_SUPPORTS_32BIT_KERNEL
2152         bool
2153 config SYS_SUPPORTS_64BIT_KERNEL
2154         bool
2155 config CPU_SUPPORTS_32BIT_KERNEL
2156         bool
2157 config CPU_SUPPORTS_64BIT_KERNEL
2158         bool
2159 config CPU_SUPPORTS_CPUFREQ
2160         bool
2161 config CPU_SUPPORTS_ADDRWINCFG
2162         bool
2163 config CPU_SUPPORTS_HUGEPAGES
2164         bool
2165         depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
2166 config MIPS_PGD_C0_CONTEXT
2167         bool
2168         default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
2169
2170 #
2171 # Set to y for ptrace access to watch registers.
2172 #
2173 config HARDWARE_WATCHPOINTS
2174         bool
2175         default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
2176
2177 menu "Kernel type"
2178
2179 choice
2180         prompt "Kernel code model"
2181         help
2182           You should only select this option if you have a workload that
2183           actually benefits from 64-bit processing or if your machine has
2184           large memory.  You will only be presented a single option in this
2185           menu if your system does not support both 32-bit and 64-bit kernels.
2186
2187 config 32BIT
2188         bool "32-bit kernel"
2189         depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2190         select TRAD_SIGNALS
2191         help
2192           Select this option if you want to build a 32-bit kernel.
2193
2194 config 64BIT
2195         bool "64-bit kernel"
2196         depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
2197         help
2198           Select this option if you want to build a 64-bit kernel.
2199
2200 endchoice
2201
2202 config KVM_GUEST
2203         bool "KVM Guest Kernel"
2204         depends on BROKEN_ON_SMP
2205         help
2206           Select this option if building a guest kernel for KVM (Trap & Emulate)
2207           mode.
2208
2209 config KVM_GUEST_TIMER_FREQ
2210         int "Count/Compare Timer Frequency (MHz)"
2211         depends on KVM_GUEST
2212         default 100
2213         help
2214           Set this to non-zero if building a guest kernel for KVM to skip RTC
2215           emulation when determining guest CPU Frequency. Instead, the guest's
2216           timer frequency is specified directly.
2217
2218 config MIPS_VA_BITS_48
2219         bool "48 bits virtual memory"
2220         depends on 64BIT
2221         help
2222           Support a maximum at least 48 bits of application virtual
2223           memory.  Default is 40 bits or less, depending on the CPU.
2224           For page sizes 16k and above, this option results in a small
2225           memory overhead for page tables.  For 4k page size, a fourth
2226           level of page tables is added which imposes both a memory
2227           overhead as well as slower TLB fault handling.
2228
2229           If unsure, say N.
2230
2231 choice
2232         prompt "Kernel page size"
2233         default PAGE_SIZE_4KB
2234
2235 config PAGE_SIZE_4KB
2236         bool "4kB"
2237         depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
2238         help
2239           This option select the standard 4kB Linux page size.  On some
2240           R3000-family processors this is the only available page size.  Using
2241           4kB page size will minimize memory consumption and is therefore
2242           recommended for low memory systems.
2243
2244 config PAGE_SIZE_8KB
2245         bool "8kB"
2246         depends on CPU_CAVIUM_OCTEON
2247         depends on !MIPS_VA_BITS_48
2248         help
2249           Using 8kB page size will result in higher performance kernel at
2250           the price of higher memory consumption.  This option is available
2251           only on cnMIPS processors.  Note that you will need a suitable Linux
2252           distribution to support this.
2253
2254 config PAGE_SIZE_16KB
2255         bool "16kB"
2256         depends on !CPU_R3000 && !CPU_TX39XX
2257         help
2258           Using 16kB page size will result in higher performance kernel at
2259           the price of higher memory consumption.  This option is available on
2260           all non-R3000 family processors.  Note that you will need a suitable
2261           Linux distribution to support this.
2262
2263 config PAGE_SIZE_32KB
2264         bool "32kB"
2265         depends on CPU_CAVIUM_OCTEON
2266         depends on !MIPS_VA_BITS_48
2267         help
2268           Using 32kB page size will result in higher performance kernel at
2269           the price of higher memory consumption.  This option is available
2270           only on cnMIPS cores.  Note that you will need a suitable Linux
2271           distribution to support this.
2272
2273 config PAGE_SIZE_64KB
2274         bool "64kB"
2275         depends on !CPU_R3000 && !CPU_TX39XX
2276         help
2277           Using 64kB page size will result in higher performance kernel at
2278           the price of higher memory consumption.  This option is available on
2279           all non-R3000 family processor.  Not that at the time of this
2280           writing this option is still high experimental.
2281
2282 endchoice
2283
2284 config FORCE_MAX_ZONEORDER
2285         int "Maximum zone order"
2286         range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2287         default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2288         range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2289         default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2290         range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2291         default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2292         range 11 64
2293         default "11"
2294         help
2295           The kernel memory allocator divides physically contiguous memory
2296           blocks into "zones", where each zone is a power of two number of
2297           pages.  This option selects the largest power of two that the kernel
2298           keeps in the memory allocator.  If you need to allocate very large
2299           blocks of physically contiguous memory, then you may need to
2300           increase this value.
2301
2302           This config option is actually maximum order plus one. For example,
2303           a value of 11 means that the largest free memory block is 2^10 pages.
2304
2305           The page size is not necessarily 4KB.  Keep this in mind
2306           when choosing a value for this option.
2307
2308 config BOARD_SCACHE
2309         bool
2310
2311 config IP22_CPU_SCACHE
2312         bool
2313         select BOARD_SCACHE
2314
2315 #
2316 # Support for a MIPS32 / MIPS64 style S-caches
2317 #
2318 config MIPS_CPU_SCACHE
2319         bool
2320         select BOARD_SCACHE
2321
2322 config R5000_CPU_SCACHE
2323         bool
2324         select BOARD_SCACHE
2325
2326 config RM7000_CPU_SCACHE
2327         bool
2328         select BOARD_SCACHE
2329
2330 config SIBYTE_DMA_PAGEOPS
2331         bool "Use DMA to clear/copy pages"
2332         depends on CPU_SB1
2333         help
2334           Instead of using the CPU to zero and copy pages, use a Data Mover
2335           channel.  These DMA channels are otherwise unused by the standard
2336           SiByte Linux port.  Seems to give a small performance benefit.
2337
2338 config CPU_HAS_PREFETCH
2339         bool
2340
2341 config CPU_GENERIC_DUMP_TLB
2342         bool
2343         default y if !(CPU_R3000 || CPU_TX39XX)
2344
2345 config MIPS_FP_SUPPORT
2346         bool "Floating Point support" if EXPERT
2347         default y
2348         help
2349           Select y to include support for floating point in the kernel
2350           including initialization of FPU hardware, FP context save & restore
2351           and emulation of an FPU where necessary. Without this support any
2352           userland program attempting to use floating point instructions will
2353           receive a SIGILL.
2354
2355           If you know that your userland will not attempt to use floating point
2356           instructions then you can say n here to shrink the kernel a little.
2357
2358           If unsure, say y.
2359
2360 config CPU_R2300_FPU
2361         bool
2362         depends on MIPS_FP_SUPPORT
2363         default y if CPU_R3000 || CPU_TX39XX
2364
2365 config CPU_R3K_TLB
2366         bool
2367
2368 config CPU_R4K_FPU
2369         bool
2370         depends on MIPS_FP_SUPPORT
2371         default y if !CPU_R2300_FPU
2372
2373 config CPU_R4K_CACHE_TLB
2374         bool
2375         default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
2376
2377 config MIPS_MT_SMP
2378         bool "MIPS MT SMP support (1 TC on each available VPE)"
2379         default y
2380         depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
2381         select CPU_MIPSR2_IRQ_VI
2382         select CPU_MIPSR2_IRQ_EI
2383         select SYNC_R4K
2384         select MIPS_MT
2385         select SMP
2386         select SMP_UP
2387         select SYS_SUPPORTS_SMP
2388         select SYS_SUPPORTS_SCHED_SMT
2389         select MIPS_PERF_SHARED_TC_COUNTERS
2390         help
2391           This is a kernel model which is known as SMVP. This is supported
2392           on cores with the MT ASE and uses the available VPEs to implement
2393           virtual processors which supports SMP. This is equivalent to the
2394           Intel Hyperthreading feature. For further information go to
2395           <http://www.imgtec.com/mips/mips-multithreading.asp>.
2396
2397 config MIPS_MT
2398         bool
2399
2400 config SCHED_SMT
2401         bool "SMT (multithreading) scheduler support"
2402         depends on SYS_SUPPORTS_SCHED_SMT
2403         default n
2404         help
2405           SMT scheduler support improves the CPU scheduler's decision making
2406           when dealing with MIPS MT enabled cores at a cost of slightly
2407           increased overhead in some places. If unsure say N here.
2408
2409 config SYS_SUPPORTS_SCHED_SMT
2410         bool
2411
2412 config SYS_SUPPORTS_MULTITHREADING
2413         bool
2414
2415 config MIPS_MT_FPAFF
2416         bool "Dynamic FPU affinity for FP-intensive threads"
2417         default y
2418         depends on MIPS_MT_SMP
2419
2420 config MIPSR2_TO_R6_EMULATOR
2421         bool "MIPS R2-to-R6 emulator"
2422         depends on CPU_MIPSR6
2423         depends on MIPS_FP_SUPPORT
2424         default y
2425         help
2426           Choose this option if you want to run non-R6 MIPS userland code.
2427           Even if you say 'Y' here, the emulator will still be disabled by
2428           default. You can enable it using the 'mipsr2emu' kernel option.
2429           The only reason this is a build-time option is to save ~14K from the
2430           final kernel image.
2431
2432 config SYS_SUPPORTS_VPE_LOADER
2433         bool
2434         depends on SYS_SUPPORTS_MULTITHREADING
2435         help
2436           Indicates that the platform supports the VPE loader, and provides
2437           physical_memsize.
2438
2439 config MIPS_VPE_LOADER
2440         bool "VPE loader support."
2441         depends on SYS_SUPPORTS_VPE_LOADER && MODULES
2442         select CPU_MIPSR2_IRQ_VI
2443         select CPU_MIPSR2_IRQ_EI
2444         select MIPS_MT
2445         help
2446           Includes a loader for loading an elf relocatable object
2447           onto another VPE and running it.
2448
2449 config MIPS_VPE_LOADER_CMP
2450         bool
2451         default "y"
2452         depends on MIPS_VPE_LOADER && MIPS_CMP
2453
2454 config MIPS_VPE_LOADER_MT
2455         bool
2456         default "y"
2457         depends on MIPS_VPE_LOADER && !MIPS_CMP
2458
2459 config MIPS_VPE_LOADER_TOM
2460         bool "Load VPE program into memory hidden from linux"
2461         depends on MIPS_VPE_LOADER
2462         default y
2463         help
2464           The loader can use memory that is present but has been hidden from
2465           Linux using the kernel command line option "mem=xxMB". It's up to
2466           you to ensure the amount you put in the option and the space your
2467           program requires is less or equal to the amount physically present.
2468
2469 config MIPS_VPE_APSP_API
2470         bool "Enable support for AP/SP API (RTLX)"
2471         depends on MIPS_VPE_LOADER
2472
2473 config MIPS_VPE_APSP_API_CMP
2474         bool
2475         default "y"
2476         depends on MIPS_VPE_APSP_API && MIPS_CMP
2477
2478 config MIPS_VPE_APSP_API_MT
2479         bool
2480         default "y"
2481         depends on MIPS_VPE_APSP_API && !MIPS_CMP
2482
2483 config MIPS_CMP
2484         bool "MIPS CMP framework support (DEPRECATED)"
2485         depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
2486         select SMP
2487         select SYNC_R4K
2488         select SYS_SUPPORTS_SMP
2489         select WEAK_ORDERING
2490         default n
2491         help
2492           Select this if you are using a bootloader which implements the "CMP
2493           framework" protocol (ie. YAMON) and want your kernel to make use of
2494           its ability to start secondary CPUs.
2495
2496           Unless you have a specific need, you should use CONFIG_MIPS_CPS
2497           instead of this.
2498
2499 config MIPS_CPS
2500         bool "MIPS Coherent Processing System support"
2501         depends on SYS_SUPPORTS_MIPS_CPS
2502         select MIPS_CM
2503         select MIPS_CPS_PM if HOTPLUG_CPU
2504         select SMP
2505         select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
2506         select SYS_SUPPORTS_HOTPLUG_CPU
2507         select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
2508         select SYS_SUPPORTS_SMP
2509         select WEAK_ORDERING
2510         help
2511           Select this if you wish to run an SMP kernel across multiple cores
2512           within a MIPS Coherent Processing System. When this option is
2513           enabled the kernel will probe for other cores and boot them with
2514           no external assistance. It is safe to enable this when hardware
2515           support is unavailable.
2516
2517 config MIPS_CPS_PM
2518         depends on MIPS_CPS
2519         bool
2520
2521 config MIPS_CM
2522         bool
2523         select MIPS_CPC
2524
2525 config MIPS_CPC
2526         bool
2527
2528 config SB1_PASS_2_WORKAROUNDS
2529         bool
2530         depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2531         default y
2532
2533 config SB1_PASS_2_1_WORKAROUNDS
2534         bool
2535         depends on CPU_SB1 && CPU_SB1_PASS_2
2536         default y
2537
2538 choice
2539         prompt "SmartMIPS or microMIPS ASE support"
2540
2541 config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2542         bool "None"
2543         help
2544           Select this if you want neither microMIPS nor SmartMIPS support
2545
2546 config CPU_HAS_SMARTMIPS
2547         depends on SYS_SUPPORTS_SMARTMIPS
2548         bool "SmartMIPS"
2549         help
2550           SmartMIPS is a extension of the MIPS32 architecture aimed at
2551           increased security at both hardware and software level for
2552           smartcards.  Enabling this option will allow proper use of the
2553           SmartMIPS instructions by Linux applications.  However a kernel with
2554           this option will not work on a MIPS core without SmartMIPS core.  If
2555           you don't know you probably don't have SmartMIPS and should say N
2556           here.
2557
2558 config CPU_MICROMIPS
2559         depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
2560         bool "microMIPS"
2561         help
2562           When this option is enabled the kernel will be built using the
2563           microMIPS ISA
2564
2565 endchoice
2566
2567 config CPU_HAS_MSA
2568         bool "Support for the MIPS SIMD Architecture"
2569         depends on CPU_SUPPORTS_MSA
2570         depends on MIPS_FP_SUPPORT
2571         depends on 64BIT || MIPS_O32_FP64_SUPPORT
2572         help
2573           MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2574           and a set of SIMD instructions to operate on them. When this option
2575           is enabled the kernel will support allocating & switching MSA
2576           vector register contexts. If you know that your kernel will only be
2577           running on CPUs which do not support MSA or that your userland will
2578           not be making use of it then you may wish to say N here to reduce
2579           the size & complexity of your kernel.
2580
2581           If unsure, say Y.
2582
2583 config CPU_HAS_WB
2584         bool
2585
2586 config XKS01
2587         bool
2588
2589 config CPU_HAS_DIEI
2590         depends on !CPU_DIEI_BROKEN
2591         bool
2592
2593 config CPU_DIEI_BROKEN
2594         bool
2595
2596 config CPU_HAS_RIXI
2597         bool
2598
2599 config CPU_NO_LOAD_STORE_LR
2600         bool
2601         help
2602           CPU lacks support for unaligned load and store instructions:
2603           LWL, LWR, SWL, SWR (Load/store word left/right).
2604           LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
2605           systems).
2606
2607 #
2608 # Vectored interrupt mode is an R2 feature
2609 #
2610 config CPU_MIPSR2_IRQ_VI
2611         bool
2612
2613 #
2614 # Extended interrupt mode is an R2 feature
2615 #
2616 config CPU_MIPSR2_IRQ_EI
2617         bool
2618
2619 config CPU_HAS_SYNC
2620         bool
2621         depends on !CPU_R3000
2622         default y
2623
2624 #
2625 # CPU non-features
2626 #
2627 config CPU_DADDI_WORKAROUNDS
2628         bool
2629
2630 config CPU_R4000_WORKAROUNDS
2631         bool
2632         select CPU_R4400_WORKAROUNDS
2633
2634 config CPU_R4400_WORKAROUNDS
2635         bool
2636
2637 config CPU_R4X00_BUGS64
2638         bool
2639         default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
2640
2641 config MIPS_ASID_SHIFT
2642         int
2643         default 6 if CPU_R3000 || CPU_TX39XX
2644         default 0
2645
2646 config MIPS_ASID_BITS
2647         int
2648         default 0 if MIPS_ASID_BITS_VARIABLE
2649         default 6 if CPU_R3000 || CPU_TX39XX
2650         default 8
2651
2652 config MIPS_ASID_BITS_VARIABLE
2653         bool
2654
2655 config MIPS_CRC_SUPPORT
2656         bool
2657
2658 #
2659 # - Highmem only makes sense for the 32-bit kernel.
2660 # - The current highmem code will only work properly on physically indexed
2661 #   caches such as R3000, SB1, R7000 or those that look like they're virtually
2662 #   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2663 #   moment we protect the user and offer the highmem option only on machines
2664 #   where it's known to be safe.  This will not offer highmem on a few systems
2665 #   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2666 #   indexed CPUs but we're playing safe.
2667 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2668 #   know they might have memory configurations that could make use of highmem
2669 #   support.
2670 #
2671 config HIGHMEM
2672         bool "High Memory Support"
2673         depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
2674
2675 config CPU_SUPPORTS_HIGHMEM
2676         bool
2677
2678 config SYS_SUPPORTS_HIGHMEM
2679         bool
2680
2681 config SYS_SUPPORTS_SMARTMIPS
2682         bool
2683
2684 config SYS_SUPPORTS_MICROMIPS
2685         bool
2686
2687 config SYS_SUPPORTS_MIPS16
2688         bool
2689         help
2690           This option must be set if a kernel might be executed on a MIPS16-
2691           enabled CPU even if MIPS16 is not actually being used.  In other
2692           words, it makes the kernel MIPS16-tolerant.
2693
2694 config CPU_SUPPORTS_MSA
2695         bool
2696
2697 config ARCH_FLATMEM_ENABLE
2698         def_bool y
2699         depends on !NUMA && !CPU_LOONGSON2EF
2700
2701 config ARCH_SPARSEMEM_ENABLE
2702         bool
2703         select SPARSEMEM_STATIC if !SGI_IP27
2704
2705 config NUMA
2706         bool "NUMA Support"
2707         depends on SYS_SUPPORTS_NUMA
2708         help
2709           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2710           Access).  This option improves performance on systems with more
2711           than two nodes; on two node systems it is generally better to
2712           leave it disabled; on single node systems leave this option
2713           disabled.
2714
2715 config SYS_SUPPORTS_NUMA
2716         bool
2717
2718 config HAVE_SETUP_PER_CPU_AREA
2719         def_bool y
2720         depends on NUMA
2721
2722 config NEED_PER_CPU_EMBED_FIRST_CHUNK
2723         def_bool y
2724         depends on NUMA
2725
2726 config RELOCATABLE
2727         bool "Relocatable kernel"
2728         depends on SYS_SUPPORTS_RELOCATABLE
2729         depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
2730                    CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
2731                    CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
2732                    CPU_P5600 || CAVIUM_OCTEON_SOC
2733         help
2734           This builds a kernel image that retains relocation information
2735           so it can be loaded someplace besides the default 1MB.
2736           The relocations make the kernel binary about 15% larger,
2737           but are discarded at runtime
2738
2739 config RELOCATION_TABLE_SIZE
2740         hex "Relocation table size"
2741         depends on RELOCATABLE
2742         range 0x0 0x01000000
2743         default "0x00100000"
2744         ---help---
2745           A table of relocation data will be appended to the kernel binary
2746           and parsed at boot to fix up the relocated kernel.
2747
2748           This option allows the amount of space reserved for the table to be
2749           adjusted, although the default of 1Mb should be ok in most cases.
2750
2751           The build will fail and a valid size suggested if this is too small.
2752
2753           If unsure, leave at the default value.
2754
2755 config RANDOMIZE_BASE
2756         bool "Randomize the address of the kernel image"
2757         depends on RELOCATABLE
2758         ---help---
2759           Randomizes the physical and virtual address at which the
2760           kernel image is loaded, as a security feature that
2761           deters exploit attempts relying on knowledge of the location
2762           of kernel internals.
2763
2764           Entropy is generated using any coprocessor 0 registers available.
2765
2766           The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
2767
2768           If unsure, say N.
2769
2770 config RANDOMIZE_BASE_MAX_OFFSET
2771         hex "Maximum kASLR offset" if EXPERT
2772         depends on RANDOMIZE_BASE
2773         range 0x0 0x40000000 if EVA || 64BIT
2774         range 0x0 0x08000000
2775         default "0x01000000"
2776         ---help---
2777           When kASLR is active, this provides the maximum offset that will
2778           be applied to the kernel image. It should be set according to the
2779           amount of physical RAM available in the target system minus
2780           PHYSICAL_START and must be a power of 2.
2781
2782           This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2783           EVA or 64-bit. The default is 16Mb.
2784
2785 config NODES_SHIFT
2786         int
2787         default "6"
2788         depends on NEED_MULTIPLE_NODES
2789
2790 config HW_PERF_EVENTS
2791         bool "Enable hardware performance counter support for perf events"
2792         depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON64)
2793         default y
2794         help
2795           Enable hardware performance counter support for perf events. If
2796           disabled, perf events will use software events only.
2797
2798 config DMI
2799         bool "Enable DMI scanning"
2800         depends on MACH_LOONGSON64
2801         select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
2802         default y
2803         help
2804           Enabled scanning of DMI to identify machine quirks. Say Y
2805           here unless you have verified that your setup is not
2806           affected by entries in the DMI blacklist. Required by PNP
2807           BIOS code.
2808
2809 config SMP
2810         bool "Multi-Processing support"
2811         depends on SYS_SUPPORTS_SMP
2812         help
2813           This enables support for systems with more than one CPU. If you have
2814           a system with only one CPU, say N. If you have a system with more
2815           than one CPU, say Y.
2816
2817           If you say N here, the kernel will run on uni- and multiprocessor
2818           machines, but will use only one CPU of a multiprocessor machine. If
2819           you say Y here, the kernel will run on many, but not all,
2820           uniprocessor machines. On a uniprocessor machine, the kernel
2821           will run faster if you say N here.
2822
2823           People using multiprocessor machines who say Y here should also say
2824           Y to "Enhanced Real Time Clock Support", below.
2825
2826           See also the SMP-HOWTO available at
2827           <http://www.tldp.org/docs.html#howto>.
2828
2829           If you don't know what to do here, say N.
2830
2831 config HOTPLUG_CPU
2832         bool "Support for hot-pluggable CPUs"
2833         depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2834         help
2835           Say Y here to allow turning CPUs off and on. CPUs can be
2836           controlled through /sys/devices/system/cpu.
2837           (Note: power management support will enable this option
2838             automatically on SMP systems. )
2839           Say N if you want to disable CPU hotplug.
2840
2841 config SMP_UP
2842         bool
2843
2844 config SYS_SUPPORTS_MIPS_CMP
2845         bool
2846
2847 config SYS_SUPPORTS_MIPS_CPS
2848         bool
2849
2850 config SYS_SUPPORTS_SMP
2851         bool
2852
2853 config NR_CPUS_DEFAULT_4
2854         bool
2855
2856 config NR_CPUS_DEFAULT_8
2857         bool
2858
2859 config NR_CPUS_DEFAULT_16
2860         bool
2861
2862 config NR_CPUS_DEFAULT_32
2863         bool
2864
2865 config NR_CPUS_DEFAULT_64
2866         bool
2867
2868 config NR_CPUS
2869         int "Maximum number of CPUs (2-256)"
2870         range 2 256
2871         depends on SMP
2872         default "4" if NR_CPUS_DEFAULT_4
2873         default "8" if NR_CPUS_DEFAULT_8
2874         default "16" if NR_CPUS_DEFAULT_16
2875         default "32" if NR_CPUS_DEFAULT_32
2876         default "64" if NR_CPUS_DEFAULT_64
2877         help
2878           This allows you to specify the maximum number of CPUs which this
2879           kernel will support.  The maximum supported value is 32 for 32-bit
2880           kernel and 64 for 64-bit kernels; the minimum value which makes
2881           sense is 1 for Qemu (useful only for kernel debugging purposes)
2882           and 2 for all others.
2883
2884           This is purely to save memory - each supported CPU adds
2885           approximately eight kilobytes to the kernel image.  For best
2886           performance should round up your number of processors to the next
2887           power of two.
2888
2889 config MIPS_PERF_SHARED_TC_COUNTERS
2890         bool
2891
2892 config MIPS_NR_CPU_NR_MAP_1024
2893         bool
2894
2895 config MIPS_NR_CPU_NR_MAP
2896         int
2897         depends on SMP
2898         default 1024 if MIPS_NR_CPU_NR_MAP_1024
2899         default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2900
2901 #
2902 # Timer Interrupt Frequency Configuration
2903 #
2904
2905 choice
2906         prompt "Timer frequency"
2907         default HZ_250
2908         help
2909           Allows the configuration of the timer frequency.
2910
2911         config HZ_24
2912                 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2913
2914         config HZ_48
2915                 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2916
2917         config HZ_100
2918                 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2919
2920         config HZ_128
2921                 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2922
2923         config HZ_250
2924                 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2925
2926         config HZ_256
2927                 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2928
2929         config HZ_1000
2930                 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2931
2932         config HZ_1024
2933                 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2934
2935 endchoice
2936
2937 config SYS_SUPPORTS_24HZ
2938         bool
2939
2940 config SYS_SUPPORTS_48HZ
2941         bool
2942
2943 config SYS_SUPPORTS_100HZ
2944         bool
2945
2946 config SYS_SUPPORTS_128HZ
2947         bool
2948
2949 config SYS_SUPPORTS_250HZ
2950         bool
2951
2952 config SYS_SUPPORTS_256HZ
2953         bool
2954
2955 config SYS_SUPPORTS_1000HZ
2956         bool
2957
2958 config SYS_SUPPORTS_1024HZ
2959         bool
2960
2961 config SYS_SUPPORTS_ARBIT_HZ
2962         bool
2963         default y if !SYS_SUPPORTS_24HZ && \
2964                      !SYS_SUPPORTS_48HZ && \
2965                      !SYS_SUPPORTS_100HZ && \
2966                      !SYS_SUPPORTS_128HZ && \
2967                      !SYS_SUPPORTS_250HZ && \
2968                      !SYS_SUPPORTS_256HZ && \
2969                      !SYS_SUPPORTS_1000HZ && \
2970                      !SYS_SUPPORTS_1024HZ
2971
2972 config HZ
2973         int
2974         default 24 if HZ_24
2975         default 48 if HZ_48
2976         default 100 if HZ_100
2977         default 128 if HZ_128
2978         default 250 if HZ_250
2979         default 256 if HZ_256
2980         default 1000 if HZ_1000
2981         default 1024 if HZ_1024
2982
2983 config SCHED_HRTICK
2984         def_bool HIGH_RES_TIMERS
2985
2986 config KEXEC
2987         bool "Kexec system call"
2988         select KEXEC_CORE
2989         help
2990           kexec is a system call that implements the ability to shutdown your
2991           current kernel, and to start another kernel.  It is like a reboot
2992           but it is independent of the system firmware.   And like a reboot
2993           you can start any kernel with it, not just Linux.
2994
2995           The name comes from the similarity to the exec system call.
2996
2997           It is an ongoing process to be certain the hardware in a machine
2998           is properly shutdown, so do not be surprised if this code does not
2999           initially work for you.  As of this writing the exact hardware
3000           interface is strongly in flux, so no good recommendation can be
3001           made.
3002
3003 config CRASH_DUMP
3004         bool "Kernel crash dumps"
3005         help
3006           Generate crash dump after being started by kexec.
3007           This should be normally only set in special crash dump kernels
3008           which are loaded in the main kernel with kexec-tools into
3009           a specially reserved region and then later executed after
3010           a crash by kdump/kexec. The crash dump kernel must be compiled
3011           to a memory address not used by the main kernel or firmware using
3012           PHYSICAL_START.
3013
3014 config PHYSICAL_START
3015         hex "Physical address where the kernel is loaded"
3016         default "0xffffffff84000000"
3017         depends on CRASH_DUMP
3018         help
3019           This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
3020           If you plan to use kernel for capturing the crash dump change
3021           this value to start of the reserved region (the "X" value as
3022           specified in the "crashkernel=YM@XM" command line boot parameter
3023           passed to the panic-ed kernel).
3024
3025 config SECCOMP
3026         bool "Enable seccomp to safely compute untrusted bytecode"
3027         depends on PROC_FS
3028         default y
3029         help
3030           This kernel feature is useful for number crunching applications
3031           that may need to compute untrusted bytecode during their
3032           execution. By using pipes or other transports made available to
3033           the process as file descriptors supporting the read/write
3034           syscalls, it's possible to isolate those applications in
3035           their own address space using seccomp. Once seccomp is
3036           enabled via /proc/<pid>/seccomp, it cannot be disabled
3037           and the task is only allowed to execute a few safe syscalls
3038           defined by each seccomp mode.
3039
3040           If unsure, say Y. Only embedded should say N here.
3041
3042 config MIPS_O32_FP64_SUPPORT
3043         bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
3044         depends on 32BIT || MIPS32_O32
3045         help
3046           When this is enabled, the kernel will support use of 64-bit floating
3047           point registers with binaries using the O32 ABI along with the
3048           EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
3049           32-bit MIPS systems this support is at the cost of increasing the
3050           size and complexity of the compiled FPU emulator. Thus if you are
3051           running a MIPS32 system and know that none of your userland binaries
3052           will require 64-bit floating point, you may wish to reduce the size
3053           of your kernel & potentially improve FP emulation performance by
3054           saying N here.
3055
3056           Although binutils currently supports use of this flag the details
3057           concerning its effect upon the O32 ABI in userland are still being
3058           worked on. In order to avoid userland becoming dependant upon current
3059           behaviour before the details have been finalised, this option should
3060           be considered experimental and only enabled by those working upon
3061           said details.
3062
3063           If unsure, say N.
3064
3065 config USE_OF
3066         bool
3067         select OF
3068         select OF_EARLY_FLATTREE
3069         select IRQ_DOMAIN
3070
3071 config UHI_BOOT
3072         bool
3073
3074 config BUILTIN_DTB
3075         bool
3076
3077 choice
3078         prompt "Kernel appended dtb support" if USE_OF
3079         default MIPS_NO_APPENDED_DTB
3080
3081         config MIPS_NO_APPENDED_DTB
3082                 bool "None"
3083                 help
3084                   Do not enable appended dtb support.
3085
3086         config MIPS_ELF_APPENDED_DTB
3087                 bool "vmlinux"
3088                 help
3089                   With this option, the boot code will look for a device tree binary
3090                   DTB) included in the vmlinux ELF section .appended_dtb. By default
3091                   it is empty and the DTB can be appended using binutils command
3092                   objcopy:
3093
3094                     objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
3095
3096                   This is meant as a backward compatiblity convenience for those
3097                   systems with a bootloader that can't be upgraded to accommodate
3098                   the documented boot protocol using a device tree.
3099
3100         config MIPS_RAW_APPENDED_DTB
3101                 bool "vmlinux.bin or vmlinuz.bin"
3102                 help
3103                   With this option, the boot code will look for a device tree binary
3104                   DTB) appended to raw vmlinux.bin or vmlinuz.bin.
3105                   (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
3106
3107                   This is meant as a backward compatibility convenience for those
3108                   systems with a bootloader that can't be upgraded to accommodate
3109                   the documented boot protocol using a device tree.
3110
3111                   Beware that there is very little in terms of protection against
3112                   this option being confused by leftover garbage in memory that might
3113                   look like a DTB header after a reboot if no actual DTB is appended
3114                   to vmlinux.bin.  Do not leave this option active in a production kernel
3115                   if you don't intend to always append a DTB.
3116 endchoice
3117
3118 choice
3119         prompt "Kernel command line type" if !CMDLINE_OVERRIDE
3120         default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
3121                                          !MACH_LOONGSON64 && !MIPS_MALTA && \
3122                                          !CAVIUM_OCTEON_SOC
3123         default MIPS_CMDLINE_FROM_BOOTLOADER
3124
3125         config MIPS_CMDLINE_FROM_DTB
3126                 depends on USE_OF
3127                 bool "Dtb kernel arguments if available"
3128
3129         config MIPS_CMDLINE_DTB_EXTEND
3130                 depends on USE_OF
3131                 bool "Extend dtb kernel arguments with bootloader arguments"
3132
3133         config MIPS_CMDLINE_FROM_BOOTLOADER
3134                 bool "Bootloader kernel arguments if available"
3135
3136         config MIPS_CMDLINE_BUILTIN_EXTEND
3137                 depends on CMDLINE_BOOL
3138                 bool "Extend builtin kernel arguments with bootloader arguments"
3139 endchoice
3140
3141 endmenu
3142
3143 config LOCKDEP_SUPPORT
3144         bool
3145         default y
3146
3147 config STACKTRACE_SUPPORT
3148         bool
3149         default y
3150
3151 config PGTABLE_LEVELS
3152         int
3153         default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
3154         default 3 if 64BIT && !PAGE_SIZE_64KB
3155         default 2
3156
3157 config MIPS_AUTO_PFN_OFFSET
3158         bool
3159
3160 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3161
3162 config PCI_DRIVERS_GENERIC
3163         select PCI_DOMAINS_GENERIC if PCI
3164         bool
3165
3166 config PCI_DRIVERS_LEGACY
3167         def_bool !PCI_DRIVERS_GENERIC
3168         select NO_GENERIC_PCI_IOPORT_MAP
3169         select PCI_DOMAINS if PCI
3170
3171 #
3172 # ISA support is now enabled via select.  Too many systems still have the one
3173 # or other ISA chip on the board that users don't know about so don't expect
3174 # users to choose the right thing ...
3175 #
3176 config ISA
3177         bool
3178
3179 config TC
3180         bool "TURBOchannel support"
3181         depends on MACH_DECSTATION
3182         help
3183           TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3184           processors.  TURBOchannel programming specifications are available
3185           at:
3186           <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3187           and:
3188           <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3189           Linux driver support status is documented at:
3190           <http://www.linux-mips.org/wiki/DECstation>
3191
3192 config MMU
3193         bool
3194         default y
3195
3196 config ARCH_MMAP_RND_BITS_MIN
3197         default 12 if 64BIT
3198         default 8
3199
3200 config ARCH_MMAP_RND_BITS_MAX
3201         default 18 if 64BIT
3202         default 15
3203
3204 config ARCH_MMAP_RND_COMPAT_BITS_MIN
3205         default 8
3206
3207 config ARCH_MMAP_RND_COMPAT_BITS_MAX
3208         default 15
3209
3210 config I8253
3211         bool
3212         select CLKSRC_I8253
3213         select CLKEVT_I8253
3214         select MIPS_EXTERNAL_TIMER
3215
3216 config ZONE_DMA
3217         bool
3218
3219 config ZONE_DMA32
3220         bool
3221
3222 endmenu
3223
3224 config TRAD_SIGNALS
3225         bool
3226
3227 config MIPS32_COMPAT
3228         bool
3229
3230 config COMPAT
3231         bool
3232
3233 config SYSVIPC_COMPAT
3234         bool
3235
3236 config MIPS32_O32
3237         bool "Kernel support for o32 binaries"
3238         depends on 64BIT
3239         select ARCH_WANT_OLD_COMPAT_IPC
3240         select COMPAT
3241         select MIPS32_COMPAT
3242         select SYSVIPC_COMPAT if SYSVIPC
3243         help
3244           Select this option if you want to run o32 binaries.  These are pure
3245           32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
3246           existing binaries are in this format.
3247
3248           If unsure, say Y.
3249
3250 config MIPS32_N32
3251         bool "Kernel support for n32 binaries"
3252         depends on 64BIT
3253         select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
3254         select COMPAT
3255         select MIPS32_COMPAT
3256         select SYSVIPC_COMPAT if SYSVIPC
3257         help
3258           Select this option if you want to run n32 binaries.  These are
3259           64-bit binaries using 32-bit quantities for addressing and certain
3260           data that would normally be 64-bit.  They are used in special
3261           cases.
3262
3263           If unsure, say N.
3264
3265 config BINFMT_ELF32
3266         bool
3267         default y if MIPS32_O32 || MIPS32_N32
3268         select ELFCORE
3269
3270 menu "Power management options"
3271
3272 config ARCH_HIBERNATION_POSSIBLE
3273         def_bool y
3274         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3275
3276 config ARCH_SUSPEND_POSSIBLE
3277         def_bool y
3278         depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3279
3280 source "kernel/power/Kconfig"
3281
3282 endmenu
3283
3284 config MIPS_EXTERNAL_TIMER
3285         bool
3286
3287 menu "CPU Power Management"
3288
3289 if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
3290 source "drivers/cpufreq/Kconfig"
3291 endif
3292
3293 source "drivers/cpuidle/Kconfig"
3294
3295 endmenu
3296
3297 source "drivers/firmware/Kconfig"
3298
3299 source "arch/mips/kvm/Kconfig"
3300
3301 source "arch/mips/vdso/Kconfig"