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