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