xref: /linux/arch/mips/Kconfig (revision 4413e16d9d21673bb5048a2e542f1aaa00015c2e)
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 HAVE_CLK
93	select IRQ_CPU
94	select MIPS_MACHINE
95	select SYS_HAS_CPU_MIPS32_R2
96	select SYS_HAS_EARLY_PRINTK
97	select SYS_SUPPORTS_32BIT_KERNEL
98	select SYS_SUPPORTS_BIG_ENDIAN
99	help
100	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
101
102config BCM47XX
103	bool "Broadcom BCM47XX based boards"
104	select CEVT_R4K
105	select CSRC_R4K
106	select DMA_NONCOHERENT
107	select HW_HAS_PCI
108	select IRQ_CPU
109	select SYS_SUPPORTS_32BIT_KERNEL
110	select SYS_SUPPORTS_LITTLE_ENDIAN
111	select GENERIC_GPIO
112	select SYS_HAS_EARLY_PRINTK
113	select CFE
114	help
115	 Support for BCM47XX based boards
116
117config BCM63XX
118	bool "Broadcom BCM63XX based boards"
119	select CEVT_R4K
120	select CSRC_R4K
121	select DMA_NONCOHERENT
122	select IRQ_CPU
123	select SYS_HAS_CPU_MIPS32_R1
124	select SYS_SUPPORTS_32BIT_KERNEL
125	select SYS_SUPPORTS_BIG_ENDIAN
126	select SYS_HAS_EARLY_PRINTK
127	select SWAP_IO_SPACE
128	select ARCH_REQUIRE_GPIOLIB
129	select HAVE_CLK
130	help
131	 Support for BCM63XX based boards
132
133config MIPS_COBALT
134	bool "Cobalt Server"
135	select CEVT_R4K
136	select CSRC_R4K
137	select CEVT_GT641XX
138	select DMA_NONCOHERENT
139	select HW_HAS_PCI
140	select I8253
141	select I8259
142	select IRQ_CPU
143	select IRQ_GT641XX
144	select PCI_GT64XXX_PCI0
145	select PCI
146	select SYS_HAS_CPU_NEVADA
147	select SYS_HAS_EARLY_PRINTK
148	select SYS_SUPPORTS_32BIT_KERNEL
149	select SYS_SUPPORTS_64BIT_KERNEL
150	select SYS_SUPPORTS_LITTLE_ENDIAN
151
152config MACH_DECSTATION
153	bool "DECstations"
154	select BOOT_ELF32
155	select CEVT_DS1287
156	select CEVT_R4K
157	select CSRC_IOASIC
158	select CSRC_R4K
159	select CPU_DADDI_WORKAROUNDS if 64BIT
160	select CPU_R4000_WORKAROUNDS if 64BIT
161	select CPU_R4400_WORKAROUNDS if 64BIT
162	select DMA_NONCOHERENT
163	select NO_IOPORT
164	select IRQ_CPU
165	select SYS_HAS_CPU_R3000
166	select SYS_HAS_CPU_R4X00
167	select SYS_SUPPORTS_32BIT_KERNEL
168	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
169	select SYS_SUPPORTS_LITTLE_ENDIAN
170	select SYS_SUPPORTS_128HZ
171	select SYS_SUPPORTS_256HZ
172	select SYS_SUPPORTS_1024HZ
173	help
174	  This enables support for DEC's MIPS based workstations.  For details
175	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
176	  DECstation porting pages on <http://decstation.unix-ag.org/>.
177
178	  If you have one of the following DECstation Models you definitely
179	  want to choose R4xx0 for the CPU Type:
180
181		DECstation 5000/50
182		DECstation 5000/150
183		DECstation 5000/260
184		DECsystem 5900/260
185
186	  otherwise choose R3000.
187
188config MACH_JAZZ
189	bool "Jazz family of machines"
190	select ARC
191	select ARC32
192	select ARCH_MAY_HAVE_PC_FDC
193	select CEVT_R4K
194	select CSRC_R4K
195	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
196	select GENERIC_ISA_DMA
197	select HAVE_PCSPKR_PLATFORM
198	select IRQ_CPU
199	select I8253
200	select I8259
201	select ISA
202	select SYS_HAS_CPU_R4X00
203	select SYS_SUPPORTS_32BIT_KERNEL
204	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
205	select SYS_SUPPORTS_100HZ
206	help
207	 This a family of machines based on the MIPS R4030 chipset which was
208	 used by several vendors to build RISC/os and Windows NT workstations.
209	 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
210	 Olivetti M700-10 workstations.
211
212config MACH_JZ4740
213	bool "Ingenic JZ4740 based machines"
214	select SYS_HAS_CPU_MIPS32_R1
215	select SYS_SUPPORTS_32BIT_KERNEL
216	select SYS_SUPPORTS_LITTLE_ENDIAN
217	select SYS_SUPPORTS_ZBOOT_UART16550
218	select DMA_NONCOHERENT
219	select IRQ_CPU
220	select GENERIC_GPIO
221	select ARCH_REQUIRE_GPIOLIB
222	select SYS_HAS_EARLY_PRINTK
223	select HAVE_PWM
224	select HAVE_CLK
225	select GENERIC_IRQ_CHIP
226
227config LANTIQ
228	bool "Lantiq based platforms"
229	select DMA_NONCOHERENT
230	select IRQ_CPU
231	select CEVT_R4K
232	select CSRC_R4K
233	select SYS_HAS_CPU_MIPS32_R1
234	select SYS_HAS_CPU_MIPS32_R2
235	select SYS_SUPPORTS_BIG_ENDIAN
236	select SYS_SUPPORTS_32BIT_KERNEL
237	select SYS_SUPPORTS_MULTITHREADING
238	select SYS_HAS_EARLY_PRINTK
239	select ARCH_REQUIRE_GPIOLIB
240	select SWAP_IO_SPACE
241	select BOOT_RAW
242	select HAVE_MACH_CLKDEV
243	select CLKDEV_LOOKUP
244	select USE_OF
245
246config LASAT
247	bool "LASAT Networks platforms"
248	select CEVT_R4K
249	select CSRC_R4K
250	select DMA_NONCOHERENT
251	select SYS_HAS_EARLY_PRINTK
252	select HW_HAS_PCI
253	select IRQ_CPU
254	select PCI_GT64XXX_PCI0
255	select MIPS_NILE4
256	select R5000_CPU_SCACHE
257	select SYS_HAS_CPU_R5000
258	select SYS_SUPPORTS_32BIT_KERNEL
259	select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
260	select SYS_SUPPORTS_LITTLE_ENDIAN
261
262config MACH_LOONGSON
263	bool "Loongson family of machines"
264	select SYS_SUPPORTS_ZBOOT
265	help
266	  This enables the support of Loongson family of machines.
267
268	  Loongson is a family of general-purpose MIPS-compatible CPUs.
269	  developed at Institute of Computing Technology (ICT),
270	  Chinese Academy of Sciences (CAS) in the People's Republic
271	  of China. The chief architect is Professor Weiwu Hu.
272
273config MACH_LOONGSON1
274	bool "Loongson 1 family of machines"
275	select SYS_SUPPORTS_ZBOOT
276	help
277	  This enables support for the Loongson 1 based machines.
278
279	  Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
280	  the ICT (Institute of Computing Technology) and the Chinese Academy
281	  of Sciences.
282
283config MIPS_MALTA
284	bool "MIPS Malta board"
285	select ARCH_MAY_HAVE_PC_FDC
286	select BOOT_ELF32
287	select BOOT_RAW
288	select CEVT_R4K
289	select CSRC_R4K
290	select DMA_NONCOHERENT
291	select GENERIC_ISA_DMA
292	select HAVE_PCSPKR_PLATFORM
293	select IRQ_CPU
294	select IRQ_GIC
295	select HW_HAS_PCI
296	select I8253
297	select I8259
298	select MIPS_BOARDS_GEN
299	select MIPS_BONITO64
300	select MIPS_CPU_SCACHE
301	select PCI_GT64XXX_PCI0
302	select MIPS_MSC
303	select SWAP_IO_SPACE
304	select SYS_HAS_CPU_MIPS32_R1
305	select SYS_HAS_CPU_MIPS32_R2
306	select SYS_HAS_CPU_MIPS64_R1
307	select SYS_HAS_CPU_MIPS64_R2
308	select SYS_HAS_CPU_NEVADA
309	select SYS_HAS_CPU_RM7000
310	select SYS_HAS_EARLY_PRINTK
311	select SYS_SUPPORTS_32BIT_KERNEL
312	select SYS_SUPPORTS_64BIT_KERNEL
313	select SYS_SUPPORTS_BIG_ENDIAN
314	select SYS_SUPPORTS_LITTLE_ENDIAN
315	select SYS_SUPPORTS_MIPS_CMP
316	select SYS_SUPPORTS_MULTITHREADING
317	select SYS_SUPPORTS_SMARTMIPS
318	select SYS_SUPPORTS_ZBOOT
319	help
320	  This enables support for the MIPS Technologies Malta evaluation
321	  board.
322
323config MIPS_SIM
324	bool 'MIPS simulator (MIPSsim)'
325	select CEVT_R4K
326	select CSRC_R4K
327	select DMA_NONCOHERENT
328	select SYS_HAS_EARLY_PRINTK
329	select IRQ_CPU
330	select BOOT_RAW
331	select SYS_HAS_CPU_MIPS32_R1
332	select SYS_HAS_CPU_MIPS32_R2
333	select SYS_HAS_EARLY_PRINTK
334	select SYS_SUPPORTS_32BIT_KERNEL
335	select SYS_SUPPORTS_BIG_ENDIAN
336	select SYS_SUPPORTS_MULTITHREADING
337	select SYS_SUPPORTS_LITTLE_ENDIAN
338	help
339	  This option enables support for MIPS Technologies MIPSsim software
340	  emulator.
341
342config NEC_MARKEINS
343	bool "NEC EMMA2RH Mark-eins board"
344	select SOC_EMMA2RH
345	select HW_HAS_PCI
346	help
347	  This enables support for the NEC Electronics Mark-eins boards.
348
349config MACH_VR41XX
350	bool "NEC VR4100 series based machines"
351	select CEVT_R4K
352	select CSRC_R4K
353	select SYS_HAS_CPU_VR41XX
354	select ARCH_REQUIRE_GPIOLIB
355
356config NXP_STB220
357	bool "NXP STB220 board"
358	select SOC_PNX833X
359	help
360	 Support for NXP Semiconductors STB220 Development Board.
361
362config NXP_STB225
363	bool "NXP 225 board"
364	select SOC_PNX833X
365	select SOC_PNX8335
366	help
367	 Support for NXP Semiconductors STB225 Development Board.
368
369config PNX8550_JBS
370	bool "NXP PNX8550 based JBS board"
371	select PNX8550
372	select SYS_SUPPORTS_LITTLE_ENDIAN
373
374config PNX8550_STB810
375	bool "NXP PNX8550 based STB810 board"
376	select PNX8550
377	select SYS_SUPPORTS_LITTLE_ENDIAN
378
379config PMC_MSP
380	bool "PMC-Sierra MSP chipsets"
381	depends on EXPERIMENTAL
382	select CEVT_R4K
383	select CSRC_R4K
384	select DMA_NONCOHERENT
385	select SWAP_IO_SPACE
386	select NO_EXCEPT_FILL
387	select BOOT_RAW
388	select SYS_HAS_CPU_MIPS32_R1
389	select SYS_HAS_CPU_MIPS32_R2
390	select SYS_SUPPORTS_32BIT_KERNEL
391	select SYS_SUPPORTS_BIG_ENDIAN
392	select IRQ_CPU
393	select SERIAL_8250
394	select SERIAL_8250_CONSOLE
395	help
396	  This adds support for the PMC-Sierra family of Multi-Service
397	  Processor System-On-A-Chips.  These parts include a number
398	  of integrated peripherals, interfaces and DSPs in addition to
399	  a variety of MIPS cores.
400
401config PMC_YOSEMITE
402	bool "PMC-Sierra Yosemite eval board"
403	select CEVT_R4K
404	select CSRC_R4K
405	select DMA_COHERENT
406	select HW_HAS_PCI
407	select IRQ_CPU
408	select IRQ_CPU_RM7K
409	select IRQ_CPU_RM9K
410	select SWAP_IO_SPACE
411	select SYS_HAS_CPU_RM9000
412	select SYS_HAS_EARLY_PRINTK
413	select SYS_SUPPORTS_32BIT_KERNEL
414	select SYS_SUPPORTS_64BIT_KERNEL
415	select SYS_SUPPORTS_BIG_ENDIAN
416	select SYS_SUPPORTS_HIGHMEM
417	select SYS_SUPPORTS_SMP
418	help
419	  Yosemite is an evaluation board for the RM9000x2 processor
420	  manufactured by PMC-Sierra.
421
422config POWERTV
423	bool "Cisco PowerTV"
424	select BOOT_ELF32
425	select CEVT_R4K
426	select CPU_MIPSR2_IRQ_VI
427	select CPU_MIPSR2_IRQ_EI
428	select CSRC_POWERTV
429	select DMA_NONCOHERENT
430	select HW_HAS_PCI
431	select SYS_HAS_EARLY_PRINTK
432	select SYS_HAS_CPU_MIPS32_R2
433	select SYS_SUPPORTS_32BIT_KERNEL
434	select SYS_SUPPORTS_BIG_ENDIAN
435	select SYS_SUPPORTS_HIGHMEM
436	select USB_OHCI_LITTLE_ENDIAN
437	help
438	  This enables support for the Cisco PowerTV Platform.
439
440config SGI_IP22
441	bool "SGI IP22 (Indy/Indigo2)"
442	select ARC
443	select ARC32
444	select BOOT_ELF32
445	select CEVT_R4K
446	select CSRC_R4K
447	select DEFAULT_SGI_PARTITION
448	select DMA_NONCOHERENT
449	select HW_HAS_EISA
450	select I8253
451	select I8259
452	select IP22_CPU_SCACHE
453	select IRQ_CPU
454	select GENERIC_ISA_DMA_SUPPORT_BROKEN
455	select SGI_HAS_I8042
456	select SGI_HAS_INDYDOG
457	select SGI_HAS_HAL2
458	select SGI_HAS_SEEQ
459	select SGI_HAS_WD93
460	select SGI_HAS_ZILOG
461	select SWAP_IO_SPACE
462	select SYS_HAS_CPU_R4X00
463	select SYS_HAS_CPU_R5000
464	#
465	# Disable EARLY_PRINTK for now since it leads to overwritten prom
466	# memory during early boot on some machines.
467	#
468	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
469	# for a more details discussion
470	#
471	# select SYS_HAS_EARLY_PRINTK
472	select SYS_SUPPORTS_32BIT_KERNEL
473	select SYS_SUPPORTS_64BIT_KERNEL
474	select SYS_SUPPORTS_BIG_ENDIAN
475	help
476	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
477	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
478	  that runs on these, say Y here.
479
480config SGI_IP27
481	bool "SGI IP27 (Origin200/2000)"
482	select ARC
483	select ARC64
484	select BOOT_ELF64
485	select DEFAULT_SGI_PARTITION
486	select DMA_COHERENT
487	select SYS_HAS_EARLY_PRINTK
488	select HW_HAS_PCI
489	select NR_CPUS_DEFAULT_64
490	select SYS_HAS_CPU_R10000
491	select SYS_SUPPORTS_64BIT_KERNEL
492	select SYS_SUPPORTS_BIG_ENDIAN
493	select SYS_SUPPORTS_NUMA
494	select SYS_SUPPORTS_SMP
495	help
496	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
497	  workstations.  To compile a Linux kernel that runs on these, say Y
498	  here.
499
500config SGI_IP28
501	bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
502	depends on EXPERIMENTAL
503	select ARC
504	select ARC64
505	select BOOT_ELF64
506	select CEVT_R4K
507	select CSRC_R4K
508	select DEFAULT_SGI_PARTITION
509	select DMA_NONCOHERENT
510	select GENERIC_ISA_DMA_SUPPORT_BROKEN
511	select IRQ_CPU
512	select HW_HAS_EISA
513	select I8253
514	select I8259
515	select SGI_HAS_I8042
516	select SGI_HAS_INDYDOG
517	select SGI_HAS_HAL2
518	select SGI_HAS_SEEQ
519	select SGI_HAS_WD93
520	select SGI_HAS_ZILOG
521	select SWAP_IO_SPACE
522	select SYS_HAS_CPU_R10000
523	#
524	# Disable EARLY_PRINTK for now since it leads to overwritten prom
525	# memory during early boot on some machines.
526	#
527	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
528	# for a more details discussion
529	#
530	# select SYS_HAS_EARLY_PRINTK
531	select SYS_SUPPORTS_64BIT_KERNEL
532	select SYS_SUPPORTS_BIG_ENDIAN
533      help
534        This is the SGI Indigo2 with R10000 processor.  To compile a Linux
535        kernel that runs on these, say Y here.
536
537config SGI_IP32
538	bool "SGI IP32 (O2)"
539	select ARC
540	select ARC32
541	select BOOT_ELF32
542	select CEVT_R4K
543	select CSRC_R4K
544	select DMA_NONCOHERENT
545	select HW_HAS_PCI
546	select IRQ_CPU
547	select R5000_CPU_SCACHE
548	select RM7000_CPU_SCACHE
549	select SYS_HAS_CPU_R5000
550	select SYS_HAS_CPU_R10000 if BROKEN
551	select SYS_HAS_CPU_RM7000
552	select SYS_HAS_CPU_NEVADA
553	select SYS_SUPPORTS_64BIT_KERNEL
554	select SYS_SUPPORTS_BIG_ENDIAN
555	help
556	  If you want this kernel to run on SGI O2 workstation, say Y here.
557
558config SIBYTE_CRHINE
559	bool "Sibyte BCM91120C-CRhine"
560	depends on EXPERIMENTAL
561	select BOOT_ELF32
562	select DMA_COHERENT
563	select SIBYTE_BCM1120
564	select SWAP_IO_SPACE
565	select SYS_HAS_CPU_SB1
566	select SYS_SUPPORTS_BIG_ENDIAN
567	select SYS_SUPPORTS_LITTLE_ENDIAN
568
569config SIBYTE_CARMEL
570	bool "Sibyte BCM91120x-Carmel"
571	depends on EXPERIMENTAL
572	select BOOT_ELF32
573	select DMA_COHERENT
574	select SIBYTE_BCM1120
575	select SWAP_IO_SPACE
576	select SYS_HAS_CPU_SB1
577	select SYS_SUPPORTS_BIG_ENDIAN
578	select SYS_SUPPORTS_LITTLE_ENDIAN
579
580config SIBYTE_CRHONE
581	bool "Sibyte BCM91125C-CRhone"
582	depends on EXPERIMENTAL
583	select BOOT_ELF32
584	select DMA_COHERENT
585	select SIBYTE_BCM1125
586	select SWAP_IO_SPACE
587	select SYS_HAS_CPU_SB1
588	select SYS_SUPPORTS_BIG_ENDIAN
589	select SYS_SUPPORTS_HIGHMEM
590	select SYS_SUPPORTS_LITTLE_ENDIAN
591
592config SIBYTE_RHONE
593	bool "Sibyte BCM91125E-Rhone"
594	depends on EXPERIMENTAL
595	select BOOT_ELF32
596	select DMA_COHERENT
597	select SIBYTE_BCM1125H
598	select SWAP_IO_SPACE
599	select SYS_HAS_CPU_SB1
600	select SYS_SUPPORTS_BIG_ENDIAN
601	select SYS_SUPPORTS_LITTLE_ENDIAN
602
603config SIBYTE_SWARM
604	bool "Sibyte BCM91250A-SWARM"
605	select BOOT_ELF32
606	select DMA_COHERENT
607	select HAVE_PATA_PLATFORM
608	select NR_CPUS_DEFAULT_2
609	select SIBYTE_SB1250
610	select SWAP_IO_SPACE
611	select SYS_HAS_CPU_SB1
612	select SYS_SUPPORTS_BIG_ENDIAN
613	select SYS_SUPPORTS_HIGHMEM
614	select SYS_SUPPORTS_LITTLE_ENDIAN
615	select ZONE_DMA32 if 64BIT
616
617config SIBYTE_LITTLESUR
618	bool "Sibyte BCM91250C2-LittleSur"
619	depends on EXPERIMENTAL
620	select BOOT_ELF32
621	select DMA_COHERENT
622	select HAVE_PATA_PLATFORM
623	select NR_CPUS_DEFAULT_2
624	select SIBYTE_SB1250
625	select SWAP_IO_SPACE
626	select SYS_HAS_CPU_SB1
627	select SYS_SUPPORTS_BIG_ENDIAN
628	select SYS_SUPPORTS_HIGHMEM
629	select SYS_SUPPORTS_LITTLE_ENDIAN
630
631config SIBYTE_SENTOSA
632	bool "Sibyte BCM91250E-Sentosa"
633	depends on EXPERIMENTAL
634	select BOOT_ELF32
635	select DMA_COHERENT
636	select NR_CPUS_DEFAULT_2
637	select SIBYTE_SB1250
638	select SWAP_IO_SPACE
639	select SYS_HAS_CPU_SB1
640	select SYS_SUPPORTS_BIG_ENDIAN
641	select SYS_SUPPORTS_LITTLE_ENDIAN
642
643config SIBYTE_BIGSUR
644	bool "Sibyte BCM91480B-BigSur"
645	select BOOT_ELF32
646	select DMA_COHERENT
647	select NR_CPUS_DEFAULT_4
648	select SIBYTE_BCM1x80
649	select SWAP_IO_SPACE
650	select SYS_HAS_CPU_SB1
651	select SYS_SUPPORTS_BIG_ENDIAN
652	select SYS_SUPPORTS_HIGHMEM
653	select SYS_SUPPORTS_LITTLE_ENDIAN
654	select ZONE_DMA32 if 64BIT
655
656config SNI_RM
657	bool "SNI RM200/300/400"
658	select ARC if CPU_LITTLE_ENDIAN
659	select ARC32 if CPU_LITTLE_ENDIAN
660	select SNIPROM if CPU_BIG_ENDIAN
661	select ARCH_MAY_HAVE_PC_FDC
662	select BOOT_ELF32
663	select CEVT_R4K
664	select CSRC_R4K
665	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
666	select DMA_NONCOHERENT
667	select GENERIC_ISA_DMA
668	select HAVE_PCSPKR_PLATFORM
669	select HW_HAS_EISA
670	select HW_HAS_PCI
671	select IRQ_CPU
672	select I8253
673	select I8259
674	select ISA
675	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
676	select SYS_HAS_CPU_R4X00
677	select SYS_HAS_CPU_R5000
678	select SYS_HAS_CPU_R10000
679	select R5000_CPU_SCACHE
680	select SYS_HAS_EARLY_PRINTK
681	select SYS_SUPPORTS_32BIT_KERNEL
682	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
683	select SYS_SUPPORTS_BIG_ENDIAN
684	select SYS_SUPPORTS_HIGHMEM
685	select SYS_SUPPORTS_LITTLE_ENDIAN
686	help
687	  The SNI RM200/300/400 are MIPS-based machines manufactured by
688	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
689	  Technology and now in turn merged with Fujitsu.  Say Y here to
690	  support this machine type.
691
692config MACH_TX39XX
693	bool "Toshiba TX39 series based machines"
694
695config MACH_TX49XX
696	bool "Toshiba TX49 series based machines"
697
698config MIKROTIK_RB532
699	bool "Mikrotik RB532 boards"
700	select CEVT_R4K
701	select CSRC_R4K
702	select DMA_NONCOHERENT
703	select HW_HAS_PCI
704	select IRQ_CPU
705	select SYS_HAS_CPU_MIPS32_R1
706	select SYS_SUPPORTS_32BIT_KERNEL
707	select SYS_SUPPORTS_LITTLE_ENDIAN
708	select SWAP_IO_SPACE
709	select BOOT_RAW
710	select ARCH_REQUIRE_GPIOLIB
711	help
712	  Support the Mikrotik(tm) RouterBoard 532 series,
713	  based on the IDT RC32434 SoC.
714
715config WR_PPMC
716	bool "Wind River PPMC board"
717	select CEVT_R4K
718	select CSRC_R4K
719	select IRQ_CPU
720	select BOOT_ELF32
721	select DMA_NONCOHERENT
722	select HW_HAS_PCI
723	select PCI_GT64XXX_PCI0
724	select SWAP_IO_SPACE
725	select SYS_HAS_CPU_MIPS32_R1
726	select SYS_HAS_CPU_MIPS32_R2
727	select SYS_HAS_CPU_MIPS64_R1
728	select SYS_HAS_CPU_NEVADA
729	select SYS_HAS_CPU_RM7000
730	select SYS_SUPPORTS_32BIT_KERNEL
731	select SYS_SUPPORTS_64BIT_KERNEL
732	select SYS_SUPPORTS_BIG_ENDIAN
733	select SYS_SUPPORTS_LITTLE_ENDIAN
734	help
735	  This enables support for the Wind River MIPS32 4KC PPMC evaluation
736	  board, which is based on GT64120 bridge chip.
737
738config CAVIUM_OCTEON_SIMULATOR
739	bool "Cavium Networks Octeon Simulator"
740	select CEVT_R4K
741	select 64BIT_PHYS_ADDR
742	select DMA_COHERENT
743	select SYS_SUPPORTS_64BIT_KERNEL
744	select SYS_SUPPORTS_BIG_ENDIAN
745	select SYS_SUPPORTS_HOTPLUG_CPU
746	select SYS_HAS_CPU_CAVIUM_OCTEON
747	select HOLES_IN_ZONE
748	help
749	  The Octeon simulator is software performance model of the Cavium
750	  Octeon Processor. It supports simulating Octeon processors on x86
751	  hardware.
752
753config CAVIUM_OCTEON_REFERENCE_BOARD
754	bool "Cavium Networks Octeon reference board"
755	select CEVT_R4K
756	select 64BIT_PHYS_ADDR
757	select DMA_COHERENT
758	select SYS_SUPPORTS_64BIT_KERNEL
759	select SYS_SUPPORTS_BIG_ENDIAN
760	select SYS_SUPPORTS_HOTPLUG_CPU
761	select SYS_HAS_EARLY_PRINTK
762	select SYS_HAS_CPU_CAVIUM_OCTEON
763	select SWAP_IO_SPACE
764	select HW_HAS_PCI
765	select ARCH_SUPPORTS_MSI
766	select ZONE_DMA32
767	select USB_ARCH_HAS_OHCI
768	select USB_ARCH_HAS_EHCI
769	select HOLES_IN_ZONE
770	help
771	  This option supports all of the Octeon reference boards from Cavium
772	  Networks. It builds a kernel that dynamically determines the Octeon
773	  CPU type and supports all known board reference implementations.
774	  Some of the supported boards are:
775		EBT3000
776		EBH3000
777		EBH3100
778		Thunder
779		Kodama
780		Hikari
781	  Say Y here for most Octeon reference boards.
782
783config NLM_XLR_BOARD
784	bool "Netlogic XLR/XLS based systems"
785	depends on EXPERIMENTAL
786	select BOOT_ELF32
787	select NLM_COMMON
788	select SYS_HAS_CPU_XLR
789	select SYS_SUPPORTS_SMP
790	select HW_HAS_PCI
791	select SWAP_IO_SPACE
792	select SYS_SUPPORTS_32BIT_KERNEL
793	select SYS_SUPPORTS_64BIT_KERNEL
794	select 64BIT_PHYS_ADDR
795	select SYS_SUPPORTS_BIG_ENDIAN
796	select SYS_SUPPORTS_HIGHMEM
797	select DMA_COHERENT
798	select NR_CPUS_DEFAULT_32
799	select CEVT_R4K
800	select CSRC_R4K
801	select IRQ_CPU
802	select ARCH_SUPPORTS_MSI
803	select ZONE_DMA if 64BIT
804	select SYNC_R4K
805	select SYS_HAS_EARLY_PRINTK
806	select USB_ARCH_HAS_OHCI if USB_SUPPORT
807	select USB_ARCH_HAS_EHCI if USB_SUPPORT
808	help
809	  Support for systems based on Netlogic XLR and XLS processors.
810	  Say Y here if you have a XLR or XLS based board.
811
812config NLM_XLP_BOARD
813	bool "Netlogic XLP based systems"
814	depends on EXPERIMENTAL
815	select BOOT_ELF32
816	select NLM_COMMON
817	select SYS_HAS_CPU_XLP
818	select SYS_SUPPORTS_SMP
819	select HW_HAS_PCI
820	select SYS_SUPPORTS_32BIT_KERNEL
821	select SYS_SUPPORTS_64BIT_KERNEL
822	select 64BIT_PHYS_ADDR
823	select SYS_SUPPORTS_BIG_ENDIAN
824	select SYS_SUPPORTS_LITTLE_ENDIAN
825	select SYS_SUPPORTS_HIGHMEM
826	select DMA_COHERENT
827	select NR_CPUS_DEFAULT_32
828	select CEVT_R4K
829	select CSRC_R4K
830	select IRQ_CPU
831	select ZONE_DMA if 64BIT
832	select SYNC_R4K
833	select SYS_HAS_EARLY_PRINTK
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
1883choice
1884	prompt "MIPS MT options"
1885
1886config MIPS_MT_DISABLED
1887	bool "Disable multithreading support."
1888	help
1889	  Use this option if your workload can't take advantage of
1890	  MIPS hardware multithreading support.  On systems that don't have
1891	  the option of an MT-enabled processor this option will be the only
1892	  option in this menu.
1893
1894config MIPS_MT_SMP
1895	bool "Use 1 TC on each available VPE for SMP"
1896	depends on SYS_SUPPORTS_MULTITHREADING
1897	select CPU_MIPSR2_IRQ_VI
1898	select CPU_MIPSR2_IRQ_EI
1899	select MIPS_MT
1900	select NR_CPUS_DEFAULT_2
1901	select SMP
1902	select SYS_SUPPORTS_SCHED_SMT if SMP
1903	select SYS_SUPPORTS_SMP
1904	select SMP_UP
1905	help
1906	  This is a kernel model which is known a VSMP but lately has been
1907	  marketesed into SMVP.
1908	  Virtual SMP uses the processor's VPEs  to implement virtual
1909	  processors. In currently available configuration of the 34K processor
1910	  this allows for a dual processor. Both processors will share the same
1911	  primary caches; each will obtain the half of the TLB for it's own
1912	  exclusive use. For a layman this model can be described as similar to
1913	  what Intel calls Hyperthreading.
1914
1915	  For further information see http://www.linux-mips.org/wiki/34K#VSMP
1916
1917config MIPS_MT_SMTC
1918	bool "SMTC: Use all TCs on all VPEs for SMP"
1919	depends on CPU_MIPS32_R2
1920	#depends on CPU_MIPS64_R2		# once there is hardware ...
1921	depends on SYS_SUPPORTS_MULTITHREADING
1922	select CPU_MIPSR2_IRQ_VI
1923	select CPU_MIPSR2_IRQ_EI
1924	select MIPS_MT
1925	select NR_CPUS_DEFAULT_8
1926	select SMP
1927	select SYS_SUPPORTS_SMP
1928	select SMP_UP
1929	help
1930	  This is a kernel model which is known a SMTC or lately has been
1931	  marketesed into SMVP.
1932	  is presenting the available TC's of the core as processors to Linux.
1933	  On currently available 34K processors this means a Linux system will
1934	  see up to 5 processors. The implementation of the SMTC kernel differs
1935	  significantly from VSMP and cannot efficiently coexist in the same
1936	  kernel binary so the choice between VSMP and SMTC is a compile time
1937	  decision.
1938
1939	  For further information see http://www.linux-mips.org/wiki/34K#SMTC
1940
1941endchoice
1942
1943config MIPS_MT
1944	bool
1945
1946config SCHED_SMT
1947	bool "SMT (multithreading) scheduler support"
1948	depends on SYS_SUPPORTS_SCHED_SMT
1949	default n
1950	help
1951	  SMT scheduler support improves the CPU scheduler's decision making
1952	  when dealing with MIPS MT enabled cores at a cost of slightly
1953	  increased overhead in some places. If unsure say N here.
1954
1955config SYS_SUPPORTS_SCHED_SMT
1956	bool
1957
1958
1959config SYS_SUPPORTS_MULTITHREADING
1960	bool
1961
1962config MIPS_MT_FPAFF
1963	bool "Dynamic FPU affinity for FP-intensive threads"
1964	default y
1965	depends on MIPS_MT_SMP || MIPS_MT_SMTC
1966
1967config MIPS_VPE_LOADER
1968	bool "VPE loader support."
1969	depends on SYS_SUPPORTS_MULTITHREADING
1970	select CPU_MIPSR2_IRQ_VI
1971	select CPU_MIPSR2_IRQ_EI
1972	select MIPS_MT
1973	help
1974	  Includes a loader for loading an elf relocatable object
1975	  onto another VPE and running it.
1976
1977config MIPS_MT_SMTC_IM_BACKSTOP
1978	bool "Use per-TC register bits as backstop for inhibited IM bits"
1979	depends on MIPS_MT_SMTC
1980	default n
1981	help
1982	  To support multiple TC microthreads acting as "CPUs" within
1983	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1984	  during interrupt handling. To support legacy drivers and interrupt
1985	  controller management code, SMTC has a "backstop" to track and
1986	  if necessary restore the interrupt mask. This has some performance
1987	  impact on interrupt service overhead.
1988
1989config MIPS_MT_SMTC_IRQAFF
1990	bool "Support IRQ affinity API"
1991	depends on MIPS_MT_SMTC
1992	default n
1993	help
1994	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1995	  for SMTC Linux kernel. Requires platform support, of which
1996	  an example can be found in the MIPS kernel i8259 and Malta
1997	  platform code.  Adds some overhead to interrupt dispatch, and
1998	  should be used only if you know what you are doing.
1999
2000config MIPS_VPE_LOADER_TOM
2001	bool "Load VPE program into memory hidden from linux"
2002	depends on MIPS_VPE_LOADER
2003	default y
2004	help
2005	  The loader can use memory that is present but has been hidden from
2006	  Linux using the kernel command line option "mem=xxMB". It's up to
2007	  you to ensure the amount you put in the option and the space your
2008	  program requires is less or equal to the amount physically present.
2009
2010# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
2011config MIPS_VPE_APSP_API
2012	bool "Enable support for AP/SP API (RTLX)"
2013	depends on MIPS_VPE_LOADER
2014	help
2015
2016config MIPS_APSP_KSPD
2017	bool "Enable KSPD"
2018	depends on MIPS_VPE_APSP_API
2019	default y
2020	help
2021	  KSPD is a kernel daemon that accepts syscall requests from the SP
2022	  side, actions them and returns the results. It also handles the
2023	  "exit" syscall notifying other kernel modules the SP program is
2024	  exiting.  You probably want to say yes here.
2025
2026config MIPS_CMP
2027	bool "MIPS CMP framework support"
2028	depends on SYS_SUPPORTS_MIPS_CMP
2029	select SYNC_R4K
2030	select SYS_SUPPORTS_SMP
2031	select SYS_SUPPORTS_SCHED_SMT if SMP
2032	select WEAK_ORDERING
2033	default n
2034	help
2035	  This is a placeholder option for the GCMP work. It will need to
2036	  be handled differently...
2037
2038config SB1_PASS_1_WORKAROUNDS
2039	bool
2040	depends on CPU_SB1_PASS_1
2041	default y
2042
2043config SB1_PASS_2_WORKAROUNDS
2044	bool
2045	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2046	default y
2047
2048config SB1_PASS_2_1_WORKAROUNDS
2049	bool
2050	depends on CPU_SB1 && CPU_SB1_PASS_2
2051	default y
2052
2053config 64BIT_PHYS_ADDR
2054	bool
2055
2056config ARCH_PHYS_ADDR_T_64BIT
2057       def_bool 64BIT_PHYS_ADDR
2058
2059config CPU_HAS_SMARTMIPS
2060	depends on SYS_SUPPORTS_SMARTMIPS
2061	bool "Support for the SmartMIPS ASE"
2062	help
2063	  SmartMIPS is a extension of the MIPS32 architecture aimed at
2064	  increased security at both hardware and software level for
2065	  smartcards.  Enabling this option will allow proper use of the
2066	  SmartMIPS instructions by Linux applications.  However a kernel with
2067	  this option will not work on a MIPS core without SmartMIPS core.  If
2068	  you don't know you probably don't have SmartMIPS and should say N
2069	  here.
2070
2071config CPU_HAS_WB
2072	bool
2073
2074config XKS01
2075	bool
2076
2077#
2078# Vectored interrupt mode is an R2 feature
2079#
2080config CPU_MIPSR2_IRQ_VI
2081	bool
2082
2083#
2084# Extended interrupt mode is an R2 feature
2085#
2086config CPU_MIPSR2_IRQ_EI
2087	bool
2088
2089config CPU_HAS_SYNC
2090	bool
2091	depends on !CPU_R3000
2092	default y
2093
2094#
2095# CPU non-features
2096#
2097config CPU_DADDI_WORKAROUNDS
2098	bool
2099
2100config CPU_R4000_WORKAROUNDS
2101	bool
2102	select CPU_R4400_WORKAROUNDS
2103
2104config CPU_R4400_WORKAROUNDS
2105	bool
2106
2107#
2108# - Highmem only makes sense for the 32-bit kernel.
2109# - The current highmem code will only work properly on physically indexed
2110#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2111#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2112#   moment we protect the user and offer the highmem option only on machines
2113#   where it's known to be safe.  This will not offer highmem on a few systems
2114#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2115#   indexed CPUs but we're playing safe.
2116# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2117#   know they might have memory configurations that could make use of highmem
2118#   support.
2119#
2120config HIGHMEM
2121	bool "High Memory Support"
2122	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2123
2124config CPU_SUPPORTS_HIGHMEM
2125	bool
2126
2127config SYS_SUPPORTS_HIGHMEM
2128	bool
2129
2130config SYS_SUPPORTS_SMARTMIPS
2131	bool
2132
2133config ARCH_FLATMEM_ENABLE
2134	def_bool y
2135	depends on !NUMA && !CPU_LOONGSON2
2136
2137config ARCH_DISCONTIGMEM_ENABLE
2138	bool
2139	default y if SGI_IP27
2140	help
2141	  Say Y to support efficient handling of discontiguous physical memory,
2142	  for architectures which are either NUMA (Non-Uniform Memory Access)
2143	  or have huge holes in the physical address space for other reasons.
2144	  See <file:Documentation/vm/numa> for more.
2145
2146config ARCH_SPARSEMEM_ENABLE
2147	bool
2148	select SPARSEMEM_STATIC
2149
2150config NUMA
2151	bool "NUMA Support"
2152	depends on SYS_SUPPORTS_NUMA
2153	help
2154	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2155	  Access).  This option improves performance on systems with more
2156	  than two nodes; on two node systems it is generally better to
2157	  leave it disabled; on single node systems disable this option
2158	  disabled.
2159
2160config SYS_SUPPORTS_NUMA
2161	bool
2162
2163config NODES_SHIFT
2164	int
2165	default "6"
2166	depends on NEED_MULTIPLE_NODES
2167
2168config HW_PERF_EVENTS
2169	bool "Enable hardware performance counter support for perf events"
2170	depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON)
2171	default y
2172	help
2173	  Enable hardware performance counter support for perf events. If
2174	  disabled, perf events will use software events only.
2175
2176source "mm/Kconfig"
2177
2178config SMP
2179	bool "Multi-Processing support"
2180	depends on SYS_SUPPORTS_SMP
2181	select IRQ_PER_CPU
2182	select USE_GENERIC_SMP_HELPERS
2183	help
2184	  This enables support for systems with more than one CPU. If you have
2185	  a system with only one CPU, like most personal computers, say N. If
2186	  you have a system with more than one CPU, say Y.
2187
2188	  If you say N here, the kernel will run on single and multiprocessor
2189	  machines, but will use only one CPU of a multiprocessor machine. If
2190	  you say Y here, the kernel will run on many, but not all,
2191	  singleprocessor machines. On a singleprocessor machine, the kernel
2192	  will run faster if you say N here.
2193
2194	  People using multiprocessor machines who say Y here should also say
2195	  Y to "Enhanced Real Time Clock Support", below.
2196
2197	  See also the SMP-HOWTO available at
2198	  <http://www.tldp.org/docs.html#howto>.
2199
2200	  If you don't know what to do here, say N.
2201
2202config SMP_UP
2203	bool
2204
2205config SYS_SUPPORTS_MIPS_CMP
2206	bool
2207
2208config SYS_SUPPORTS_SMP
2209	bool
2210
2211config NR_CPUS_DEFAULT_1
2212	bool
2213
2214config NR_CPUS_DEFAULT_2
2215	bool
2216
2217config NR_CPUS_DEFAULT_4
2218	bool
2219
2220config NR_CPUS_DEFAULT_8
2221	bool
2222
2223config NR_CPUS_DEFAULT_16
2224	bool
2225
2226config NR_CPUS_DEFAULT_32
2227	bool
2228
2229config NR_CPUS_DEFAULT_64
2230	bool
2231
2232config NR_CPUS
2233	int "Maximum number of CPUs (2-64)"
2234	range 1 64 if NR_CPUS_DEFAULT_1
2235	depends on SMP
2236	default "1" if NR_CPUS_DEFAULT_1
2237	default "2" if NR_CPUS_DEFAULT_2
2238	default "4" if NR_CPUS_DEFAULT_4
2239	default "8" if NR_CPUS_DEFAULT_8
2240	default "16" if NR_CPUS_DEFAULT_16
2241	default "32" if NR_CPUS_DEFAULT_32
2242	default "64" if NR_CPUS_DEFAULT_64
2243	help
2244	  This allows you to specify the maximum number of CPUs which this
2245	  kernel will support.  The maximum supported value is 32 for 32-bit
2246	  kernel and 64 for 64-bit kernels; the minimum value which makes
2247	  sense is 1 for Qemu (useful only for kernel debugging purposes)
2248	  and 2 for all others.
2249
2250	  This is purely to save memory - each supported CPU adds
2251	  approximately eight kilobytes to the kernel image.  For best
2252	  performance should round up your number of processors to the next
2253	  power of two.
2254
2255#
2256# Timer Interrupt Frequency Configuration
2257#
2258
2259choice
2260	prompt "Timer frequency"
2261	default HZ_250
2262	help
2263	 Allows the configuration of the timer frequency.
2264
2265	config HZ_48
2266		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2267
2268	config HZ_100
2269		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2270
2271	config HZ_128
2272		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2273
2274	config HZ_250
2275		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2276
2277	config HZ_256
2278		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2279
2280	config HZ_1000
2281		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2282
2283	config HZ_1024
2284		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2285
2286endchoice
2287
2288config SYS_SUPPORTS_48HZ
2289	bool
2290
2291config SYS_SUPPORTS_100HZ
2292	bool
2293
2294config SYS_SUPPORTS_128HZ
2295	bool
2296
2297config SYS_SUPPORTS_250HZ
2298	bool
2299
2300config SYS_SUPPORTS_256HZ
2301	bool
2302
2303config SYS_SUPPORTS_1000HZ
2304	bool
2305
2306config SYS_SUPPORTS_1024HZ
2307	bool
2308
2309config SYS_SUPPORTS_ARBIT_HZ
2310	bool
2311	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2312		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2313		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2314		     !SYS_SUPPORTS_1024HZ
2315
2316config HZ
2317	int
2318	default 48 if HZ_48
2319	default 100 if HZ_100
2320	default 128 if HZ_128
2321	default 250 if HZ_250
2322	default 256 if HZ_256
2323	default 1000 if HZ_1000
2324	default 1024 if HZ_1024
2325
2326source "kernel/Kconfig.preempt"
2327
2328config KEXEC
2329	bool "Kexec system call (EXPERIMENTAL)"
2330	depends on EXPERIMENTAL
2331	help
2332	  kexec is a system call that implements the ability to shutdown your
2333	  current kernel, and to start another kernel.  It is like a reboot
2334	  but it is independent of the system firmware.   And like a reboot
2335	  you can start any kernel with it, not just Linux.
2336
2337	  The name comes from the similarity to the exec system call.
2338
2339	  It is an ongoing process to be certain the hardware in a machine
2340	  is properly shutdown, so do not be surprised if this code does not
2341	  initially work for you.  It may help to enable device hotplugging
2342	  support.  As of this writing the exact hardware interface is
2343	  strongly in flux, so no good recommendation can be made.
2344
2345config SECCOMP
2346	bool "Enable seccomp to safely compute untrusted bytecode"
2347	depends on PROC_FS
2348	default y
2349	help
2350	  This kernel feature is useful for number crunching applications
2351	  that may need to compute untrusted bytecode during their
2352	  execution. By using pipes or other transports made available to
2353	  the process as file descriptors supporting the read/write
2354	  syscalls, it's possible to isolate those applications in
2355	  their own address space using seccomp. Once seccomp is
2356	  enabled via /proc/<pid>/seccomp, it cannot be disabled
2357	  and the task is only allowed to execute a few safe syscalls
2358	  defined by each seccomp mode.
2359
2360	  If unsure, say Y. Only embedded should say N here.
2361
2362config USE_OF
2363	bool "Flattened Device Tree support"
2364	select OF
2365	select OF_EARLY_FLATTREE
2366	select IRQ_DOMAIN
2367	help
2368	  Include support for flattened device tree machine descriptions.
2369
2370endmenu
2371
2372config LOCKDEP_SUPPORT
2373	bool
2374	default y
2375
2376config STACKTRACE_SUPPORT
2377	bool
2378	default y
2379
2380source "init/Kconfig"
2381
2382source "kernel/Kconfig.freezer"
2383
2384menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2385
2386config HW_HAS_EISA
2387	bool
2388config HW_HAS_PCI
2389	bool
2390
2391config PCI
2392	bool "Support for PCI controller"
2393	depends on HW_HAS_PCI
2394	select PCI_DOMAINS
2395	select GENERIC_PCI_IOMAP
2396	select NO_GENERIC_PCI_IOPORT_MAP
2397	help
2398	  Find out whether you have a PCI motherboard. PCI is the name of a
2399	  bus system, i.e. the way the CPU talks to the other stuff inside
2400	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2401	  say Y, otherwise N.
2402
2403config PCI_DOMAINS
2404	bool
2405
2406source "drivers/pci/Kconfig"
2407
2408source "drivers/pci/pcie/Kconfig"
2409
2410#
2411# ISA support is now enabled via select.  Too many systems still have the one
2412# or other ISA chip on the board that users don't know about so don't expect
2413# users to choose the right thing ...
2414#
2415config ISA
2416	bool
2417
2418config EISA
2419	bool "EISA support"
2420	depends on HW_HAS_EISA
2421	select ISA
2422	select GENERIC_ISA_DMA
2423	---help---
2424	  The Extended Industry Standard Architecture (EISA) bus was
2425	  developed as an open alternative to the IBM MicroChannel bus.
2426
2427	  The EISA bus provided some of the features of the IBM MicroChannel
2428	  bus while maintaining backward compatibility with cards made for
2429	  the older ISA bus.  The EISA bus saw limited use between 1988 and
2430	  1995 when it was made obsolete by the PCI bus.
2431
2432	  Say Y here if you are building a kernel for an EISA-based machine.
2433
2434	  Otherwise, say N.
2435
2436source "drivers/eisa/Kconfig"
2437
2438config TC
2439	bool "TURBOchannel support"
2440	depends on MACH_DECSTATION
2441	help
2442	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2443	  processors.  TURBOchannel programming specifications are available
2444	  at:
2445	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2446	  and:
2447	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2448	  Linux driver support status is documented at:
2449	  <http://www.linux-mips.org/wiki/DECstation>
2450
2451config MMU
2452	bool
2453	default y
2454
2455config I8253
2456	bool
2457	select CLKSRC_I8253
2458	select CLKEVT_I8253
2459	select MIPS_EXTERNAL_TIMER
2460
2461config ZONE_DMA32
2462	bool
2463
2464source "drivers/pcmcia/Kconfig"
2465
2466source "drivers/pci/hotplug/Kconfig"
2467
2468config RAPIDIO
2469	bool "RapidIO support"
2470	depends on PCI
2471	default n
2472	help
2473	  If you say Y here, the kernel will include drivers and
2474	  infrastructure code to support RapidIO interconnect devices.
2475
2476source "drivers/rapidio/Kconfig"
2477
2478endmenu
2479
2480menu "Executable file formats"
2481
2482source "fs/Kconfig.binfmt"
2483
2484config TRAD_SIGNALS
2485	bool
2486
2487config MIPS32_COMPAT
2488	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2489	depends on 64BIT
2490	help
2491	  Select this option if you want Linux/MIPS 32-bit binary
2492	  compatibility. Since all software available for Linux/MIPS is
2493	  currently 32-bit you should say Y here.
2494
2495config COMPAT
2496	bool
2497	depends on MIPS32_COMPAT
2498	select ARCH_WANT_OLD_COMPAT_IPC
2499	default y
2500
2501config SYSVIPC_COMPAT
2502	bool
2503	depends on COMPAT && SYSVIPC
2504	default y
2505
2506config MIPS32_O32
2507	bool "Kernel support for o32 binaries"
2508	depends on MIPS32_COMPAT
2509	help
2510	  Select this option if you want to run o32 binaries.  These are pure
2511	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2512	  existing binaries are in this format.
2513
2514	  If unsure, say Y.
2515
2516config MIPS32_N32
2517	bool "Kernel support for n32 binaries"
2518	depends on MIPS32_COMPAT
2519	help
2520	  Select this option if you want to run n32 binaries.  These are
2521	  64-bit binaries using 32-bit quantities for addressing and certain
2522	  data that would normally be 64-bit.  They are used in special
2523	  cases.
2524
2525	  If unsure, say N.
2526
2527config BINFMT_ELF32
2528	bool
2529	default y if MIPS32_O32 || MIPS32_N32
2530
2531endmenu
2532
2533menu "Power management options"
2534
2535config ARCH_HIBERNATION_POSSIBLE
2536	def_bool y
2537	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2538
2539config ARCH_SUSPEND_POSSIBLE
2540	def_bool y
2541	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2542
2543source "kernel/power/Kconfig"
2544
2545endmenu
2546
2547source "arch/mips/kernel/cpufreq/Kconfig"
2548
2549source "net/Kconfig"
2550
2551source "drivers/Kconfig"
2552
2553source "fs/Kconfig"
2554
2555source "arch/mips/Kconfig.debug"
2556
2557source "security/Kconfig"
2558
2559source "crypto/Kconfig"
2560
2561source "lib/Kconfig"
2562