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