xref: /openbmc/linux/arch/mips/Kconfig (revision 7fe2f639)
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_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
973#
974# Endianess selection.  Sufficiently obscure so many users don't know what to
975# answer,so we try hard to limit the available choices.  Also the use of a
976# choice statement should be more obvious to the user.
977#
978choice
979	prompt "Endianess selection"
980	help
981	  Some MIPS machines can be configured for either little or big endian
982	  byte order. These modes require different kernels and a different
983	  Linux distribution.  In general there is one preferred byteorder for a
984	  particular system but some systems are just as commonly used in the
985	  one or the other endianness.
986
987config CPU_BIG_ENDIAN
988	bool "Big endian"
989	depends on SYS_SUPPORTS_BIG_ENDIAN
990
991config CPU_LITTLE_ENDIAN
992	bool "Little endian"
993	depends on SYS_SUPPORTS_LITTLE_ENDIAN
994	help
995
996endchoice
997
998config EXPORT_UASM
999	bool
1000
1001config SYS_SUPPORTS_APM_EMULATION
1002	bool
1003
1004config SYS_SUPPORTS_BIG_ENDIAN
1005	bool
1006
1007config SYS_SUPPORTS_LITTLE_ENDIAN
1008	bool
1009
1010config SYS_SUPPORTS_HUGETLBFS
1011	bool
1012	depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1013	default y
1014
1015config IRQ_CPU
1016	bool
1017
1018config IRQ_CPU_RM7K
1019	bool
1020
1021config IRQ_CPU_RM9K
1022	bool
1023
1024config IRQ_MSP_SLP
1025	bool
1026
1027config IRQ_MSP_CIC
1028	bool
1029
1030config IRQ_TXX9
1031	bool
1032
1033config IRQ_GT641XX
1034	bool
1035
1036config IRQ_GIC
1037	bool
1038
1039config MIPS_BOARDS_GEN
1040	bool
1041
1042config PCI_GT64XXX_PCI0
1043	bool
1044
1045config NO_EXCEPT_FILL
1046	bool
1047
1048config MIPS_RM9122
1049	bool
1050	select SERIAL_RM9000
1051
1052config SOC_EMMA2RH
1053	bool
1054	select CEVT_R4K
1055	select CSRC_R4K
1056	select DMA_NONCOHERENT
1057	select IRQ_CPU
1058	select SWAP_IO_SPACE
1059	select SYS_HAS_CPU_R5500
1060	select SYS_SUPPORTS_32BIT_KERNEL
1061	select SYS_SUPPORTS_64BIT_KERNEL
1062	select SYS_SUPPORTS_BIG_ENDIAN
1063
1064config SOC_PNX833X
1065	bool
1066	select CEVT_R4K
1067	select CSRC_R4K
1068	select IRQ_CPU
1069	select DMA_NONCOHERENT
1070	select SYS_HAS_CPU_MIPS32_R2
1071	select SYS_SUPPORTS_32BIT_KERNEL
1072	select SYS_SUPPORTS_LITTLE_ENDIAN
1073	select SYS_SUPPORTS_BIG_ENDIAN
1074	select GENERIC_GPIO
1075	select CPU_MIPSR2_IRQ_VI
1076
1077config SOC_PNX8335
1078	bool
1079	select SOC_PNX833X
1080
1081config PNX8550
1082	bool
1083	select SOC_PNX8550
1084
1085config SOC_PNX8550
1086	bool
1087	select DMA_NONCOHERENT
1088	select HW_HAS_PCI
1089	select SYS_HAS_CPU_MIPS32_R1
1090	select SYS_HAS_EARLY_PRINTK
1091	select SYS_SUPPORTS_32BIT_KERNEL
1092	select GENERIC_GPIO
1093
1094config SWAP_IO_SPACE
1095	bool
1096
1097config SERIAL_RM9000
1098	bool
1099
1100config SGI_HAS_INDYDOG
1101	bool
1102
1103config SGI_HAS_HAL2
1104	bool
1105
1106config SGI_HAS_SEEQ
1107	bool
1108
1109config SGI_HAS_WD93
1110	bool
1111
1112config SGI_HAS_ZILOG
1113	bool
1114
1115config SGI_HAS_I8042
1116	bool
1117
1118config DEFAULT_SGI_PARTITION
1119	bool
1120
1121config ARC32
1122	bool
1123
1124config SNIPROM
1125	bool
1126
1127config BOOT_ELF32
1128	bool
1129
1130config MIPS_L1_CACHE_SHIFT
1131	int
1132	default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1133	default "6" if MIPS_CPU_SCACHE
1134	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1135	default "5"
1136
1137config HAVE_STD_PC_SERIAL_PORT
1138	bool
1139
1140config ARC_CONSOLE
1141	bool "ARC console support"
1142	depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1143
1144config ARC_MEMORY
1145	bool
1146	depends on MACH_JAZZ || SNI_RM || SGI_IP32
1147	default y
1148
1149config ARC_PROMLIB
1150	bool
1151	depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1152	default y
1153
1154config ARC64
1155	bool
1156
1157config BOOT_ELF64
1158	bool
1159
1160menu "CPU selection"
1161
1162choice
1163	prompt "CPU type"
1164	default CPU_R4X00
1165
1166config CPU_LOONGSON2E
1167	bool "Loongson 2E"
1168	depends on SYS_HAS_CPU_LOONGSON2E
1169	select CPU_LOONGSON2
1170	help
1171	  The Loongson 2E processor implements the MIPS III instruction set
1172	  with many extensions.
1173
1174	  It has an internal FPGA northbridge, which is compatible to
1175	  bonito64.
1176
1177config CPU_LOONGSON2F
1178	bool "Loongson 2F"
1179	depends on SYS_HAS_CPU_LOONGSON2F
1180	select CPU_LOONGSON2
1181	select GENERIC_GPIO
1182	select ARCH_REQUIRE_GPIOLIB
1183	help
1184	  The Loongson 2F processor implements the MIPS III instruction set
1185	  with many extensions.
1186
1187	  Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1188	  have a similar programming interface with FPGA northbridge used in
1189	  Loongson2E.
1190
1191config CPU_MIPS32_R1
1192	bool "MIPS32 Release 1"
1193	depends on SYS_HAS_CPU_MIPS32_R1
1194	select CPU_HAS_PREFETCH
1195	select CPU_SUPPORTS_32BIT_KERNEL
1196	select CPU_SUPPORTS_HIGHMEM
1197	help
1198	  Choose this option to build a kernel for release 1 or later of the
1199	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
1200	  MIPS processor are based on a MIPS32 processor.  If you know the
1201	  specific type of processor in your system, choose those that one
1202	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1203	  Release 2 of the MIPS32 architecture is available since several
1204	  years so chances are you even have a MIPS32 Release 2 processor
1205	  in which case you should choose CPU_MIPS32_R2 instead for better
1206	  performance.
1207
1208config CPU_MIPS32_R2
1209	bool "MIPS32 Release 2"
1210	depends on SYS_HAS_CPU_MIPS32_R2
1211	select CPU_HAS_PREFETCH
1212	select CPU_SUPPORTS_32BIT_KERNEL
1213	select CPU_SUPPORTS_HIGHMEM
1214	help
1215	  Choose this option to build a kernel for release 2 or later of the
1216	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
1217	  MIPS processor are based on a MIPS32 processor.  If you know the
1218	  specific type of processor in your system, choose those that one
1219	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1220
1221config CPU_MIPS64_R1
1222	bool "MIPS64 Release 1"
1223	depends on SYS_HAS_CPU_MIPS64_R1
1224	select CPU_HAS_PREFETCH
1225	select CPU_SUPPORTS_32BIT_KERNEL
1226	select CPU_SUPPORTS_64BIT_KERNEL
1227	select CPU_SUPPORTS_HIGHMEM
1228	select CPU_SUPPORTS_HUGEPAGES
1229	help
1230	  Choose this option to build a kernel for release 1 or later of the
1231	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1232	  MIPS processor are based on a MIPS64 processor.  If you know the
1233	  specific type of processor in your system, choose those that one
1234	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1235	  Release 2 of the MIPS64 architecture is available since several
1236	  years so chances are you even have a MIPS64 Release 2 processor
1237	  in which case you should choose CPU_MIPS64_R2 instead for better
1238	  performance.
1239
1240config CPU_MIPS64_R2
1241	bool "MIPS64 Release 2"
1242	depends on SYS_HAS_CPU_MIPS64_R2
1243	select CPU_HAS_PREFETCH
1244	select CPU_SUPPORTS_32BIT_KERNEL
1245	select CPU_SUPPORTS_64BIT_KERNEL
1246	select CPU_SUPPORTS_HIGHMEM
1247	select CPU_SUPPORTS_HUGEPAGES
1248	help
1249	  Choose this option to build a kernel for release 2 or later of the
1250	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1251	  MIPS processor are based on a MIPS64 processor.  If you know the
1252	  specific type of processor in your system, choose those that one
1253	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1254
1255config CPU_R3000
1256	bool "R3000"
1257	depends on SYS_HAS_CPU_R3000
1258	select CPU_HAS_WB
1259	select CPU_SUPPORTS_32BIT_KERNEL
1260	select CPU_SUPPORTS_HIGHMEM
1261	help
1262	  Please make sure to pick the right CPU type. Linux/MIPS is not
1263	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1264	  *not* work on R4000 machines and vice versa.  However, since most
1265	  of the supported machines have an R4000 (or similar) CPU, R4x00
1266	  might be a safe bet.  If the resulting kernel does not work,
1267	  try to recompile with R3000.
1268
1269config CPU_TX39XX
1270	bool "R39XX"
1271	depends on SYS_HAS_CPU_TX39XX
1272	select CPU_SUPPORTS_32BIT_KERNEL
1273
1274config CPU_VR41XX
1275	bool "R41xx"
1276	depends on SYS_HAS_CPU_VR41XX
1277	select CPU_SUPPORTS_32BIT_KERNEL
1278	select CPU_SUPPORTS_64BIT_KERNEL
1279	help
1280	  The options selects support for the NEC VR4100 series of processors.
1281	  Only choose this option if you have one of these processors as a
1282	  kernel built with this option will not run on any other type of
1283	  processor or vice versa.
1284
1285config CPU_R4300
1286	bool "R4300"
1287	depends on SYS_HAS_CPU_R4300
1288	select CPU_SUPPORTS_32BIT_KERNEL
1289	select CPU_SUPPORTS_64BIT_KERNEL
1290	help
1291	  MIPS Technologies R4300-series processors.
1292
1293config CPU_R4X00
1294	bool "R4x00"
1295	depends on SYS_HAS_CPU_R4X00
1296	select CPU_SUPPORTS_32BIT_KERNEL
1297	select CPU_SUPPORTS_64BIT_KERNEL
1298	help
1299	  MIPS Technologies R4000-series processors other than 4300, including
1300	  the R4000, R4400, R4600, and 4700.
1301
1302config CPU_TX49XX
1303	bool "R49XX"
1304	depends on SYS_HAS_CPU_TX49XX
1305	select CPU_HAS_PREFETCH
1306	select CPU_SUPPORTS_32BIT_KERNEL
1307	select CPU_SUPPORTS_64BIT_KERNEL
1308
1309config CPU_R5000
1310	bool "R5000"
1311	depends on SYS_HAS_CPU_R5000
1312	select CPU_SUPPORTS_32BIT_KERNEL
1313	select CPU_SUPPORTS_64BIT_KERNEL
1314	help
1315	  MIPS Technologies R5000-series processors other than the Nevada.
1316
1317config CPU_R5432
1318	bool "R5432"
1319	depends on SYS_HAS_CPU_R5432
1320	select CPU_SUPPORTS_32BIT_KERNEL
1321	select CPU_SUPPORTS_64BIT_KERNEL
1322
1323config CPU_R5500
1324	bool "R5500"
1325	depends on SYS_HAS_CPU_R5500
1326	select CPU_SUPPORTS_32BIT_KERNEL
1327	select CPU_SUPPORTS_64BIT_KERNEL
1328	select CPU_SUPPORTS_HUGEPAGES
1329	help
1330	  NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1331	  instruction set.
1332
1333config CPU_R6000
1334	bool "R6000"
1335	depends on EXPERIMENTAL
1336	depends on SYS_HAS_CPU_R6000
1337	select CPU_SUPPORTS_32BIT_KERNEL
1338	help
1339	  MIPS Technologies R6000 and R6000A series processors.  Note these
1340	  processors are extremely rare and the support for them is incomplete.
1341
1342config CPU_NEVADA
1343	bool "RM52xx"
1344	depends on SYS_HAS_CPU_NEVADA
1345	select CPU_SUPPORTS_32BIT_KERNEL
1346	select CPU_SUPPORTS_64BIT_KERNEL
1347	help
1348	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1349
1350config CPU_R8000
1351	bool "R8000"
1352	depends on EXPERIMENTAL
1353	depends on SYS_HAS_CPU_R8000
1354	select CPU_HAS_PREFETCH
1355	select CPU_SUPPORTS_64BIT_KERNEL
1356	help
1357	  MIPS Technologies R8000 processors.  Note these processors are
1358	  uncommon and the support for them is incomplete.
1359
1360config CPU_R10000
1361	bool "R10000"
1362	depends on SYS_HAS_CPU_R10000
1363	select CPU_HAS_PREFETCH
1364	select CPU_SUPPORTS_32BIT_KERNEL
1365	select CPU_SUPPORTS_64BIT_KERNEL
1366	select CPU_SUPPORTS_HIGHMEM
1367	help
1368	  MIPS Technologies R10000-series processors.
1369
1370config CPU_RM7000
1371	bool "RM7000"
1372	depends on SYS_HAS_CPU_RM7000
1373	select CPU_HAS_PREFETCH
1374	select CPU_SUPPORTS_32BIT_KERNEL
1375	select CPU_SUPPORTS_64BIT_KERNEL
1376	select CPU_SUPPORTS_HIGHMEM
1377
1378config CPU_RM9000
1379	bool "RM9000"
1380	depends on SYS_HAS_CPU_RM9000
1381	select CPU_HAS_PREFETCH
1382	select CPU_SUPPORTS_32BIT_KERNEL
1383	select CPU_SUPPORTS_64BIT_KERNEL
1384	select CPU_SUPPORTS_HIGHMEM
1385	select WEAK_ORDERING
1386
1387config CPU_SB1
1388	bool "SB1"
1389	depends on SYS_HAS_CPU_SB1
1390	select CPU_SUPPORTS_32BIT_KERNEL
1391	select CPU_SUPPORTS_64BIT_KERNEL
1392	select CPU_SUPPORTS_HIGHMEM
1393	select WEAK_ORDERING
1394
1395config CPU_CAVIUM_OCTEON
1396	bool "Cavium Octeon processor"
1397	depends on SYS_HAS_CPU_CAVIUM_OCTEON
1398	select CPU_HAS_PREFETCH
1399	select CPU_SUPPORTS_64BIT_KERNEL
1400	select SYS_SUPPORTS_SMP
1401	select NR_CPUS_DEFAULT_16
1402	select WEAK_ORDERING
1403	select CPU_SUPPORTS_HIGHMEM
1404	select CPU_SUPPORTS_HUGEPAGES
1405	help
1406	  The Cavium Octeon processor is a highly integrated chip containing
1407	  many ethernet hardware widgets for networking tasks. The processor
1408	  can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1409	  Full details can be found at http://www.caviumnetworks.com.
1410
1411config CPU_BMIPS3300
1412	bool "BMIPS3300"
1413	depends on SYS_HAS_CPU_BMIPS3300
1414	select DMA_NONCOHERENT
1415	select IRQ_CPU
1416	select SWAP_IO_SPACE
1417	select SYS_SUPPORTS_32BIT_KERNEL
1418	select WEAK_ORDERING
1419	help
1420	  Broadcom BMIPS3300 processors.
1421
1422config CPU_BMIPS4350
1423	bool "BMIPS4350"
1424	depends on SYS_HAS_CPU_BMIPS4350
1425	select CPU_SUPPORTS_32BIT_KERNEL
1426	select DMA_NONCOHERENT
1427	select IRQ_CPU
1428	select SWAP_IO_SPACE
1429	select SYS_SUPPORTS_SMP
1430	select SYS_SUPPORTS_HOTPLUG_CPU
1431	select WEAK_ORDERING
1432	help
1433	  Broadcom BMIPS4350 ("VIPER") processors.
1434
1435config CPU_BMIPS4380
1436	bool "BMIPS4380"
1437	depends on SYS_HAS_CPU_BMIPS4380
1438	select CPU_SUPPORTS_32BIT_KERNEL
1439	select DMA_NONCOHERENT
1440	select IRQ_CPU
1441	select SWAP_IO_SPACE
1442	select SYS_SUPPORTS_SMP
1443	select SYS_SUPPORTS_HOTPLUG_CPU
1444	select WEAK_ORDERING
1445	help
1446	  Broadcom BMIPS4380 processors.
1447
1448config CPU_BMIPS5000
1449	bool "BMIPS5000"
1450	depends on SYS_HAS_CPU_BMIPS5000
1451	select CPU_SUPPORTS_32BIT_KERNEL
1452	select CPU_SUPPORTS_HIGHMEM
1453	select DMA_NONCOHERENT
1454	select IRQ_CPU
1455	select SWAP_IO_SPACE
1456	select SYS_SUPPORTS_SMP
1457	select SYS_SUPPORTS_HOTPLUG_CPU
1458	select WEAK_ORDERING
1459	help
1460	  Broadcom BMIPS5000 processors.
1461
1462config CPU_XLR
1463	bool "Netlogic XLR SoC"
1464	depends on SYS_HAS_CPU_XLR
1465	select CPU_SUPPORTS_32BIT_KERNEL
1466	select CPU_SUPPORTS_64BIT_KERNEL
1467	select CPU_SUPPORTS_HIGHMEM
1468	select WEAK_ORDERING
1469	select WEAK_REORDERING_BEYOND_LLSC
1470	select CPU_SUPPORTS_HUGEPAGES
1471	help
1472	  Netlogic Microsystems XLR/XLS processors.
1473endchoice
1474
1475if CPU_LOONGSON2F
1476config CPU_NOP_WORKAROUNDS
1477	bool
1478
1479config CPU_JUMP_WORKAROUNDS
1480	bool
1481
1482config CPU_LOONGSON2F_WORKAROUNDS
1483	bool "Loongson 2F Workarounds"
1484	default y
1485	select CPU_NOP_WORKAROUNDS
1486	select CPU_JUMP_WORKAROUNDS
1487	help
1488	  Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1489	  require workarounds.  Without workarounds the system may hang
1490	  unexpectedly.  For more information please refer to the gas
1491	  -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1492
1493	  Loongson 2F03 and later have fixed these issues and no workarounds
1494	  are needed.  The workarounds have no significant side effect on them
1495	  but may decrease the performance of the system so this option should
1496	  be disabled unless the kernel is intended to be run on 2F01 or 2F02
1497	  systems.
1498
1499	  If unsure, please say Y.
1500endif # CPU_LOONGSON2F
1501
1502config SYS_SUPPORTS_ZBOOT
1503	bool
1504	select HAVE_KERNEL_GZIP
1505	select HAVE_KERNEL_BZIP2
1506	select HAVE_KERNEL_LZMA
1507	select HAVE_KERNEL_LZO
1508
1509config SYS_SUPPORTS_ZBOOT_UART16550
1510	bool
1511	select SYS_SUPPORTS_ZBOOT
1512
1513config CPU_LOONGSON2
1514	bool
1515	select CPU_SUPPORTS_32BIT_KERNEL
1516	select CPU_SUPPORTS_64BIT_KERNEL
1517	select CPU_SUPPORTS_HIGHMEM
1518
1519config SYS_HAS_CPU_LOONGSON2E
1520	bool
1521
1522config SYS_HAS_CPU_LOONGSON2F
1523	bool
1524	select CPU_SUPPORTS_CPUFREQ
1525	select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1526	select CPU_SUPPORTS_UNCACHED_ACCELERATED
1527
1528config SYS_HAS_CPU_MIPS32_R1
1529	bool
1530
1531config SYS_HAS_CPU_MIPS32_R2
1532	bool
1533
1534config SYS_HAS_CPU_MIPS64_R1
1535	bool
1536
1537config SYS_HAS_CPU_MIPS64_R2
1538	bool
1539
1540config SYS_HAS_CPU_R3000
1541	bool
1542
1543config SYS_HAS_CPU_TX39XX
1544	bool
1545
1546config SYS_HAS_CPU_VR41XX
1547	bool
1548
1549config SYS_HAS_CPU_R4300
1550	bool
1551
1552config SYS_HAS_CPU_R4X00
1553	bool
1554
1555config SYS_HAS_CPU_TX49XX
1556	bool
1557
1558config SYS_HAS_CPU_R5000
1559	bool
1560
1561config SYS_HAS_CPU_R5432
1562	bool
1563
1564config SYS_HAS_CPU_R5500
1565	bool
1566
1567config SYS_HAS_CPU_R6000
1568	bool
1569
1570config SYS_HAS_CPU_NEVADA
1571	bool
1572
1573config SYS_HAS_CPU_R8000
1574	bool
1575
1576config SYS_HAS_CPU_R10000
1577	bool
1578
1579config SYS_HAS_CPU_RM7000
1580	bool
1581
1582config SYS_HAS_CPU_RM9000
1583	bool
1584
1585config SYS_HAS_CPU_SB1
1586	bool
1587
1588config SYS_HAS_CPU_CAVIUM_OCTEON
1589	bool
1590
1591config SYS_HAS_CPU_BMIPS3300
1592	bool
1593
1594config SYS_HAS_CPU_BMIPS4350
1595	bool
1596
1597config SYS_HAS_CPU_BMIPS4380
1598	bool
1599
1600config SYS_HAS_CPU_BMIPS5000
1601	bool
1602
1603config SYS_HAS_CPU_XLR
1604	bool
1605
1606#
1607# CPU may reorder R->R, R->W, W->R, W->W
1608# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1609#
1610config WEAK_ORDERING
1611	bool
1612
1613#
1614# CPU may reorder reads and writes beyond LL/SC
1615# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1616#
1617config WEAK_REORDERING_BEYOND_LLSC
1618	bool
1619endmenu
1620
1621#
1622# These two indicate any level of the MIPS32 and MIPS64 architecture
1623#
1624config CPU_MIPS32
1625	bool
1626	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1627
1628config CPU_MIPS64
1629	bool
1630	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1631
1632#
1633# These two indicate the revision of the architecture, either Release 1 or Release 2
1634#
1635config CPU_MIPSR1
1636	bool
1637	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1638
1639config CPU_MIPSR2
1640	bool
1641	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1642
1643config SYS_SUPPORTS_32BIT_KERNEL
1644	bool
1645config SYS_SUPPORTS_64BIT_KERNEL
1646	bool
1647config CPU_SUPPORTS_32BIT_KERNEL
1648	bool
1649config CPU_SUPPORTS_64BIT_KERNEL
1650	bool
1651config CPU_SUPPORTS_CPUFREQ
1652	bool
1653config CPU_SUPPORTS_ADDRWINCFG
1654	bool
1655config CPU_SUPPORTS_HUGEPAGES
1656	bool
1657config CPU_SUPPORTS_UNCACHED_ACCELERATED
1658	bool
1659config MIPS_PGD_C0_CONTEXT
1660	bool
1661	default y if 64BIT && CPU_MIPSR2
1662
1663#
1664# Set to y for ptrace access to watch registers.
1665#
1666config HARDWARE_WATCHPOINTS
1667       bool
1668       default y if CPU_MIPSR1 || CPU_MIPSR2
1669
1670menu "Kernel type"
1671
1672choice
1673
1674	prompt "Kernel code model"
1675	help
1676	  You should only select this option if you have a workload that
1677	  actually benefits from 64-bit processing or if your machine has
1678	  large memory.  You will only be presented a single option in this
1679	  menu if your system does not support both 32-bit and 64-bit kernels.
1680
1681config 32BIT
1682	bool "32-bit kernel"
1683	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1684	select TRAD_SIGNALS
1685	help
1686	  Select this option if you want to build a 32-bit kernel.
1687config 64BIT
1688	bool "64-bit kernel"
1689	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1690	select HAVE_SYSCALL_WRAPPERS
1691	help
1692	  Select this option if you want to build a 64-bit kernel.
1693
1694endchoice
1695
1696choice
1697	prompt "Kernel page size"
1698	default PAGE_SIZE_4KB
1699
1700config PAGE_SIZE_4KB
1701	bool "4kB"
1702	depends on !CPU_LOONGSON2
1703	help
1704	 This option select the standard 4kB Linux page size.  On some
1705	 R3000-family processors this is the only available page size.  Using
1706	 4kB page size will minimize memory consumption and is therefore
1707	 recommended for low memory systems.
1708
1709config PAGE_SIZE_8KB
1710	bool "8kB"
1711	depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1712	help
1713	  Using 8kB page size will result in higher performance kernel at
1714	  the price of higher memory consumption.  This option is available
1715	  only on R8000 and cnMIPS processors.  Note that you will need a
1716	  suitable Linux distribution to support this.
1717
1718config PAGE_SIZE_16KB
1719	bool "16kB"
1720	depends on !CPU_R3000 && !CPU_TX39XX
1721	help
1722	  Using 16kB page size will result in higher performance kernel at
1723	  the price of higher memory consumption.  This option is available on
1724	  all non-R3000 family processors.  Note that you will need a suitable
1725	  Linux distribution to support this.
1726
1727config PAGE_SIZE_32KB
1728	bool "32kB"
1729	depends on CPU_CAVIUM_OCTEON
1730	help
1731	  Using 32kB page size will result in higher performance kernel at
1732	  the price of higher memory consumption.  This option is available
1733	  only on cnMIPS cores.  Note that you will need a suitable Linux
1734	  distribution to support this.
1735
1736config PAGE_SIZE_64KB
1737	bool "64kB"
1738	depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1739	help
1740	  Using 64kB page size will result in higher performance kernel at
1741	  the price of higher memory consumption.  This option is available on
1742	  all non-R3000 family processor.  Not that at the time of this
1743	  writing this option is still high experimental.
1744
1745endchoice
1746
1747config FORCE_MAX_ZONEORDER
1748	int "Maximum zone order"
1749	range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1750	default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1751	range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1752	default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1753	range 11 64
1754	default "11"
1755	help
1756	  The kernel memory allocator divides physically contiguous memory
1757	  blocks into "zones", where each zone is a power of two number of
1758	  pages.  This option selects the largest power of two that the kernel
1759	  keeps in the memory allocator.  If you need to allocate very large
1760	  blocks of physically contiguous memory, then you may need to
1761	  increase this value.
1762
1763	  This config option is actually maximum order plus one. For example,
1764	  a value of 11 means that the largest free memory block is 2^10 pages.
1765
1766	  The page size is not necessarily 4KB.  Keep this in mind
1767	  when choosing a value for this option.
1768
1769config BOARD_SCACHE
1770	bool
1771
1772config IP22_CPU_SCACHE
1773	bool
1774	select BOARD_SCACHE
1775
1776#
1777# Support for a MIPS32 / MIPS64 style S-caches
1778#
1779config MIPS_CPU_SCACHE
1780	bool
1781	select BOARD_SCACHE
1782
1783config R5000_CPU_SCACHE
1784	bool
1785	select BOARD_SCACHE
1786
1787config RM7000_CPU_SCACHE
1788	bool
1789	select BOARD_SCACHE
1790
1791config SIBYTE_DMA_PAGEOPS
1792	bool "Use DMA to clear/copy pages"
1793	depends on CPU_SB1
1794	help
1795	  Instead of using the CPU to zero and copy pages, use a Data Mover
1796	  channel.  These DMA channels are otherwise unused by the standard
1797	  SiByte Linux port.  Seems to give a small performance benefit.
1798
1799config CPU_HAS_PREFETCH
1800	bool
1801
1802choice
1803	prompt "MIPS MT options"
1804
1805config MIPS_MT_DISABLED
1806	bool "Disable multithreading support."
1807	help
1808	  Use this option if your workload can't take advantage of
1809	  MIPS hardware multithreading support.  On systems that don't have
1810	  the option of an MT-enabled processor this option will be the only
1811	  option in this menu.
1812
1813config MIPS_MT_SMP
1814	bool "Use 1 TC on each available VPE for SMP"
1815	depends on SYS_SUPPORTS_MULTITHREADING
1816	select CPU_MIPSR2_IRQ_VI
1817	select CPU_MIPSR2_IRQ_EI
1818	select MIPS_MT
1819	select NR_CPUS_DEFAULT_2
1820	select SMP
1821	select SYS_SUPPORTS_SCHED_SMT if SMP
1822	select SYS_SUPPORTS_SMP
1823	select SMP_UP
1824	help
1825	  This is a kernel model which is known a VSMP but lately has been
1826	  marketesed into SMVP.
1827	  Virtual SMP uses the processor's VPEs  to implement virtual
1828	  processors. In currently available configuration of the 34K processor
1829	  this allows for a dual processor. Both processors will share the same
1830	  primary caches; each will obtain the half of the TLB for it's own
1831	  exclusive use. For a layman this model can be described as similar to
1832	  what Intel calls Hyperthreading.
1833
1834	  For further information see http://www.linux-mips.org/wiki/34K#VSMP
1835
1836config MIPS_MT_SMTC
1837	bool "SMTC: Use all TCs on all VPEs for SMP"
1838	depends on CPU_MIPS32_R2
1839	#depends on CPU_MIPS64_R2		# once there is hardware ...
1840	depends on SYS_SUPPORTS_MULTITHREADING
1841	select CPU_MIPSR2_IRQ_VI
1842	select CPU_MIPSR2_IRQ_EI
1843	select MIPS_MT
1844	select NR_CPUS_DEFAULT_8
1845	select SMP
1846	select SYS_SUPPORTS_SMP
1847	select SMP_UP
1848	help
1849	  This is a kernel model which is known a SMTC or lately has been
1850	  marketesed into SMVP.
1851	  is presenting the available TC's of the core as processors to Linux.
1852	  On currently available 34K processors this means a Linux system will
1853	  see up to 5 processors. The implementation of the SMTC kernel differs
1854	  significantly from VSMP and cannot efficiently coexist in the same
1855	  kernel binary so the choice between VSMP and SMTC is a compile time
1856	  decision.
1857
1858	  For further information see http://www.linux-mips.org/wiki/34K#SMTC
1859
1860endchoice
1861
1862config MIPS_MT
1863	bool
1864
1865config SCHED_SMT
1866	bool "SMT (multithreading) scheduler support"
1867	depends on SYS_SUPPORTS_SCHED_SMT
1868	default n
1869	help
1870	  SMT scheduler support improves the CPU scheduler's decision making
1871	  when dealing with MIPS MT enabled cores at a cost of slightly
1872	  increased overhead in some places. If unsure say N here.
1873
1874config SYS_SUPPORTS_SCHED_SMT
1875	bool
1876
1877
1878config SYS_SUPPORTS_MULTITHREADING
1879	bool
1880
1881config MIPS_MT_FPAFF
1882	bool "Dynamic FPU affinity for FP-intensive threads"
1883	default y
1884	depends on MIPS_MT_SMP || MIPS_MT_SMTC
1885
1886config MIPS_VPE_LOADER
1887	bool "VPE loader support."
1888	depends on SYS_SUPPORTS_MULTITHREADING
1889	select CPU_MIPSR2_IRQ_VI
1890	select CPU_MIPSR2_IRQ_EI
1891	select MIPS_MT
1892	help
1893	  Includes a loader for loading an elf relocatable object
1894	  onto another VPE and running it.
1895
1896config MIPS_MT_SMTC_IM_BACKSTOP
1897	bool "Use per-TC register bits as backstop for inhibited IM bits"
1898	depends on MIPS_MT_SMTC
1899	default n
1900	help
1901	  To support multiple TC microthreads acting as "CPUs" within
1902	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1903	  during interrupt handling. To support legacy drivers and interrupt
1904	  controller management code, SMTC has a "backstop" to track and
1905	  if necessary restore the interrupt mask. This has some performance
1906	  impact on interrupt service overhead.
1907
1908config MIPS_MT_SMTC_IRQAFF
1909	bool "Support IRQ affinity API"
1910	depends on MIPS_MT_SMTC
1911	default n
1912	help
1913	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1914	  for SMTC Linux kernel. Requires platform support, of which
1915	  an example can be found in the MIPS kernel i8259 and Malta
1916	  platform code.  Adds some overhead to interrupt dispatch, and
1917	  should be used only if you know what you are doing.
1918
1919config MIPS_VPE_LOADER_TOM
1920	bool "Load VPE program into memory hidden from linux"
1921	depends on MIPS_VPE_LOADER
1922	default y
1923	help
1924	  The loader can use memory that is present but has been hidden from
1925	  Linux using the kernel command line option "mem=xxMB". It's up to
1926	  you to ensure the amount you put in the option and the space your
1927	  program requires is less or equal to the amount physically present.
1928
1929# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1930config MIPS_VPE_APSP_API
1931	bool "Enable support for AP/SP API (RTLX)"
1932	depends on MIPS_VPE_LOADER
1933	help
1934
1935config MIPS_APSP_KSPD
1936	bool "Enable KSPD"
1937	depends on MIPS_VPE_APSP_API
1938	default y
1939	help
1940	  KSPD is a kernel daemon that accepts syscall requests from the SP
1941	  side, actions them and returns the results. It also handles the
1942	  "exit" syscall notifying other kernel modules the SP program is
1943	  exiting.  You probably want to say yes here.
1944
1945config MIPS_CMP
1946	bool "MIPS CMP framework support"
1947	depends on SYS_SUPPORTS_MIPS_CMP
1948	select SYNC_R4K
1949	select SYS_SUPPORTS_SMP
1950	select SYS_SUPPORTS_SCHED_SMT if SMP
1951	select WEAK_ORDERING
1952	default n
1953	help
1954	  This is a placeholder option for the GCMP work. It will need to
1955	  be handled differently...
1956
1957config SB1_PASS_1_WORKAROUNDS
1958	bool
1959	depends on CPU_SB1_PASS_1
1960	default y
1961
1962config SB1_PASS_2_WORKAROUNDS
1963	bool
1964	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1965	default y
1966
1967config SB1_PASS_2_1_WORKAROUNDS
1968	bool
1969	depends on CPU_SB1 && CPU_SB1_PASS_2
1970	default y
1971
1972config 64BIT_PHYS_ADDR
1973	bool
1974
1975config ARCH_PHYS_ADDR_T_64BIT
1976       def_bool 64BIT_PHYS_ADDR
1977
1978config CPU_HAS_SMARTMIPS
1979	depends on SYS_SUPPORTS_SMARTMIPS
1980	bool "Support for the SmartMIPS ASE"
1981	help
1982	  SmartMIPS is a extension of the MIPS32 architecture aimed at
1983	  increased security at both hardware and software level for
1984	  smartcards.  Enabling this option will allow proper use of the
1985	  SmartMIPS instructions by Linux applications.  However a kernel with
1986	  this option will not work on a MIPS core without SmartMIPS core.  If
1987	  you don't know you probably don't have SmartMIPS and should say N
1988	  here.
1989
1990config CPU_HAS_WB
1991	bool
1992
1993#
1994# Vectored interrupt mode is an R2 feature
1995#
1996config CPU_MIPSR2_IRQ_VI
1997	bool
1998
1999#
2000# Extended interrupt mode is an R2 feature
2001#
2002config CPU_MIPSR2_IRQ_EI
2003	bool
2004
2005config CPU_HAS_SYNC
2006	bool
2007	depends on !CPU_R3000
2008	default y
2009
2010config GENERIC_CLOCKEVENTS_BROADCAST
2011	bool
2012
2013#
2014# CPU non-features
2015#
2016config CPU_DADDI_WORKAROUNDS
2017	bool
2018
2019config CPU_R4000_WORKAROUNDS
2020	bool
2021	select CPU_R4400_WORKAROUNDS
2022
2023config CPU_R4400_WORKAROUNDS
2024	bool
2025
2026#
2027# - Highmem only makes sense for the 32-bit kernel.
2028# - The current highmem code will only work properly on physically indexed
2029#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2030#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2031#   moment we protect the user and offer the highmem option only on machines
2032#   where it's known to be safe.  This will not offer highmem on a few systems
2033#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2034#   indexed CPUs but we're playing safe.
2035# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2036#   know they might have memory configurations that could make use of highmem
2037#   support.
2038#
2039config HIGHMEM
2040	bool "High Memory Support"
2041	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2042
2043config CPU_SUPPORTS_HIGHMEM
2044	bool
2045
2046config SYS_SUPPORTS_HIGHMEM
2047	bool
2048
2049config SYS_SUPPORTS_SMARTMIPS
2050	bool
2051
2052config ARCH_FLATMEM_ENABLE
2053	def_bool y
2054	depends on !NUMA && !CPU_LOONGSON2
2055
2056config ARCH_DISCONTIGMEM_ENABLE
2057	bool
2058	default y if SGI_IP27
2059	help
2060	  Say Y to support efficient handling of discontiguous physical memory,
2061	  for architectures which are either NUMA (Non-Uniform Memory Access)
2062	  or have huge holes in the physical address space for other reasons.
2063	  See <file:Documentation/vm/numa> for more.
2064
2065config ARCH_POPULATES_NODE_MAP
2066	def_bool y
2067
2068config ARCH_SPARSEMEM_ENABLE
2069	bool
2070	select SPARSEMEM_STATIC
2071
2072config NUMA
2073	bool "NUMA Support"
2074	depends on SYS_SUPPORTS_NUMA
2075	help
2076	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2077	  Access).  This option improves performance on systems with more
2078	  than two nodes; on two node systems it is generally better to
2079	  leave it disabled; on single node systems disable this option
2080	  disabled.
2081
2082config SYS_SUPPORTS_NUMA
2083	bool
2084
2085config NODES_SHIFT
2086	int
2087	default "6"
2088	depends on NEED_MULTIPLE_NODES
2089
2090config HW_PERF_EVENTS
2091	bool "Enable hardware performance counter support for perf events"
2092	depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && CPU_MIPS32
2093	default y
2094	help
2095	  Enable hardware performance counter support for perf events. If
2096	  disabled, perf events will use software events only.
2097
2098source "mm/Kconfig"
2099
2100config SMP
2101	bool "Multi-Processing support"
2102	depends on SYS_SUPPORTS_SMP
2103	select IRQ_PER_CPU
2104	select USE_GENERIC_SMP_HELPERS
2105	help
2106	  This enables support for systems with more than one CPU. If you have
2107	  a system with only one CPU, like most personal computers, say N. If
2108	  you have a system with more than one CPU, say Y.
2109
2110	  If you say N here, the kernel will run on single and multiprocessor
2111	  machines, but will use only one CPU of a multiprocessor machine. If
2112	  you say Y here, the kernel will run on many, but not all,
2113	  singleprocessor machines. On a singleprocessor machine, the kernel
2114	  will run faster if you say N here.
2115
2116	  People using multiprocessor machines who say Y here should also say
2117	  Y to "Enhanced Real Time Clock Support", below.
2118
2119	  See also the SMP-HOWTO available at
2120	  <http://www.tldp.org/docs.html#howto>.
2121
2122	  If you don't know what to do here, say N.
2123
2124config SMP_UP
2125	bool
2126
2127config SYS_SUPPORTS_MIPS_CMP
2128	bool
2129
2130config SYS_SUPPORTS_SMP
2131	bool
2132
2133config NR_CPUS_DEFAULT_1
2134	bool
2135
2136config NR_CPUS_DEFAULT_2
2137	bool
2138
2139config NR_CPUS_DEFAULT_4
2140	bool
2141
2142config NR_CPUS_DEFAULT_8
2143	bool
2144
2145config NR_CPUS_DEFAULT_16
2146	bool
2147
2148config NR_CPUS_DEFAULT_32
2149	bool
2150
2151config NR_CPUS_DEFAULT_64
2152	bool
2153
2154config NR_CPUS
2155	int "Maximum number of CPUs (2-64)"
2156	range 1 64 if NR_CPUS_DEFAULT_1
2157	depends on SMP
2158	default "1" if NR_CPUS_DEFAULT_1
2159	default "2" if NR_CPUS_DEFAULT_2
2160	default "4" if NR_CPUS_DEFAULT_4
2161	default "8" if NR_CPUS_DEFAULT_8
2162	default "16" if NR_CPUS_DEFAULT_16
2163	default "32" if NR_CPUS_DEFAULT_32
2164	default "64" if NR_CPUS_DEFAULT_64
2165	help
2166	  This allows you to specify the maximum number of CPUs which this
2167	  kernel will support.  The maximum supported value is 32 for 32-bit
2168	  kernel and 64 for 64-bit kernels; the minimum value which makes
2169	  sense is 1 for Qemu (useful only for kernel debugging purposes)
2170	  and 2 for all others.
2171
2172	  This is purely to save memory - each supported CPU adds
2173	  approximately eight kilobytes to the kernel image.  For best
2174	  performance should round up your number of processors to the next
2175	  power of two.
2176
2177source "kernel/time/Kconfig"
2178
2179#
2180# Timer Interrupt Frequency Configuration
2181#
2182
2183choice
2184	prompt "Timer frequency"
2185	default HZ_250
2186	help
2187	 Allows the configuration of the timer frequency.
2188
2189	config HZ_48
2190		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2191
2192	config HZ_100
2193		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2194
2195	config HZ_128
2196		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2197
2198	config HZ_250
2199		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2200
2201	config HZ_256
2202		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2203
2204	config HZ_1000
2205		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2206
2207	config HZ_1024
2208		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2209
2210endchoice
2211
2212config SYS_SUPPORTS_48HZ
2213	bool
2214
2215config SYS_SUPPORTS_100HZ
2216	bool
2217
2218config SYS_SUPPORTS_128HZ
2219	bool
2220
2221config SYS_SUPPORTS_250HZ
2222	bool
2223
2224config SYS_SUPPORTS_256HZ
2225	bool
2226
2227config SYS_SUPPORTS_1000HZ
2228	bool
2229
2230config SYS_SUPPORTS_1024HZ
2231	bool
2232
2233config SYS_SUPPORTS_ARBIT_HZ
2234	bool
2235	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2236		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2237		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2238		     !SYS_SUPPORTS_1024HZ
2239
2240config HZ
2241	int
2242	default 48 if HZ_48
2243	default 100 if HZ_100
2244	default 128 if HZ_128
2245	default 250 if HZ_250
2246	default 256 if HZ_256
2247	default 1000 if HZ_1000
2248	default 1024 if HZ_1024
2249
2250source "kernel/Kconfig.preempt"
2251
2252config MIPS_INSANE_LARGE
2253	bool "Support for large 64-bit configurations"
2254	depends on CPU_R10000 && 64BIT
2255	help
2256	  MIPS R10000 does support a 44 bit / 16TB address space as opposed to
2257	  previous 64-bit processors which only supported 40 bit / 1TB. If you
2258	  need processes of more than 1TB virtual address space, say Y here.
2259	  This will result in additional memory usage, so it is not
2260	  recommended for normal users.
2261
2262config KEXEC
2263	bool "Kexec system call (EXPERIMENTAL)"
2264	depends on EXPERIMENTAL
2265	help
2266	  kexec is a system call that implements the ability to shutdown your
2267	  current kernel, and to start another kernel.  It is like a reboot
2268	  but it is independent of the system firmware.   And like a reboot
2269	  you can start any kernel with it, not just Linux.
2270
2271	  The name comes from the similarity to the exec system call.
2272
2273	  It is an ongoing process to be certain the hardware in a machine
2274	  is properly shutdown, so do not be surprised if this code does not
2275	  initially work for you.  It may help to enable device hotplugging
2276	  support.  As of this writing the exact hardware interface is
2277	  strongly in flux, so no good recommendation can be made.
2278
2279config SECCOMP
2280	bool "Enable seccomp to safely compute untrusted bytecode"
2281	depends on PROC_FS
2282	default y
2283	help
2284	  This kernel feature is useful for number crunching applications
2285	  that may need to compute untrusted bytecode during their
2286	  execution. By using pipes or other transports made available to
2287	  the process as file descriptors supporting the read/write
2288	  syscalls, it's possible to isolate those applications in
2289	  their own address space using seccomp. Once seccomp is
2290	  enabled via /proc/<pid>/seccomp, it cannot be disabled
2291	  and the task is only allowed to execute a few safe syscalls
2292	  defined by each seccomp mode.
2293
2294	  If unsure, say Y. Only embedded should say N here.
2295
2296config USE_OF
2297	bool "Flattened Device Tree support"
2298	select OF
2299	select OF_EARLY_FLATTREE
2300	help
2301	  Include support for flattened device tree machine descriptions.
2302
2303endmenu
2304
2305config LOCKDEP_SUPPORT
2306	bool
2307	default y
2308
2309config STACKTRACE_SUPPORT
2310	bool
2311	default y
2312
2313source "init/Kconfig"
2314
2315source "kernel/Kconfig.freezer"
2316
2317menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2318
2319config HW_HAS_EISA
2320	bool
2321config HW_HAS_PCI
2322	bool
2323
2324config PCI
2325	bool "Support for PCI controller"
2326	depends on HW_HAS_PCI
2327	select PCI_DOMAINS
2328	help
2329	  Find out whether you have a PCI motherboard. PCI is the name of a
2330	  bus system, i.e. the way the CPU talks to the other stuff inside
2331	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2332	  say Y, otherwise N.
2333
2334config PCI_DOMAINS
2335	bool
2336
2337source "drivers/pci/Kconfig"
2338
2339#
2340# ISA support is now enabled via select.  Too many systems still have the one
2341# or other ISA chip on the board that users don't know about so don't expect
2342# users to choose the right thing ...
2343#
2344config ISA
2345	bool
2346
2347config EISA
2348	bool "EISA support"
2349	depends on HW_HAS_EISA
2350	select ISA
2351	select GENERIC_ISA_DMA
2352	---help---
2353	  The Extended Industry Standard Architecture (EISA) bus was
2354	  developed as an open alternative to the IBM MicroChannel bus.
2355
2356	  The EISA bus provided some of the features of the IBM MicroChannel
2357	  bus while maintaining backward compatibility with cards made for
2358	  the older ISA bus.  The EISA bus saw limited use between 1988 and
2359	  1995 when it was made obsolete by the PCI bus.
2360
2361	  Say Y here if you are building a kernel for an EISA-based machine.
2362
2363	  Otherwise, say N.
2364
2365source "drivers/eisa/Kconfig"
2366
2367config TC
2368	bool "TURBOchannel support"
2369	depends on MACH_DECSTATION
2370	help
2371	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2372	  processors.  TURBOchannel programming specifications are available
2373	  at:
2374	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2375	  and:
2376	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2377	  Linux driver support status is documented at:
2378	  <http://www.linux-mips.org/wiki/DECstation>
2379
2380#config ACCESSBUS
2381#	bool "Access.Bus support"
2382#	depends on TC
2383
2384config MMU
2385	bool
2386	default y
2387
2388config I8253
2389	bool
2390	select CLKSRC_I8253
2391	select MIPS_EXTERNAL_TIMER
2392
2393config ZONE_DMA32
2394	bool
2395
2396source "drivers/pcmcia/Kconfig"
2397
2398source "drivers/pci/hotplug/Kconfig"
2399
2400config RAPIDIO
2401	bool "RapidIO support"
2402	depends on PCI
2403	default n
2404	help
2405	  If you say Y here, the kernel will include drivers and
2406	  infrastructure code to support RapidIO interconnect devices.
2407
2408source "drivers/rapidio/Kconfig"
2409
2410endmenu
2411
2412menu "Executable file formats"
2413
2414source "fs/Kconfig.binfmt"
2415
2416config TRAD_SIGNALS
2417	bool
2418
2419config MIPS32_COMPAT
2420	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2421	depends on 64BIT
2422	help
2423	  Select this option if you want Linux/MIPS 32-bit binary
2424	  compatibility. Since all software available for Linux/MIPS is
2425	  currently 32-bit you should say Y here.
2426
2427config COMPAT
2428	bool
2429	depends on MIPS32_COMPAT
2430	default y
2431
2432config SYSVIPC_COMPAT
2433	bool
2434	depends on COMPAT && SYSVIPC
2435	default y
2436
2437config MIPS32_O32
2438	bool "Kernel support for o32 binaries"
2439	depends on MIPS32_COMPAT
2440	help
2441	  Select this option if you want to run o32 binaries.  These are pure
2442	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2443	  existing binaries are in this format.
2444
2445	  If unsure, say Y.
2446
2447config MIPS32_N32
2448	bool "Kernel support for n32 binaries"
2449	depends on MIPS32_COMPAT
2450	help
2451	  Select this option if you want to run n32 binaries.  These are
2452	  64-bit binaries using 32-bit quantities for addressing and certain
2453	  data that would normally be 64-bit.  They are used in special
2454	  cases.
2455
2456	  If unsure, say N.
2457
2458config BINFMT_ELF32
2459	bool
2460	default y if MIPS32_O32 || MIPS32_N32
2461
2462endmenu
2463
2464menu "Power management options"
2465
2466config ARCH_HIBERNATION_POSSIBLE
2467	def_bool y
2468	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2469
2470config ARCH_SUSPEND_POSSIBLE
2471	def_bool y
2472	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2473
2474source "kernel/power/Kconfig"
2475
2476endmenu
2477
2478source "arch/mips/kernel/cpufreq/Kconfig"
2479
2480source "net/Kconfig"
2481
2482source "drivers/Kconfig"
2483
2484source "fs/Kconfig"
2485
2486source "arch/mips/Kconfig.debug"
2487
2488source "security/Kconfig"
2489
2490source "crypto/Kconfig"
2491
2492menuconfig VIRTUALIZATION
2493	bool "Virtualization"
2494	default n
2495	---help---
2496	  Say Y here to get to see options for using your Linux host to run other
2497	  operating systems inside virtual machines (guests).
2498	  This option alone does not add any kernel code.
2499
2500	  If you say N, all options in this submenu will be skipped and disabled.
2501
2502if VIRTUALIZATION
2503
2504source drivers/virtio/Kconfig
2505
2506endif # VIRTUALIZATION
2507
2508source "lib/Kconfig"
2509