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