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