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