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