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