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