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