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