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