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