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