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