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