xref: /linux/arch/mips/Kconfig (revision d229807f669ba3dea9f64467ee965051c4366aed)
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	select IRQ_FORCED_THREADING
28
29menu "Machine selection"
30
31config ZONE_DMA
32	bool
33
34choice
35	prompt "System type"
36	default SGI_IP22
37
38config MIPS_ALCHEMY
39	bool "Alchemy processor based machines"
40	select 64BIT_PHYS_ADDR
41	select CEVT_R4K_LIB
42	select CSRC_R4K_LIB
43	select IRQ_CPU
44	select SYS_HAS_CPU_MIPS32_R1
45	select SYS_SUPPORTS_32BIT_KERNEL
46	select SYS_SUPPORTS_APM_EMULATION
47	select GENERIC_GPIO
48	select ARCH_WANT_OPTIONAL_GPIOLIB
49	select SYS_SUPPORTS_ZBOOT
50
51config AR7
52	bool "Texas Instruments AR7"
53	select BOOT_ELF32
54	select DMA_NONCOHERENT
55	select CEVT_R4K
56	select CSRC_R4K
57	select IRQ_CPU
58	select NO_EXCEPT_FILL
59	select SWAP_IO_SPACE
60	select SYS_HAS_CPU_MIPS32_R1
61	select SYS_HAS_EARLY_PRINTK
62	select SYS_SUPPORTS_32BIT_KERNEL
63	select SYS_SUPPORTS_LITTLE_ENDIAN
64	select SYS_SUPPORTS_ZBOOT_UART16550
65	select ARCH_REQUIRE_GPIOLIB
66	select GCD
67	select VLYNQ
68	help
69	  Support for the Texas Instruments AR7 System-on-a-Chip
70	  family: TNETD7100, 7200 and 7300.
71
72config ATH79
73	bool "Atheros AR71XX/AR724X/AR913X based boards"
74	select ARCH_REQUIRE_GPIOLIB
75	select BOOT_RAW
76	select CEVT_R4K
77	select CSRC_R4K
78	select DMA_NONCOHERENT
79	select IRQ_CPU
80	select MIPS_MACHINE
81	select SYS_HAS_CPU_MIPS32_R2
82	select SYS_HAS_EARLY_PRINTK
83	select SYS_SUPPORTS_32BIT_KERNEL
84	select SYS_SUPPORTS_BIG_ENDIAN
85	help
86	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
87
88config BCM47XX
89	bool "Broadcom BCM47XX based boards"
90	select CEVT_R4K
91	select CSRC_R4K
92	select DMA_NONCOHERENT
93	select HW_HAS_PCI
94	select IRQ_CPU
95	select SYS_SUPPORTS_32BIT_KERNEL
96	select SYS_SUPPORTS_LITTLE_ENDIAN
97	select GENERIC_GPIO
98	select SYS_HAS_EARLY_PRINTK
99	select CFE
100	help
101	 Support for BCM47XX based boards
102
103config BCM63XX
104	bool "Broadcom BCM63XX based boards"
105	select CEVT_R4K
106	select CSRC_R4K
107	select DMA_NONCOHERENT
108	select IRQ_CPU
109	select SYS_HAS_CPU_MIPS32_R1
110	select SYS_SUPPORTS_32BIT_KERNEL
111	select SYS_SUPPORTS_BIG_ENDIAN
112	select SYS_HAS_EARLY_PRINTK
113	select SWAP_IO_SPACE
114	select ARCH_REQUIRE_GPIOLIB
115	help
116	 Support for BCM63XX based boards
117
118config MIPS_COBALT
119	bool "Cobalt Server"
120	select CEVT_R4K
121	select CSRC_R4K
122	select CEVT_GT641XX
123	select DMA_NONCOHERENT
124	select HW_HAS_PCI
125	select I8253
126	select I8259
127	select IRQ_CPU
128	select IRQ_GT641XX
129	select PCI_GT64XXX_PCI0
130	select PCI
131	select SYS_HAS_CPU_NEVADA
132	select SYS_HAS_EARLY_PRINTK
133	select SYS_SUPPORTS_32BIT_KERNEL
134	select SYS_SUPPORTS_64BIT_KERNEL
135	select SYS_SUPPORTS_LITTLE_ENDIAN
136
137config MACH_DECSTATION
138	bool "DECstations"
139	select BOOT_ELF32
140	select CEVT_DS1287
141	select CEVT_R4K
142	select CSRC_IOASIC
143	select CSRC_R4K
144	select CPU_DADDI_WORKAROUNDS if 64BIT
145	select CPU_R4000_WORKAROUNDS if 64BIT
146	select CPU_R4400_WORKAROUNDS if 64BIT
147	select DMA_NONCOHERENT
148	select NO_IOPORT
149	select IRQ_CPU
150	select SYS_HAS_CPU_R3000
151	select SYS_HAS_CPU_R4X00
152	select SYS_SUPPORTS_32BIT_KERNEL
153	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
154	select SYS_SUPPORTS_LITTLE_ENDIAN
155	select SYS_SUPPORTS_128HZ
156	select SYS_SUPPORTS_256HZ
157	select SYS_SUPPORTS_1024HZ
158	help
159	  This enables support for DEC's MIPS based workstations.  For details
160	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
161	  DECstation porting pages on <http://decstation.unix-ag.org/>.
162
163	  If you have one of the following DECstation Models you definitely
164	  want to choose R4xx0 for the CPU Type:
165
166		DECstation 5000/50
167		DECstation 5000/150
168		DECstation 5000/260
169		DECsystem 5900/260
170
171	  otherwise choose R3000.
172
173config MACH_JAZZ
174	bool "Jazz family of machines"
175	select ARC
176	select ARC32
177	select ARCH_MAY_HAVE_PC_FDC
178	select CEVT_R4K
179	select CSRC_R4K
180	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
181	select GENERIC_ISA_DMA
182	select HAVE_PCSPKR_PLATFORM
183	select IRQ_CPU
184	select I8253
185	select I8259
186	select ISA
187	select SYS_HAS_CPU_R4X00
188	select SYS_SUPPORTS_32BIT_KERNEL
189	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
190	select SYS_SUPPORTS_100HZ
191	help
192	 This a family of machines based on the MIPS R4030 chipset which was
193	 used by several vendors to build RISC/os and Windows NT workstations.
194	 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
195	 Olivetti M700-10 workstations.
196
197config MACH_JZ4740
198	bool "Ingenic JZ4740 based machines"
199	select SYS_HAS_CPU_MIPS32_R1
200	select SYS_SUPPORTS_32BIT_KERNEL
201	select SYS_SUPPORTS_LITTLE_ENDIAN
202	select DMA_NONCOHERENT
203	select IRQ_CPU
204	select GENERIC_GPIO
205	select ARCH_REQUIRE_GPIOLIB
206	select SYS_HAS_EARLY_PRINTK
207	select HAVE_PWM
208	select HAVE_CLK
209
210config LANTIQ
211	bool "Lantiq based platforms"
212	select DMA_NONCOHERENT
213	select IRQ_CPU
214	select CEVT_R4K
215	select CSRC_R4K
216	select SYS_HAS_CPU_MIPS32_R1
217	select SYS_HAS_CPU_MIPS32_R2
218	select SYS_SUPPORTS_BIG_ENDIAN
219	select SYS_SUPPORTS_32BIT_KERNEL
220	select SYS_SUPPORTS_MULTITHREADING
221	select SYS_HAS_EARLY_PRINTK
222	select ARCH_REQUIRE_GPIOLIB
223	select SWAP_IO_SPACE
224	select BOOT_RAW
225	select HAVE_CLK
226	select MIPS_MACHINE
227
228config LASAT
229	bool "LASAT Networks platforms"
230	select CEVT_R4K
231	select CSRC_R4K
232	select DMA_NONCOHERENT
233	select SYS_HAS_EARLY_PRINTK
234	select HW_HAS_PCI
235	select IRQ_CPU
236	select PCI_GT64XXX_PCI0
237	select MIPS_NILE4
238	select R5000_CPU_SCACHE
239	select SYS_HAS_CPU_R5000
240	select SYS_SUPPORTS_32BIT_KERNEL
241	select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
242	select SYS_SUPPORTS_LITTLE_ENDIAN
243
244config MACH_LOONGSON
245	bool "Loongson family of machines"
246	select SYS_SUPPORTS_ZBOOT
247	help
248	  This enables the support of Loongson family of machines.
249
250	  Loongson is a family of general-purpose MIPS-compatible CPUs.
251	  developed at Institute of Computing Technology (ICT),
252	  Chinese Academy of Sciences (CAS) in the People's Republic
253	  of China. The chief architect is Professor Weiwu Hu.
254
255config MIPS_MALTA
256	bool "MIPS Malta board"
257	select ARCH_MAY_HAVE_PC_FDC
258	select BOOT_ELF32
259	select BOOT_RAW
260	select CEVT_R4K
261	select CSRC_R4K
262	select DMA_NONCOHERENT
263	select GENERIC_ISA_DMA
264	select HAVE_PCSPKR_PLATFORM
265	select IRQ_CPU
266	select IRQ_GIC
267	select HW_HAS_PCI
268	select I8253
269	select I8259
270	select MIPS_BOARDS_GEN
271	select MIPS_BONITO64
272	select MIPS_CPU_SCACHE
273	select PCI_GT64XXX_PCI0
274	select MIPS_MSC
275	select SWAP_IO_SPACE
276	select SYS_HAS_CPU_MIPS32_R1
277	select SYS_HAS_CPU_MIPS32_R2
278	select SYS_HAS_CPU_MIPS64_R1
279	select SYS_HAS_CPU_NEVADA
280	select SYS_HAS_CPU_RM7000
281	select SYS_HAS_EARLY_PRINTK
282	select SYS_SUPPORTS_32BIT_KERNEL
283	select SYS_SUPPORTS_64BIT_KERNEL
284	select SYS_SUPPORTS_BIG_ENDIAN
285	select SYS_SUPPORTS_LITTLE_ENDIAN
286	select SYS_SUPPORTS_MIPS_CMP
287	select SYS_SUPPORTS_MULTITHREADING
288	select SYS_SUPPORTS_SMARTMIPS
289	select SYS_SUPPORTS_ZBOOT
290	help
291	  This enables support for the MIPS Technologies Malta evaluation
292	  board.
293
294config MIPS_SIM
295	bool 'MIPS simulator (MIPSsim)'
296	select CEVT_R4K
297	select CSRC_R4K
298	select DMA_NONCOHERENT
299	select SYS_HAS_EARLY_PRINTK
300	select IRQ_CPU
301	select BOOT_RAW
302	select SYS_HAS_CPU_MIPS32_R1
303	select SYS_HAS_CPU_MIPS32_R2
304	select SYS_HAS_EARLY_PRINTK
305	select SYS_SUPPORTS_32BIT_KERNEL
306	select SYS_SUPPORTS_BIG_ENDIAN
307	select SYS_SUPPORTS_MULTITHREADING
308	select SYS_SUPPORTS_LITTLE_ENDIAN
309	help
310	  This option enables support for MIPS Technologies MIPSsim software
311	  emulator.
312
313config NEC_MARKEINS
314	bool "NEC EMMA2RH Mark-eins board"
315	select SOC_EMMA2RH
316	select HW_HAS_PCI
317	help
318	  This enables support for the NEC Electronics Mark-eins boards.
319
320config MACH_VR41XX
321	bool "NEC VR4100 series based machines"
322	select CEVT_R4K
323	select CSRC_R4K
324	select SYS_HAS_CPU_VR41XX
325	select ARCH_REQUIRE_GPIOLIB
326
327config NXP_STB220
328	bool "NXP STB220 board"
329	select SOC_PNX833X
330	help
331	 Support for NXP Semiconductors STB220 Development Board.
332
333config NXP_STB225
334	bool "NXP 225 board"
335	select SOC_PNX833X
336	select SOC_PNX8335
337	help
338	 Support for NXP Semiconductors STB225 Development Board.
339
340config PNX8550_JBS
341	bool "NXP PNX8550 based JBS board"
342	select PNX8550
343	select SYS_SUPPORTS_LITTLE_ENDIAN
344
345config PNX8550_STB810
346	bool "NXP PNX8550 based STB810 board"
347	select PNX8550
348	select SYS_SUPPORTS_LITTLE_ENDIAN
349
350config PMC_MSP
351	bool "PMC-Sierra MSP chipsets"
352	depends on EXPERIMENTAL
353	select CEVT_R4K
354	select CSRC_R4K
355	select DMA_NONCOHERENT
356	select SWAP_IO_SPACE
357	select NO_EXCEPT_FILL
358	select BOOT_RAW
359	select SYS_HAS_CPU_MIPS32_R1
360	select SYS_HAS_CPU_MIPS32_R2
361	select SYS_SUPPORTS_32BIT_KERNEL
362	select SYS_SUPPORTS_BIG_ENDIAN
363	select IRQ_CPU
364	select SERIAL_8250
365	select SERIAL_8250_CONSOLE
366	help
367	  This adds support for the PMC-Sierra family of Multi-Service
368	  Processor System-On-A-Chips.  These parts include a number
369	  of integrated peripherals, interfaces and DSPs in addition to
370	  a variety of MIPS cores.
371
372config PMC_YOSEMITE
373	bool "PMC-Sierra Yosemite eval board"
374	select CEVT_R4K
375	select CSRC_R4K
376	select DMA_COHERENT
377	select HW_HAS_PCI
378	select IRQ_CPU
379	select IRQ_CPU_RM7K
380	select IRQ_CPU_RM9K
381	select SWAP_IO_SPACE
382	select SYS_HAS_CPU_RM9000
383	select SYS_HAS_EARLY_PRINTK
384	select SYS_SUPPORTS_32BIT_KERNEL
385	select SYS_SUPPORTS_64BIT_KERNEL
386	select SYS_SUPPORTS_BIG_ENDIAN
387	select SYS_SUPPORTS_HIGHMEM
388	select SYS_SUPPORTS_SMP
389	help
390	  Yosemite is an evaluation board for the RM9000x2 processor
391	  manufactured by PMC-Sierra.
392
393config POWERTV
394	bool "Cisco PowerTV"
395	select BOOT_ELF32
396	select CEVT_R4K
397	select CPU_MIPSR2_IRQ_VI
398	select CPU_MIPSR2_IRQ_EI
399	select CSRC_POWERTV
400	select DMA_NONCOHERENT
401	select HW_HAS_PCI
402	select SYS_HAS_EARLY_PRINTK
403	select SYS_HAS_CPU_MIPS32_R2
404	select SYS_SUPPORTS_32BIT_KERNEL
405	select SYS_SUPPORTS_BIG_ENDIAN
406	select SYS_SUPPORTS_HIGHMEM
407	select USB_OHCI_LITTLE_ENDIAN
408	help
409	  This enables support for the Cisco PowerTV Platform.
410
411config SGI_IP22
412	bool "SGI IP22 (Indy/Indigo2)"
413	select ARC
414	select ARC32
415	select BOOT_ELF32
416	select CEVT_R4K
417	select CSRC_R4K
418	select DEFAULT_SGI_PARTITION
419	select DMA_NONCOHERENT
420	select HW_HAS_EISA
421	select I8253
422	select I8259
423	select IP22_CPU_SCACHE
424	select IRQ_CPU
425	select GENERIC_ISA_DMA_SUPPORT_BROKEN
426	select SGI_HAS_I8042
427	select SGI_HAS_INDYDOG
428	select SGI_HAS_HAL2
429	select SGI_HAS_SEEQ
430	select SGI_HAS_WD93
431	select SGI_HAS_ZILOG
432	select SWAP_IO_SPACE
433	select SYS_HAS_CPU_R4X00
434	select SYS_HAS_CPU_R5000
435	#
436	# Disable EARLY_PRINTK for now since it leads to overwritten prom
437	# memory during early boot on some machines.
438	#
439	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
440	# for a more details discussion
441	#
442	# select SYS_HAS_EARLY_PRINTK
443	select SYS_SUPPORTS_32BIT_KERNEL
444	select SYS_SUPPORTS_64BIT_KERNEL
445	select SYS_SUPPORTS_BIG_ENDIAN
446	help
447	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
448	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
449	  that runs on these, say Y here.
450
451config SGI_IP27
452	bool "SGI IP27 (Origin200/2000)"
453	select ARC
454	select ARC64
455	select BOOT_ELF64
456	select DEFAULT_SGI_PARTITION
457	select DMA_COHERENT
458	select SYS_HAS_EARLY_PRINTK
459	select HW_HAS_PCI
460	select NR_CPUS_DEFAULT_64
461	select SYS_HAS_CPU_R10000
462	select SYS_SUPPORTS_64BIT_KERNEL
463	select SYS_SUPPORTS_BIG_ENDIAN
464	select SYS_SUPPORTS_NUMA
465	select SYS_SUPPORTS_SMP
466	help
467	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
468	  workstations.  To compile a Linux kernel that runs on these, say Y
469	  here.
470
471config SGI_IP28
472	bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
473	depends on EXPERIMENTAL
474	select ARC
475	select ARC64
476	select BOOT_ELF64
477	select CEVT_R4K
478	select CSRC_R4K
479	select DEFAULT_SGI_PARTITION
480	select DMA_NONCOHERENT
481	select GENERIC_ISA_DMA_SUPPORT_BROKEN
482	select IRQ_CPU
483	select HW_HAS_EISA
484	select I8253
485	select I8259
486	select SGI_HAS_I8042
487	select SGI_HAS_INDYDOG
488	select SGI_HAS_HAL2
489	select SGI_HAS_SEEQ
490	select SGI_HAS_WD93
491	select SGI_HAS_ZILOG
492	select SWAP_IO_SPACE
493	select SYS_HAS_CPU_R10000
494	#
495	# Disable EARLY_PRINTK for now since it leads to overwritten prom
496	# memory during early boot on some machines.
497	#
498	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
499	# for a more details discussion
500	#
501	# select SYS_HAS_EARLY_PRINTK
502	select SYS_SUPPORTS_64BIT_KERNEL
503	select SYS_SUPPORTS_BIG_ENDIAN
504      help
505        This is the SGI Indigo2 with R10000 processor.  To compile a Linux
506        kernel that runs on these, say Y here.
507
508config SGI_IP32
509	bool "SGI IP32 (O2)"
510	select ARC
511	select ARC32
512	select BOOT_ELF32
513	select CEVT_R4K
514	select CSRC_R4K
515	select DMA_NONCOHERENT
516	select HW_HAS_PCI
517	select IRQ_CPU
518	select R5000_CPU_SCACHE
519	select RM7000_CPU_SCACHE
520	select SYS_HAS_CPU_R5000
521	select SYS_HAS_CPU_R10000 if BROKEN
522	select SYS_HAS_CPU_RM7000
523	select SYS_HAS_CPU_NEVADA
524	select SYS_SUPPORTS_64BIT_KERNEL
525	select SYS_SUPPORTS_BIG_ENDIAN
526	help
527	  If you want this kernel to run on SGI O2 workstation, say Y here.
528
529config SIBYTE_CRHINE
530	bool "Sibyte BCM91120C-CRhine"
531	depends on EXPERIMENTAL
532	select BOOT_ELF32
533	select DMA_COHERENT
534	select SIBYTE_BCM1120
535	select SWAP_IO_SPACE
536	select SYS_HAS_CPU_SB1
537	select SYS_SUPPORTS_BIG_ENDIAN
538	select SYS_SUPPORTS_LITTLE_ENDIAN
539
540config SIBYTE_CARMEL
541	bool "Sibyte BCM91120x-Carmel"
542	depends on EXPERIMENTAL
543	select BOOT_ELF32
544	select DMA_COHERENT
545	select SIBYTE_BCM1120
546	select SWAP_IO_SPACE
547	select SYS_HAS_CPU_SB1
548	select SYS_SUPPORTS_BIG_ENDIAN
549	select SYS_SUPPORTS_LITTLE_ENDIAN
550
551config SIBYTE_CRHONE
552	bool "Sibyte BCM91125C-CRhone"
553	depends on EXPERIMENTAL
554	select BOOT_ELF32
555	select DMA_COHERENT
556	select SIBYTE_BCM1125
557	select SWAP_IO_SPACE
558	select SYS_HAS_CPU_SB1
559	select SYS_SUPPORTS_BIG_ENDIAN
560	select SYS_SUPPORTS_HIGHMEM
561	select SYS_SUPPORTS_LITTLE_ENDIAN
562
563config SIBYTE_RHONE
564	bool "Sibyte BCM91125E-Rhone"
565	depends on EXPERIMENTAL
566	select BOOT_ELF32
567	select DMA_COHERENT
568	select SIBYTE_BCM1125H
569	select SWAP_IO_SPACE
570	select SYS_HAS_CPU_SB1
571	select SYS_SUPPORTS_BIG_ENDIAN
572	select SYS_SUPPORTS_LITTLE_ENDIAN
573
574config SIBYTE_SWARM
575	bool "Sibyte BCM91250A-SWARM"
576	select BOOT_ELF32
577	select DMA_COHERENT
578	select HAVE_PATA_PLATFORM
579	select NR_CPUS_DEFAULT_2
580	select SIBYTE_SB1250
581	select SWAP_IO_SPACE
582	select SYS_HAS_CPU_SB1
583	select SYS_SUPPORTS_BIG_ENDIAN
584	select SYS_SUPPORTS_HIGHMEM
585	select SYS_SUPPORTS_LITTLE_ENDIAN
586	select ZONE_DMA32 if 64BIT
587
588config SIBYTE_LITTLESUR
589	bool "Sibyte BCM91250C2-LittleSur"
590	depends on EXPERIMENTAL
591	select BOOT_ELF32
592	select DMA_COHERENT
593	select HAVE_PATA_PLATFORM
594	select NR_CPUS_DEFAULT_2
595	select SIBYTE_SB1250
596	select SWAP_IO_SPACE
597	select SYS_HAS_CPU_SB1
598	select SYS_SUPPORTS_BIG_ENDIAN
599	select SYS_SUPPORTS_HIGHMEM
600	select SYS_SUPPORTS_LITTLE_ENDIAN
601
602config SIBYTE_SENTOSA
603	bool "Sibyte BCM91250E-Sentosa"
604	depends on EXPERIMENTAL
605	select BOOT_ELF32
606	select DMA_COHERENT
607	select NR_CPUS_DEFAULT_2
608	select SIBYTE_SB1250
609	select SWAP_IO_SPACE
610	select SYS_HAS_CPU_SB1
611	select SYS_SUPPORTS_BIG_ENDIAN
612	select SYS_SUPPORTS_LITTLE_ENDIAN
613
614config SIBYTE_BIGSUR
615	bool "Sibyte BCM91480B-BigSur"
616	select BOOT_ELF32
617	select DMA_COHERENT
618	select NR_CPUS_DEFAULT_4
619	select SIBYTE_BCM1x80
620	select SWAP_IO_SPACE
621	select SYS_HAS_CPU_SB1
622	select SYS_SUPPORTS_BIG_ENDIAN
623	select SYS_SUPPORTS_HIGHMEM
624	select SYS_SUPPORTS_LITTLE_ENDIAN
625	select ZONE_DMA32 if 64BIT
626
627config SNI_RM
628	bool "SNI RM200/300/400"
629	select ARC if CPU_LITTLE_ENDIAN
630	select ARC32 if CPU_LITTLE_ENDIAN
631	select SNIPROM if CPU_BIG_ENDIAN
632	select ARCH_MAY_HAVE_PC_FDC
633	select BOOT_ELF32
634	select CEVT_R4K
635	select CSRC_R4K
636	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
637	select DMA_NONCOHERENT
638	select GENERIC_ISA_DMA
639	select HAVE_PCSPKR_PLATFORM
640	select HW_HAS_EISA
641	select HW_HAS_PCI
642	select IRQ_CPU
643	select I8253
644	select I8259
645	select ISA
646	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
647	select SYS_HAS_CPU_R4X00
648	select SYS_HAS_CPU_R5000
649	select SYS_HAS_CPU_R10000
650	select R5000_CPU_SCACHE
651	select SYS_HAS_EARLY_PRINTK
652	select SYS_SUPPORTS_32BIT_KERNEL
653	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
654	select SYS_SUPPORTS_BIG_ENDIAN
655	select SYS_SUPPORTS_HIGHMEM
656	select SYS_SUPPORTS_LITTLE_ENDIAN
657	help
658	  The SNI RM200/300/400 are MIPS-based machines manufactured by
659	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
660	  Technology and now in turn merged with Fujitsu.  Say Y here to
661	  support this machine type.
662
663config MACH_TX39XX
664	bool "Toshiba TX39 series based machines"
665
666config MACH_TX49XX
667	bool "Toshiba TX49 series based machines"
668
669config MIKROTIK_RB532
670	bool "Mikrotik RB532 boards"
671	select CEVT_R4K
672	select CSRC_R4K
673	select DMA_NONCOHERENT
674	select HW_HAS_PCI
675	select IRQ_CPU
676	select SYS_HAS_CPU_MIPS32_R1
677	select SYS_SUPPORTS_32BIT_KERNEL
678	select SYS_SUPPORTS_LITTLE_ENDIAN
679	select SWAP_IO_SPACE
680	select BOOT_RAW
681	select ARCH_REQUIRE_GPIOLIB
682	help
683	  Support the Mikrotik(tm) RouterBoard 532 series,
684	  based on the IDT RC32434 SoC.
685
686config WR_PPMC
687	bool "Wind River PPMC board"
688	select CEVT_R4K
689	select CSRC_R4K
690	select IRQ_CPU
691	select BOOT_ELF32
692	select DMA_NONCOHERENT
693	select HW_HAS_PCI
694	select PCI_GT64XXX_PCI0
695	select SWAP_IO_SPACE
696	select SYS_HAS_CPU_MIPS32_R1
697	select SYS_HAS_CPU_MIPS32_R2
698	select SYS_HAS_CPU_MIPS64_R1
699	select SYS_HAS_CPU_NEVADA
700	select SYS_HAS_CPU_RM7000
701	select SYS_SUPPORTS_32BIT_KERNEL
702	select SYS_SUPPORTS_64BIT_KERNEL
703	select SYS_SUPPORTS_BIG_ENDIAN
704	select SYS_SUPPORTS_LITTLE_ENDIAN
705	help
706	  This enables support for the Wind River MIPS32 4KC PPMC evaluation
707	  board, which is based on GT64120 bridge chip.
708
709config CAVIUM_OCTEON_SIMULATOR
710	bool "Cavium Networks Octeon Simulator"
711	select CEVT_R4K
712	select 64BIT_PHYS_ADDR
713	select DMA_COHERENT
714	select SYS_SUPPORTS_64BIT_KERNEL
715	select SYS_SUPPORTS_BIG_ENDIAN
716	select SYS_SUPPORTS_HIGHMEM
717	select SYS_SUPPORTS_HOTPLUG_CPU
718	select SYS_HAS_CPU_CAVIUM_OCTEON
719	select HOLES_IN_ZONE
720	help
721	  The Octeon simulator is software performance model of the Cavium
722	  Octeon Processor. It supports simulating Octeon processors on x86
723	  hardware.
724
725config CAVIUM_OCTEON_REFERENCE_BOARD
726	bool "Cavium Networks Octeon reference board"
727	select CEVT_R4K
728	select 64BIT_PHYS_ADDR
729	select DMA_COHERENT
730	select SYS_SUPPORTS_64BIT_KERNEL
731	select SYS_SUPPORTS_BIG_ENDIAN
732	select SYS_SUPPORTS_HIGHMEM
733	select SYS_SUPPORTS_HOTPLUG_CPU
734	select SYS_HAS_EARLY_PRINTK
735	select SYS_HAS_CPU_CAVIUM_OCTEON
736	select SWAP_IO_SPACE
737	select HW_HAS_PCI
738	select ARCH_SUPPORTS_MSI
739	select ZONE_DMA32
740	select USB_ARCH_HAS_OHCI
741	select USB_ARCH_HAS_EHCI
742	select HOLES_IN_ZONE
743	help
744	  This option supports all of the Octeon reference boards from Cavium
745	  Networks. It builds a kernel that dynamically determines the Octeon
746	  CPU type and supports all known board reference implementations.
747	  Some of the supported boards are:
748		EBT3000
749		EBH3000
750		EBH3100
751		Thunder
752		Kodama
753		Hikari
754	  Say Y here for most Octeon reference boards.
755
756config NLM_XLR_BOARD
757	bool "Netlogic XLR/XLS based systems"
758	depends on EXPERIMENTAL
759	select BOOT_ELF32
760	select NLM_COMMON
761	select NLM_XLR
762	select SYS_HAS_CPU_XLR
763	select SYS_SUPPORTS_SMP
764	select HW_HAS_PCI
765	select SWAP_IO_SPACE
766	select SYS_SUPPORTS_32BIT_KERNEL
767	select SYS_SUPPORTS_64BIT_KERNEL
768	select 64BIT_PHYS_ADDR
769	select SYS_SUPPORTS_BIG_ENDIAN
770	select SYS_SUPPORTS_HIGHMEM
771	select DMA_COHERENT
772	select NR_CPUS_DEFAULT_32
773	select CEVT_R4K
774	select CSRC_R4K
775	select IRQ_CPU
776	select ZONE_DMA if 64BIT
777	select SYNC_R4K
778	select SYS_HAS_EARLY_PRINTK
779	help
780	  Support for systems based on Netlogic XLR and XLS processors.
781	  Say Y here if you have a XLR or XLS based board.
782
783endchoice
784
785source "arch/mips/alchemy/Kconfig"
786source "arch/mips/ath79/Kconfig"
787source "arch/mips/bcm47xx/Kconfig"
788source "arch/mips/bcm63xx/Kconfig"
789source "arch/mips/jazz/Kconfig"
790source "arch/mips/jz4740/Kconfig"
791source "arch/mips/lantiq/Kconfig"
792source "arch/mips/lasat/Kconfig"
793source "arch/mips/pmc-sierra/Kconfig"
794source "arch/mips/powertv/Kconfig"
795source "arch/mips/sgi-ip27/Kconfig"
796source "arch/mips/sibyte/Kconfig"
797source "arch/mips/txx9/Kconfig"
798source "arch/mips/vr41xx/Kconfig"
799source "arch/mips/cavium-octeon/Kconfig"
800source "arch/mips/loongson/Kconfig"
801source "arch/mips/netlogic/Kconfig"
802
803endmenu
804
805config RWSEM_GENERIC_SPINLOCK
806	bool
807	default y
808
809config RWSEM_XCHGADD_ALGORITHM
810	bool
811
812config ARCH_HAS_ILOG2_U32
813	bool
814	default n
815
816config ARCH_HAS_ILOG2_U64
817	bool
818	default n
819
820config ARCH_SUPPORTS_OPROFILE
821	bool
822	default y if !MIPS_MT_SMTC
823
824config GENERIC_HWEIGHT
825	bool
826	default y
827
828config GENERIC_CALIBRATE_DELAY
829	bool
830	default y
831
832config GENERIC_CLOCKEVENTS
833	bool
834	default y
835
836config GENERIC_CMOS_UPDATE
837	bool
838	default y
839
840config SCHED_OMIT_FRAME_POINTER
841	bool
842	default y
843
844#
845# Select some configuration options automatically based on user selections.
846#
847config ARC
848	bool
849
850config ARCH_MAY_HAVE_PC_FDC
851	bool
852
853config BOOT_RAW
854	bool
855
856config CEVT_BCM1480
857	bool
858
859config CEVT_DS1287
860	bool
861
862config CEVT_GT641XX
863	bool
864
865config CEVT_R4K_LIB
866	bool
867
868config CEVT_R4K
869	select CEVT_R4K_LIB
870	bool
871
872config CEVT_SB1250
873	bool
874
875config CEVT_TXX9
876	bool
877
878config CSRC_BCM1480
879	bool
880
881config CSRC_IOASIC
882	bool
883
884config CSRC_POWERTV
885	bool
886
887config CSRC_R4K_LIB
888	bool
889
890config CSRC_R4K
891	select CSRC_R4K_LIB
892	bool
893
894config CSRC_SB1250
895	bool
896
897config GPIO_TXX9
898	select GENERIC_GPIO
899	select ARCH_REQUIRE_GPIOLIB
900	bool
901
902config CFE
903	bool
904
905config ARCH_DMA_ADDR_T_64BIT
906	def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
907
908config DMA_COHERENT
909	bool
910
911config DMA_NONCOHERENT
912	bool
913	select NEED_DMA_MAP_STATE
914
915config NEED_DMA_MAP_STATE
916	bool
917
918config SYS_HAS_EARLY_PRINTK
919	bool
920
921config HOTPLUG_CPU
922	bool "Support for hot-pluggable CPUs"
923	depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
924	help
925	  Say Y here to allow turning CPUs off and on. CPUs can be
926	  controlled through /sys/devices/system/cpu.
927	  (Note: power management support will enable this option
928	    automatically on SMP systems. )
929	  Say N if you want to disable CPU hotplug.
930
931config SYS_SUPPORTS_HOTPLUG_CPU
932	bool
933
934config I8259
935	bool
936
937config MIPS_BONITO64
938	bool
939
940config MIPS_MSC
941	bool
942
943config MIPS_NILE4
944	bool
945
946config MIPS_DISABLE_OBSOLETE_IDE
947	bool
948
949config SYNC_R4K
950	bool
951
952config MIPS_MACHINE
953	def_bool n
954
955config NO_IOPORT
956	def_bool n
957
958config GENERIC_ISA_DMA
959	bool
960	select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
961	select ISA_DMA_API
962
963config GENERIC_ISA_DMA_SUPPORT_BROKEN
964	bool
965	select GENERIC_ISA_DMA
966
967config ISA_DMA_API
968	bool
969
970config GENERIC_GPIO
971	bool
972
973config HOLES_IN_ZONE
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