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