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