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