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