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