OSDN Git Service

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