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