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