xref: /linux/arch/mips/Kconfig (revision 40d3057ac036f2501c1930728a6179be4fca577b)
1config MIPS
2	bool
3	default y
4	select HAVE_IDE
5	select HAVE_OPROFILE
6	select HAVE_ARCH_KGDB
7	# Horrible source of confusion.  Die, die, die ...
8	select EMBEDDED
9	select RTC_LIB
10
11mainmenu "Linux/MIPS Kernel Configuration"
12
13menu "Machine selection"
14
15config ZONE_DMA
16	bool
17
18choice
19	prompt "System type"
20	default SGI_IP22
21
22config MACH_ALCHEMY
23	bool "Alchemy processor based machines"
24
25config BASLER_EXCITE
26	bool "Basler eXcite smart camera"
27	select CEVT_R4K
28	select CSRC_R4K
29	select DMA_COHERENT
30	select HW_HAS_PCI
31	select IRQ_CPU
32	select IRQ_CPU_RM7K
33	select IRQ_CPU_RM9K
34	select MIPS_RM9122
35	select SYS_HAS_CPU_RM9000
36	select SYS_SUPPORTS_32BIT_KERNEL
37	select SYS_SUPPORTS_BIG_ENDIAN
38	help
39	  The eXcite is a smart camera platform manufactured by
40	  Basler Vision Technologies AG.
41
42config BCM47XX
43	bool "BCM47XX based boards"
44	select CEVT_R4K
45	select CSRC_R4K
46	select DMA_NONCOHERENT
47	select HW_HAS_PCI
48	select IRQ_CPU
49	select SYS_HAS_CPU_MIPS32_R1
50	select SYS_SUPPORTS_32BIT_KERNEL
51	select SYS_SUPPORTS_LITTLE_ENDIAN
52	select SSB
53	select SSB_DRIVER_MIPS
54	select SSB_DRIVER_EXTIF
55	select SSB_PCICORE_HOSTMODE if PCI
56	select GENERIC_GPIO
57	select SYS_HAS_EARLY_PRINTK
58	select CFE
59	help
60	 Support for BCM47XX based boards
61
62config MIPS_COBALT
63	bool "Cobalt Server"
64	select CEVT_R4K
65	select CSRC_R4K
66	select CEVT_GT641XX
67	select DMA_NONCOHERENT
68	select HW_HAS_PCI
69	select I8253
70	select I8259
71	select IRQ_CPU
72	select IRQ_GT641XX
73	select PCI_GT64XXX_PCI0
74	select SYS_HAS_CPU_NEVADA
75	select SYS_HAS_EARLY_PRINTK
76	select SYS_SUPPORTS_32BIT_KERNEL
77	select SYS_SUPPORTS_64BIT_KERNEL
78	select SYS_SUPPORTS_LITTLE_ENDIAN
79	select GENERIC_HARDIRQS_NO__DO_IRQ
80
81config MACH_DECSTATION
82	bool "DECstations"
83	select BOOT_ELF32
84	select CEVT_DS1287
85	select CEVT_R4K
86	select CSRC_IOASIC
87	select CSRC_R4K
88	select CPU_DADDI_WORKAROUNDS if 64BIT
89	select CPU_R4000_WORKAROUNDS if 64BIT
90	select CPU_R4400_WORKAROUNDS if 64BIT
91	select DMA_NONCOHERENT
92	select NO_IOPORT
93	select IRQ_CPU
94	select SYS_HAS_CPU_R3000
95	select SYS_HAS_CPU_R4X00
96	select SYS_SUPPORTS_32BIT_KERNEL
97	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
98	select SYS_SUPPORTS_LITTLE_ENDIAN
99	select SYS_SUPPORTS_128HZ
100	select SYS_SUPPORTS_256HZ
101	select SYS_SUPPORTS_1024HZ
102	help
103	  This enables support for DEC's MIPS based workstations.  For details
104	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
105	  DECstation porting pages on <http://decstation.unix-ag.org/>.
106
107	  If you have one of the following DECstation Models you definitely
108	  want to choose R4xx0 for the CPU Type:
109
110		DECstation 5000/50
111		DECstation 5000/150
112		DECstation 5000/260
113		DECsystem 5900/260
114
115	  otherwise choose R3000.
116
117config MACH_JAZZ
118	bool "Jazz family of machines"
119	select ARC
120	select ARC32
121	select ARCH_MAY_HAVE_PC_FDC
122	select CEVT_R4K
123	select CSRC_R4K
124	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
125	select GENERIC_ISA_DMA
126	select IRQ_CPU
127	select I8253
128	select I8259
129	select ISA
130	select SYS_HAS_CPU_R4X00
131	select SYS_SUPPORTS_32BIT_KERNEL
132	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
133	select SYS_SUPPORTS_100HZ
134	select GENERIC_HARDIRQS_NO__DO_IRQ
135	help
136	 This a family of machines based on the MIPS R4030 chipset which was
137	 used by several vendors to build RISC/os and Windows NT workstations.
138	 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and
139	 Olivetti M700-10 workstations.
140
141config LASAT
142	bool "LASAT Networks platforms"
143	select CEVT_R4K
144	select CSRC_R4K
145	select DMA_NONCOHERENT
146	select SYS_HAS_EARLY_PRINTK
147	select HW_HAS_PCI
148	select IRQ_CPU
149	select PCI_GT64XXX_PCI0
150	select MIPS_NILE4
151	select R5000_CPU_SCACHE
152	select SYS_HAS_CPU_R5000
153	select SYS_SUPPORTS_32BIT_KERNEL
154	select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
155	select SYS_SUPPORTS_LITTLE_ENDIAN
156	select GENERIC_HARDIRQS_NO__DO_IRQ
157
158config LEMOTE_FULONG
159	bool "Lemote Fulong mini-PC"
160	select ARCH_SPARSEMEM_ENABLE
161	select CEVT_R4K
162	select CSRC_R4K
163	select SYS_HAS_CPU_LOONGSON2
164	select DMA_NONCOHERENT
165	select BOOT_ELF32
166	select BOARD_SCACHE
167	select HAVE_STD_PC_SERIAL_PORT
168	select HW_HAS_PCI
169	select I8259
170	select ISA
171	select IRQ_CPU
172	select SYS_SUPPORTS_32BIT_KERNEL
173	select SYS_SUPPORTS_64BIT_KERNEL
174	select SYS_SUPPORTS_LITTLE_ENDIAN
175	select SYS_SUPPORTS_HIGHMEM
176	select SYS_HAS_EARLY_PRINTK
177	select GENERIC_HARDIRQS_NO__DO_IRQ
178	select GENERIC_ISA_DMA_SUPPORT_BROKEN
179	select CPU_HAS_WB
180	help
181	  Lemote Fulong mini-PC board based on the Chinese Loongson-2E CPU and
182	  an FPGA northbridge
183
184config MIPS_MALTA
185	bool "MIPS Malta board"
186	select ARCH_MAY_HAVE_PC_FDC
187	select BOOT_ELF32
188	select BOOT_RAW
189	select CEVT_R4K
190	select CSRC_R4K
191	select DMA_NONCOHERENT
192	select GENERIC_ISA_DMA
193	select IRQ_CPU
194	select IRQ_GIC
195	select HW_HAS_PCI
196	select I8253
197	select I8259
198	select MIPS_BOARDS_GEN
199	select MIPS_BONITO64
200	select MIPS_CPU_SCACHE
201	select PCI_GT64XXX_PCI0
202	select MIPS_MSC
203	select SWAP_IO_SPACE
204	select SYS_HAS_CPU_MIPS32_R1
205	select SYS_HAS_CPU_MIPS32_R2
206	select SYS_HAS_CPU_MIPS64_R1
207	select SYS_HAS_CPU_NEVADA
208	select SYS_HAS_CPU_RM7000
209	select SYS_HAS_EARLY_PRINTK
210	select SYS_SUPPORTS_32BIT_KERNEL
211	select SYS_SUPPORTS_64BIT_KERNEL
212	select SYS_SUPPORTS_BIG_ENDIAN
213	select SYS_SUPPORTS_LITTLE_ENDIAN
214	select SYS_SUPPORTS_MULTITHREADING
215	select SYS_SUPPORTS_SMARTMIPS
216	help
217	  This enables support for the MIPS Technologies Malta evaluation
218	  board.
219
220config MIPS_SIM
221	bool 'MIPS simulator (MIPSsim)'
222	select CEVT_R4K
223	select CSRC_R4K
224	select DMA_NONCOHERENT
225	select SYS_HAS_EARLY_PRINTK
226	select IRQ_CPU
227	select BOOT_RAW
228	select SYS_HAS_CPU_MIPS32_R1
229	select SYS_HAS_CPU_MIPS32_R2
230	select SYS_HAS_EARLY_PRINTK
231	select SYS_SUPPORTS_32BIT_KERNEL
232	select SYS_SUPPORTS_BIG_ENDIAN
233	select SYS_SUPPORTS_MULTITHREADING
234	select SYS_SUPPORTS_LITTLE_ENDIAN
235	help
236	  This option enables support for MIPS Technologies MIPSsim software
237	  emulator.
238
239config MARKEINS
240	bool "NEC EMMA2RH Mark-eins"
241	select CEVT_R4K
242	select CSRC_R4K
243	select DMA_NONCOHERENT
244	select HW_HAS_PCI
245	select IRQ_CPU
246	select SWAP_IO_SPACE
247	select SYS_SUPPORTS_32BIT_KERNEL
248	select SYS_SUPPORTS_BIG_ENDIAN
249	select SYS_SUPPORTS_LITTLE_ENDIAN
250	select SYS_HAS_CPU_R5000
251	help
252	  This enables support for the R5432-based NEC Mark-eins
253	  boards with R5500 CPU.
254
255config MACH_VR41XX
256	bool "NEC VR4100 series based machines"
257	select CEVT_R4K
258	select CSRC_R4K
259	select SYS_HAS_CPU_VR41XX
260	select GENERIC_HARDIRQS_NO__DO_IRQ
261
262config PNX8550_JBS
263	bool "NXP PNX8550 based JBS board"
264	select PNX8550
265	select SYS_SUPPORTS_LITTLE_ENDIAN
266
267config PNX8550_STB810
268	bool "NXP PNX8550 based STB810 board"
269	select PNX8550
270	select SYS_SUPPORTS_LITTLE_ENDIAN
271
272config PMC_MSP
273	bool "PMC-Sierra MSP chipsets"
274	depends on EXPERIMENTAL
275	select DMA_NONCOHERENT
276	select SWAP_IO_SPACE
277	select NO_EXCEPT_FILL
278	select BOOT_RAW
279	select SYS_HAS_CPU_MIPS32_R1
280	select SYS_HAS_CPU_MIPS32_R2
281	select SYS_SUPPORTS_32BIT_KERNEL
282	select SYS_SUPPORTS_BIG_ENDIAN
283	select IRQ_CPU
284	select SERIAL_8250
285	select SERIAL_8250_CONSOLE
286	help
287	  This adds support for the PMC-Sierra family of Multi-Service
288	  Processor System-On-A-Chips.  These parts include a number
289	  of integrated peripherals, interfaces and DSPs in addition to
290	  a variety of MIPS cores.
291
292config PMC_YOSEMITE
293	bool "PMC-Sierra Yosemite eval board"
294	select CEVT_R4K
295	select CSRC_R4K
296	select DMA_COHERENT
297	select HW_HAS_PCI
298	select IRQ_CPU
299	select IRQ_CPU_RM7K
300	select IRQ_CPU_RM9K
301	select SWAP_IO_SPACE
302	select SYS_HAS_CPU_RM9000
303	select SYS_HAS_EARLY_PRINTK
304	select SYS_SUPPORTS_32BIT_KERNEL
305	select SYS_SUPPORTS_64BIT_KERNEL
306	select SYS_SUPPORTS_BIG_ENDIAN
307	select SYS_SUPPORTS_HIGHMEM
308	select SYS_SUPPORTS_SMP
309	help
310	  Yosemite is an evaluation board for the RM9000x2 processor
311	  manufactured by PMC-Sierra.
312
313config SGI_IP22
314	bool "SGI IP22 (Indy/Indigo2)"
315	select ARC
316	select ARC32
317	select BOOT_ELF32
318	select CEVT_R4K
319	select CSRC_R4K
320	select DEFAULT_SGI_PARTITION
321	select DMA_NONCOHERENT
322	select HW_HAS_EISA
323	select I8253
324	select I8259
325	select IP22_CPU_SCACHE
326	select IRQ_CPU
327	select GENERIC_ISA_DMA_SUPPORT_BROKEN
328	select SGI_HAS_DS1286
329	select SGI_HAS_I8042
330	select SGI_HAS_INDYDOG
331	select SGI_HAS_HAL2
332	select SGI_HAS_SEEQ
333	select SGI_HAS_WD93
334	select SGI_HAS_ZILOG
335	select SWAP_IO_SPACE
336	select SYS_HAS_CPU_R4X00
337	select SYS_HAS_CPU_R5000
338	select SYS_HAS_EARLY_PRINTK
339	select SYS_SUPPORTS_32BIT_KERNEL
340	select SYS_SUPPORTS_64BIT_KERNEL
341	select SYS_SUPPORTS_BIG_ENDIAN
342	help
343	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
344	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
345	  that runs on these, say Y here.
346
347config SGI_IP27
348	bool "SGI IP27 (Origin200/2000)"
349	select ARC
350	select ARC64
351	select BOOT_ELF64
352	select DEFAULT_SGI_PARTITION
353	select DMA_IP27
354	select SYS_HAS_EARLY_PRINTK
355	select HW_HAS_PCI
356	select NR_CPUS_DEFAULT_64
357	select SYS_HAS_CPU_R10000
358	select SYS_SUPPORTS_64BIT_KERNEL
359	select SYS_SUPPORTS_BIG_ENDIAN
360	select SYS_SUPPORTS_NUMA
361	select SYS_SUPPORTS_SMP
362	select GENERIC_HARDIRQS_NO__DO_IRQ
363	help
364	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
365	  workstations.  To compile a Linux kernel that runs on these, say Y
366	  here.
367
368config SGI_IP28
369	bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
370	depends on EXPERIMENTAL
371	select ARC
372	select ARC64
373	select BOOT_ELF64
374	select CEVT_R4K
375	select CSRC_R4K
376	select DEFAULT_SGI_PARTITION
377	select DMA_NONCOHERENT
378	select GENERIC_ISA_DMA_SUPPORT_BROKEN
379	select IRQ_CPU
380	select HW_HAS_EISA
381	select I8253
382	select I8259
383	select SGI_HAS_DS1286
384	select SGI_HAS_I8042
385	select SGI_HAS_INDYDOG
386	select SGI_HAS_HAL2
387	select SGI_HAS_SEEQ
388	select SGI_HAS_WD93
389	select SGI_HAS_ZILOG
390	select SWAP_IO_SPACE
391	select SYS_HAS_CPU_R10000
392	select SYS_HAS_EARLY_PRINTK
393	select SYS_SUPPORTS_64BIT_KERNEL
394	select SYS_SUPPORTS_BIG_ENDIAN
395      help
396        This is the SGI Indigo2 with R10000 processor.  To compile a Linux
397        kernel that runs on these, say Y here.
398
399config SGI_IP32
400	bool "SGI IP32 (O2)"
401	select ARC
402	select ARC32
403	select BOOT_ELF32
404	select CEVT_R4K
405	select CSRC_R4K
406	select DMA_NONCOHERENT
407	select HW_HAS_PCI
408	select IRQ_CPU
409	select R5000_CPU_SCACHE
410	select RM7000_CPU_SCACHE
411	select SYS_HAS_CPU_R5000
412	select SYS_HAS_CPU_R10000 if BROKEN
413	select SYS_HAS_CPU_RM7000
414	select SYS_HAS_CPU_NEVADA
415	select SYS_SUPPORTS_64BIT_KERNEL
416	select SYS_SUPPORTS_BIG_ENDIAN
417	help
418	  If you want this kernel to run on SGI O2 workstation, say Y here.
419
420config SIBYTE_CRHINE
421	bool "Sibyte BCM91120C-CRhine"
422	depends on EXPERIMENTAL
423	select BOOT_ELF32
424	select DMA_COHERENT
425	select SIBYTE_BCM1120
426	select SWAP_IO_SPACE
427	select SYS_HAS_CPU_SB1
428	select SYS_SUPPORTS_BIG_ENDIAN
429	select SYS_SUPPORTS_LITTLE_ENDIAN
430
431config SIBYTE_CARMEL
432	bool "Sibyte BCM91120x-Carmel"
433	depends on EXPERIMENTAL
434	select BOOT_ELF32
435	select DMA_COHERENT
436	select SIBYTE_BCM1120
437	select SWAP_IO_SPACE
438	select SYS_HAS_CPU_SB1
439	select SYS_SUPPORTS_BIG_ENDIAN
440	select SYS_SUPPORTS_LITTLE_ENDIAN
441
442config SIBYTE_CRHONE
443	bool "Sibyte BCM91125C-CRhone"
444	depends on EXPERIMENTAL
445	select BOOT_ELF32
446	select DMA_COHERENT
447	select SIBYTE_BCM1125
448	select SWAP_IO_SPACE
449	select SYS_HAS_CPU_SB1
450	select SYS_SUPPORTS_BIG_ENDIAN
451	select SYS_SUPPORTS_HIGHMEM
452	select SYS_SUPPORTS_LITTLE_ENDIAN
453
454config SIBYTE_RHONE
455	bool "Sibyte BCM91125E-Rhone"
456	depends on EXPERIMENTAL
457	select BOOT_ELF32
458	select DMA_COHERENT
459	select SIBYTE_BCM1125H
460	select SWAP_IO_SPACE
461	select SYS_HAS_CPU_SB1
462	select SYS_SUPPORTS_BIG_ENDIAN
463	select SYS_SUPPORTS_LITTLE_ENDIAN
464
465config SIBYTE_SWARM
466	bool "Sibyte BCM91250A-SWARM"
467	select BOOT_ELF32
468	select DMA_COHERENT
469	select NR_CPUS_DEFAULT_2
470	select SIBYTE_SB1250
471	select SWAP_IO_SPACE
472	select SYS_HAS_CPU_SB1
473	select SYS_SUPPORTS_BIG_ENDIAN
474	select SYS_SUPPORTS_HIGHMEM
475	select SYS_SUPPORTS_LITTLE_ENDIAN
476	select ZONE_DMA32 if 64BIT
477
478config SIBYTE_LITTLESUR
479	bool "Sibyte BCM91250C2-LittleSur"
480	depends on EXPERIMENTAL
481	select BOOT_ELF32
482	select DMA_COHERENT
483	select NR_CPUS_DEFAULT_2
484	select SIBYTE_SB1250
485	select SWAP_IO_SPACE
486	select SYS_HAS_CPU_SB1
487	select SYS_SUPPORTS_BIG_ENDIAN
488	select SYS_SUPPORTS_HIGHMEM
489	select SYS_SUPPORTS_LITTLE_ENDIAN
490
491config SIBYTE_SENTOSA
492	bool "Sibyte BCM91250E-Sentosa"
493	depends on EXPERIMENTAL
494	select BOOT_ELF32
495	select DMA_COHERENT
496	select NR_CPUS_DEFAULT_2
497	select SIBYTE_SB1250
498	select SWAP_IO_SPACE
499	select SYS_HAS_CPU_SB1
500	select SYS_SUPPORTS_BIG_ENDIAN
501	select SYS_SUPPORTS_LITTLE_ENDIAN
502
503config SIBYTE_BIGSUR
504	bool "Sibyte BCM91480B-BigSur"
505	select BOOT_ELF32
506	select DMA_COHERENT
507	select NR_CPUS_DEFAULT_4
508	select SIBYTE_BCM1x80
509	select SWAP_IO_SPACE
510	select SYS_HAS_CPU_SB1
511	select SYS_SUPPORTS_BIG_ENDIAN
512	select SYS_SUPPORTS_HIGHMEM
513	select SYS_SUPPORTS_LITTLE_ENDIAN
514	select ZONE_DMA32 if 64BIT
515
516config SNI_RM
517	bool "SNI RM200/300/400"
518	select ARC if CPU_LITTLE_ENDIAN
519	select ARC32 if CPU_LITTLE_ENDIAN
520	select SNIPROM if CPU_BIG_ENDIAN
521	select ARCH_MAY_HAVE_PC_FDC
522	select BOOT_ELF32
523	select CEVT_R4K
524	select CSRC_R4K
525	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
526	select DMA_NONCOHERENT
527	select GENERIC_ISA_DMA
528	select HW_HAS_EISA
529	select HW_HAS_PCI
530	select IRQ_CPU
531	select I8253
532	select I8259
533	select ISA
534	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
535	select SYS_HAS_CPU_R4X00
536	select SYS_HAS_CPU_R5000
537	select SYS_HAS_CPU_R10000
538	select R5000_CPU_SCACHE
539	select SYS_HAS_EARLY_PRINTK
540	select SYS_SUPPORTS_32BIT_KERNEL
541	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
542	select SYS_SUPPORTS_BIG_ENDIAN
543	select SYS_SUPPORTS_HIGHMEM
544	select SYS_SUPPORTS_LITTLE_ENDIAN
545	help
546	  The SNI RM200/300/400 are MIPS-based machines manufactured by
547	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
548	  Technology and now in turn merged with Fujitsu.  Say Y here to
549	  support this machine type.
550
551config MACH_TX39XX
552	bool "Toshiba TX39 series based machines"
553
554config MACH_TX49XX
555	bool "Toshiba TX49 series based machines"
556
557config MIKROTIK_RB532
558	bool "Mikrotik RB532 boards"
559	select CEVT_R4K
560	select CSRC_R4K
561	select DMA_NONCOHERENT
562	select GENERIC_HARDIRQS_NO__DO_IRQ
563	select HW_HAS_PCI
564	select IRQ_CPU
565	select SYS_HAS_CPU_MIPS32_R1
566	select SYS_SUPPORTS_32BIT_KERNEL
567	select SYS_SUPPORTS_LITTLE_ENDIAN
568	select SWAP_IO_SPACE
569	select BOOT_RAW
570	select GENERIC_GPIO
571	help
572	  Support the Mikrotik(tm) RouterBoard 532 series,
573	  based on the IDT RC32434 SoC.
574
575config WR_PPMC
576	bool "Wind River PPMC board"
577	select CEVT_R4K
578	select CSRC_R4K
579	select IRQ_CPU
580	select BOOT_ELF32
581	select DMA_NONCOHERENT
582	select HW_HAS_PCI
583	select PCI_GT64XXX_PCI0
584	select SWAP_IO_SPACE
585	select SYS_HAS_CPU_MIPS32_R1
586	select SYS_HAS_CPU_MIPS32_R2
587	select SYS_HAS_CPU_MIPS64_R1
588	select SYS_HAS_CPU_NEVADA
589	select SYS_HAS_CPU_RM7000
590	select SYS_SUPPORTS_32BIT_KERNEL
591	select SYS_SUPPORTS_64BIT_KERNEL
592	select SYS_SUPPORTS_BIG_ENDIAN
593	select SYS_SUPPORTS_LITTLE_ENDIAN
594	help
595	  This enables support for the Wind River MIPS32 4KC PPMC evaluation
596	  board, which is based on GT64120 bridge chip.
597
598endchoice
599
600source "arch/mips/au1000/Kconfig"
601source "arch/mips/basler/excite/Kconfig"
602source "arch/mips/jazz/Kconfig"
603source "arch/mips/lasat/Kconfig"
604source "arch/mips/pmc-sierra/Kconfig"
605source "arch/mips/sgi-ip27/Kconfig"
606source "arch/mips/sibyte/Kconfig"
607source "arch/mips/txx9/Kconfig"
608source "arch/mips/vr41xx/Kconfig"
609
610endmenu
611
612config GENERIC_LOCKBREAK
613	bool
614	default y
615	depends on SMP && PREEMPT
616
617config RWSEM_GENERIC_SPINLOCK
618	bool
619	default y
620
621config RWSEM_XCHGADD_ALGORITHM
622	bool
623
624config ARCH_HAS_ILOG2_U32
625	bool
626	default n
627
628config ARCH_HAS_ILOG2_U64
629	bool
630	default n
631
632config ARCH_SUPPORTS_OPROFILE
633	bool
634	default y if !MIPS_MT_SMTC
635
636config GENERIC_FIND_NEXT_BIT
637	bool
638	default y
639
640config GENERIC_HWEIGHT
641	bool
642	default y
643
644config GENERIC_CALIBRATE_DELAY
645	bool
646	default y
647
648config GENERIC_CLOCKEVENTS
649	bool
650	default y
651
652config GENERIC_TIME
653	bool
654	default y
655
656config GENERIC_CMOS_UPDATE
657	bool
658	default y
659
660config SCHED_NO_NO_OMIT_FRAME_POINTER
661	bool
662	default y
663
664config GENERIC_HARDIRQS_NO__DO_IRQ
665	bool
666	default n
667
668#
669# Select some configuration options automatically based on user selections.
670#
671config ARC
672	bool
673
674config ARCH_MAY_HAVE_PC_FDC
675	bool
676
677config BOOT_RAW
678	bool
679
680config CEVT_BCM1480
681	bool
682
683config CEVT_DS1287
684	bool
685
686config CEVT_GT641XX
687	bool
688
689config CEVT_R4K
690	bool
691
692config CEVT_SB1250
693	bool
694
695config CEVT_TXX9
696	bool
697
698config CSRC_BCM1480
699	bool
700
701config CSRC_IOASIC
702	bool
703
704config CSRC_R4K
705	bool
706
707config CSRC_SB1250
708	bool
709
710config GPIO_TXX9
711	select GENERIC_GPIO
712	select ARCH_REQUIRE_GPIOLIB
713	bool
714
715config CFE
716	bool
717
718config DMA_COHERENT
719	bool
720
721config DMA_IP27
722	bool
723
724config DMA_NONCOHERENT
725	bool
726	select DMA_NEED_PCI_MAP_STATE
727
728config DMA_NEED_PCI_MAP_STATE
729	bool
730
731config EARLY_PRINTK
732	bool "Early printk" if EMBEDDED && DEBUG_KERNEL
733	depends on SYS_HAS_EARLY_PRINTK
734	default y
735	help
736	  This option enables special console drivers which allow the kernel
737	  to print messages very early in the bootup process.
738
739	  This is useful for kernel debugging when your machine crashes very
740	  early before the console code is initialized. For normal operation,
741	  it is not recommended because it looks ugly on some machines and
742	  doesn't cooperate with an X server. You should normally say N here,
743	  unless you want to debug such a crash.
744
745config SYS_HAS_EARLY_PRINTK
746	bool
747
748config HOTPLUG_CPU
749	bool
750	default n
751
752config I8259
753	bool
754
755config MIPS_BONITO64
756	bool
757
758config MIPS_MSC
759	bool
760
761config MIPS_NILE4
762	bool
763
764config MIPS_DISABLE_OBSOLETE_IDE
765	bool
766
767config SYNC_R4K
768	bool
769
770config NO_IOPORT
771	def_bool n
772
773config GENERIC_ISA_DMA
774	bool
775	select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
776
777config GENERIC_ISA_DMA_SUPPORT_BROKEN
778	bool
779	select GENERIC_ISA_DMA
780
781config GENERIC_GPIO
782	bool
783
784#
785# Endianess selection.  Sufficiently obscure so many users don't know what to
786# answer,so we try hard to limit the available choices.  Also the use of a
787# choice statement should be more obvious to the user.
788#
789choice
790	prompt "Endianess selection"
791	help
792	  Some MIPS machines can be configured for either little or big endian
793	  byte order. These modes require different kernels and a different
794	  Linux distribution.  In general there is one preferred byteorder for a
795	  particular system but some systems are just as commonly used in the
796	  one or the other endianness.
797
798config CPU_BIG_ENDIAN
799	bool "Big endian"
800	depends on SYS_SUPPORTS_BIG_ENDIAN
801
802config CPU_LITTLE_ENDIAN
803	bool "Little endian"
804	depends on SYS_SUPPORTS_LITTLE_ENDIAN
805	help
806
807endchoice
808
809config SYS_SUPPORTS_APM_EMULATION
810	bool
811
812config SYS_SUPPORTS_BIG_ENDIAN
813	bool
814
815config SYS_SUPPORTS_LITTLE_ENDIAN
816	bool
817
818config IRQ_CPU
819	bool
820
821config IRQ_CPU_RM7K
822	bool
823
824config IRQ_CPU_RM9K
825	bool
826
827config IRQ_MSP_SLP
828	bool
829
830config IRQ_MSP_CIC
831	bool
832
833config IRQ_TXX9
834	bool
835
836config IRQ_GT641XX
837	bool
838
839config IRQ_GIC
840	bool
841
842config MIPS_BOARDS_GEN
843	bool
844
845config PCI_GT64XXX_PCI0
846	bool
847
848config NO_EXCEPT_FILL
849	bool
850
851config MIPS_RM9122
852	bool
853	select SERIAL_RM9000
854
855config PNX8550
856	bool
857	select SOC_PNX8550
858
859config SOC_PNX8550
860	bool
861	select DMA_NONCOHERENT
862	select HW_HAS_PCI
863	select SYS_HAS_CPU_MIPS32_R1
864	select SYS_HAS_EARLY_PRINTK
865	select SYS_SUPPORTS_32BIT_KERNEL
866	select GENERIC_HARDIRQS_NO__DO_IRQ
867	select GENERIC_GPIO
868
869config SWAP_IO_SPACE
870	bool
871
872config EMMA2RH
873	bool
874	depends on MARKEINS
875	default y
876
877config SERIAL_RM9000
878	bool
879
880config SGI_HAS_DS1286
881	bool
882
883config SGI_HAS_INDYDOG
884	bool
885
886config SGI_HAS_HAL2
887	bool
888
889config SGI_HAS_SEEQ
890	bool
891
892config SGI_HAS_WD93
893	bool
894
895config SGI_HAS_ZILOG
896	bool
897
898config SGI_HAS_I8042
899	bool
900
901config DEFAULT_SGI_PARTITION
902	bool
903
904config ARC32
905	bool
906
907config SNIPROM
908	bool
909
910config BOOT_ELF32
911	bool
912
913config MIPS_L1_CACHE_SHIFT
914	int
915	default "4" if MACH_DECSTATION || MIKROTIK_RB532
916	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM
917	default "4" if PMC_MSP4200_EVAL
918	default "5"
919
920config HAVE_STD_PC_SERIAL_PORT
921	bool
922
923config ARC_CONSOLE
924	bool "ARC console support"
925	depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
926
927config ARC_MEMORY
928	bool
929	depends on MACH_JAZZ || SNI_RM || SGI_IP32
930	default y
931
932config ARC_PROMLIB
933	bool
934	depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
935	default y
936
937config ARC64
938	bool
939
940config BOOT_ELF64
941	bool
942
943menu "CPU selection"
944
945choice
946	prompt "CPU type"
947	default CPU_R4X00
948
949config CPU_LOONGSON2
950	bool "Loongson 2"
951	depends on SYS_HAS_CPU_LOONGSON2
952	select CPU_SUPPORTS_32BIT_KERNEL
953	select CPU_SUPPORTS_64BIT_KERNEL
954	select CPU_SUPPORTS_HIGHMEM
955	help
956	  The Loongson 2E processor implements the MIPS III instruction set
957	  with many extensions.
958
959config CPU_MIPS32_R1
960	bool "MIPS32 Release 1"
961	depends on SYS_HAS_CPU_MIPS32_R1
962	select CPU_HAS_LLSC
963	select CPU_HAS_PREFETCH
964	select CPU_SUPPORTS_32BIT_KERNEL
965	select CPU_SUPPORTS_HIGHMEM
966	help
967	  Choose this option to build a kernel for release 1 or later of the
968	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
969	  MIPS processor are based on a MIPS32 processor.  If you know the
970	  specific type of processor in your system, choose those that one
971	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
972	  Release 2 of the MIPS32 architecture is available since several
973	  years so chances are you even have a MIPS32 Release 2 processor
974	  in which case you should choose CPU_MIPS32_R2 instead for better
975	  performance.
976
977config CPU_MIPS32_R2
978	bool "MIPS32 Release 2"
979	depends on SYS_HAS_CPU_MIPS32_R2
980	select CPU_HAS_LLSC
981	select CPU_HAS_PREFETCH
982	select CPU_SUPPORTS_32BIT_KERNEL
983	select CPU_SUPPORTS_HIGHMEM
984	help
985	  Choose this option to build a kernel for release 2 or later of the
986	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
987	  MIPS processor are based on a MIPS32 processor.  If you know the
988	  specific type of processor in your system, choose those that one
989	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
990
991config CPU_MIPS64_R1
992	bool "MIPS64 Release 1"
993	depends on SYS_HAS_CPU_MIPS64_R1
994	select CPU_HAS_LLSC
995	select CPU_HAS_PREFETCH
996	select CPU_SUPPORTS_32BIT_KERNEL
997	select CPU_SUPPORTS_64BIT_KERNEL
998	select CPU_SUPPORTS_HIGHMEM
999	help
1000	  Choose this option to build a kernel for release 1 or later of the
1001	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1002	  MIPS processor are based on a MIPS64 processor.  If you know the
1003	  specific type of processor in your system, choose those that one
1004	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1005	  Release 2 of the MIPS64 architecture is available since several
1006	  years so chances are you even have a MIPS64 Release 2 processor
1007	  in which case you should choose CPU_MIPS64_R2 instead for better
1008	  performance.
1009
1010config CPU_MIPS64_R2
1011	bool "MIPS64 Release 2"
1012	depends on SYS_HAS_CPU_MIPS64_R2
1013	select CPU_HAS_LLSC
1014	select CPU_HAS_PREFETCH
1015	select CPU_SUPPORTS_32BIT_KERNEL
1016	select CPU_SUPPORTS_64BIT_KERNEL
1017	select CPU_SUPPORTS_HIGHMEM
1018	help
1019	  Choose this option to build a kernel for release 2 or later of the
1020	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1021	  MIPS processor are based on a MIPS64 processor.  If you know the
1022	  specific type of processor in your system, choose those that one
1023	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1024
1025config CPU_R3000
1026	bool "R3000"
1027	depends on SYS_HAS_CPU_R3000
1028	select CPU_HAS_WB
1029	select CPU_SUPPORTS_32BIT_KERNEL
1030	select CPU_SUPPORTS_HIGHMEM
1031	help
1032	  Please make sure to pick the right CPU type. Linux/MIPS is not
1033	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1034	  *not* work on R4000 machines and vice versa.  However, since most
1035	  of the supported machines have an R4000 (or similar) CPU, R4x00
1036	  might be a safe bet.  If the resulting kernel does not work,
1037	  try to recompile with R3000.
1038
1039config CPU_TX39XX
1040	bool "R39XX"
1041	depends on SYS_HAS_CPU_TX39XX
1042	select CPU_SUPPORTS_32BIT_KERNEL
1043
1044config CPU_VR41XX
1045	bool "R41xx"
1046	depends on SYS_HAS_CPU_VR41XX
1047	select CPU_SUPPORTS_32BIT_KERNEL
1048	select CPU_SUPPORTS_64BIT_KERNEL
1049	help
1050	  The options selects support for the NEC VR4100 series of processors.
1051	  Only choose this option if you have one of these processors as a
1052	  kernel built with this option will not run on any other type of
1053	  processor or vice versa.
1054
1055config CPU_R4300
1056	bool "R4300"
1057	depends on SYS_HAS_CPU_R4300
1058	select CPU_HAS_LLSC
1059	select CPU_SUPPORTS_32BIT_KERNEL
1060	select CPU_SUPPORTS_64BIT_KERNEL
1061	help
1062	  MIPS Technologies R4300-series processors.
1063
1064config CPU_R4X00
1065	bool "R4x00"
1066	depends on SYS_HAS_CPU_R4X00
1067	select CPU_HAS_LLSC
1068	select CPU_SUPPORTS_32BIT_KERNEL
1069	select CPU_SUPPORTS_64BIT_KERNEL
1070	help
1071	  MIPS Technologies R4000-series processors other than 4300, including
1072	  the R4000, R4400, R4600, and 4700.
1073
1074config CPU_TX49XX
1075	bool "R49XX"
1076	depends on SYS_HAS_CPU_TX49XX
1077	select CPU_HAS_LLSC
1078	select CPU_HAS_PREFETCH
1079	select CPU_SUPPORTS_32BIT_KERNEL
1080	select CPU_SUPPORTS_64BIT_KERNEL
1081
1082config CPU_R5000
1083	bool "R5000"
1084	depends on SYS_HAS_CPU_R5000
1085	select CPU_HAS_LLSC
1086	select CPU_SUPPORTS_32BIT_KERNEL
1087	select CPU_SUPPORTS_64BIT_KERNEL
1088	help
1089	  MIPS Technologies R5000-series processors other than the Nevada.
1090
1091config CPU_R5432
1092	bool "R5432"
1093	depends on SYS_HAS_CPU_R5432
1094	select CPU_HAS_LLSC
1095	select CPU_SUPPORTS_32BIT_KERNEL
1096	select CPU_SUPPORTS_64BIT_KERNEL
1097
1098config CPU_R6000
1099	bool "R6000"
1100	depends on EXPERIMENTAL
1101	select CPU_HAS_LLSC
1102	depends on SYS_HAS_CPU_R6000
1103	select CPU_SUPPORTS_32BIT_KERNEL
1104	help
1105	  MIPS Technologies R6000 and R6000A series processors.  Note these
1106	  processors are extremely rare and the support for them is incomplete.
1107
1108config CPU_NEVADA
1109	bool "RM52xx"
1110	depends on SYS_HAS_CPU_NEVADA
1111	select CPU_HAS_LLSC
1112	select CPU_SUPPORTS_32BIT_KERNEL
1113	select CPU_SUPPORTS_64BIT_KERNEL
1114	help
1115	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1116
1117config CPU_R8000
1118	bool "R8000"
1119	depends on EXPERIMENTAL
1120	depends on SYS_HAS_CPU_R8000
1121	select CPU_HAS_LLSC
1122	select CPU_HAS_PREFETCH
1123	select CPU_SUPPORTS_64BIT_KERNEL
1124	help
1125	  MIPS Technologies R8000 processors.  Note these processors are
1126	  uncommon and the support for them is incomplete.
1127
1128config CPU_R10000
1129	bool "R10000"
1130	depends on SYS_HAS_CPU_R10000
1131	select CPU_HAS_LLSC
1132	select CPU_HAS_PREFETCH
1133	select CPU_SUPPORTS_32BIT_KERNEL
1134	select CPU_SUPPORTS_64BIT_KERNEL
1135	select CPU_SUPPORTS_HIGHMEM
1136	help
1137	  MIPS Technologies R10000-series processors.
1138
1139config CPU_RM7000
1140	bool "RM7000"
1141	depends on SYS_HAS_CPU_RM7000
1142	select CPU_HAS_LLSC
1143	select CPU_HAS_PREFETCH
1144	select CPU_SUPPORTS_32BIT_KERNEL
1145	select CPU_SUPPORTS_64BIT_KERNEL
1146	select CPU_SUPPORTS_HIGHMEM
1147
1148config CPU_RM9000
1149	bool "RM9000"
1150	depends on SYS_HAS_CPU_RM9000
1151	select CPU_HAS_LLSC
1152	select CPU_HAS_PREFETCH
1153	select CPU_SUPPORTS_32BIT_KERNEL
1154	select CPU_SUPPORTS_64BIT_KERNEL
1155	select CPU_SUPPORTS_HIGHMEM
1156	select WEAK_ORDERING
1157
1158config CPU_SB1
1159	bool "SB1"
1160	depends on SYS_HAS_CPU_SB1
1161	select CPU_HAS_LLSC
1162	select CPU_SUPPORTS_32BIT_KERNEL
1163	select CPU_SUPPORTS_64BIT_KERNEL
1164	select CPU_SUPPORTS_HIGHMEM
1165	select WEAK_ORDERING
1166
1167endchoice
1168
1169config SYS_HAS_CPU_LOONGSON2
1170	bool
1171
1172config SYS_HAS_CPU_MIPS32_R1
1173	bool
1174
1175config SYS_HAS_CPU_MIPS32_R2
1176	bool
1177
1178config SYS_HAS_CPU_MIPS64_R1
1179	bool
1180
1181config SYS_HAS_CPU_MIPS64_R2
1182	bool
1183
1184config SYS_HAS_CPU_R3000
1185	bool
1186
1187config SYS_HAS_CPU_TX39XX
1188	bool
1189
1190config SYS_HAS_CPU_VR41XX
1191	bool
1192
1193config SYS_HAS_CPU_R4300
1194	bool
1195
1196config SYS_HAS_CPU_R4X00
1197	bool
1198
1199config SYS_HAS_CPU_TX49XX
1200	bool
1201
1202config SYS_HAS_CPU_R5000
1203	bool
1204
1205config SYS_HAS_CPU_R5432
1206	bool
1207
1208config SYS_HAS_CPU_R6000
1209	bool
1210
1211config SYS_HAS_CPU_NEVADA
1212	bool
1213
1214config SYS_HAS_CPU_R8000
1215	bool
1216
1217config SYS_HAS_CPU_R10000
1218	bool
1219
1220config SYS_HAS_CPU_RM7000
1221	bool
1222
1223config SYS_HAS_CPU_RM9000
1224	bool
1225
1226config SYS_HAS_CPU_SB1
1227	bool
1228
1229#
1230# CPU may reorder R->R, R->W, W->R, W->W
1231# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1232#
1233config WEAK_ORDERING
1234	bool
1235
1236#
1237# CPU may reorder reads and writes beyond LL/SC
1238# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1239#
1240config WEAK_REORDERING_BEYOND_LLSC
1241	bool
1242endmenu
1243
1244#
1245# These two indicate any level of the MIPS32 and MIPS64 architecture
1246#
1247config CPU_MIPS32
1248	bool
1249	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1250
1251config CPU_MIPS64
1252	bool
1253	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1254
1255#
1256# These two indicate the revision of the architecture, either Release 1 or Release 2
1257#
1258config CPU_MIPSR1
1259	bool
1260	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1261
1262config CPU_MIPSR2
1263	bool
1264	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2
1265
1266config SYS_SUPPORTS_32BIT_KERNEL
1267	bool
1268config SYS_SUPPORTS_64BIT_KERNEL
1269	bool
1270config CPU_SUPPORTS_32BIT_KERNEL
1271	bool
1272config CPU_SUPPORTS_64BIT_KERNEL
1273	bool
1274
1275menu "Kernel type"
1276
1277choice
1278
1279	prompt "Kernel code model"
1280	help
1281	  You should only select this option if you have a workload that
1282	  actually benefits from 64-bit processing or if your machine has
1283	  large memory.  You will only be presented a single option in this
1284	  menu if your system does not support both 32-bit and 64-bit kernels.
1285
1286config 32BIT
1287	bool "32-bit kernel"
1288	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1289	select TRAD_SIGNALS
1290	help
1291	  Select this option if you want to build a 32-bit kernel.
1292config 64BIT
1293	bool "64-bit kernel"
1294	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1295	help
1296	  Select this option if you want to build a 64-bit kernel.
1297
1298endchoice
1299
1300choice
1301	prompt "Kernel page size"
1302	default PAGE_SIZE_4KB
1303
1304config PAGE_SIZE_4KB
1305	bool "4kB"
1306	help
1307	 This option select the standard 4kB Linux page size.  On some
1308	 R3000-family processors this is the only available page size.  Using
1309	 4kB page size will minimize memory consumption and is therefore
1310	 recommended for low memory systems.
1311
1312config PAGE_SIZE_8KB
1313	bool "8kB"
1314	depends on EXPERIMENTAL && CPU_R8000
1315	help
1316	  Using 8kB page size will result in higher performance kernel at
1317	  the price of higher memory consumption.  This option is available
1318	  only on the R8000 processor.  Not that at the time of this writing
1319	  this option is still high experimental; there are also issues with
1320	  compatibility of user applications.
1321
1322config PAGE_SIZE_16KB
1323	bool "16kB"
1324	depends on !CPU_R3000 && !CPU_TX39XX
1325	help
1326	  Using 16kB page size will result in higher performance kernel at
1327	  the price of higher memory consumption.  This option is available on
1328	  all non-R3000 family processors.  Note that you will need a suitable
1329	  Linux distribution to support this.
1330
1331config PAGE_SIZE_64KB
1332	bool "64kB"
1333	depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1334	help
1335	  Using 64kB page size will result in higher performance kernel at
1336	  the price of higher memory consumption.  This option is available on
1337	  all non-R3000 family processor.  Not that at the time of this
1338	  writing this option is still high experimental.
1339
1340endchoice
1341
1342config BOARD_SCACHE
1343	bool
1344
1345config IP22_CPU_SCACHE
1346	bool
1347	select BOARD_SCACHE
1348
1349#
1350# Support for a MIPS32 / MIPS64 style S-caches
1351#
1352config MIPS_CPU_SCACHE
1353	bool
1354	select BOARD_SCACHE
1355
1356config R5000_CPU_SCACHE
1357	bool
1358	select BOARD_SCACHE
1359
1360config RM7000_CPU_SCACHE
1361	bool
1362	select BOARD_SCACHE
1363
1364config SIBYTE_DMA_PAGEOPS
1365	bool "Use DMA to clear/copy pages"
1366	depends on CPU_SB1
1367	help
1368	  Instead of using the CPU to zero and copy pages, use a Data Mover
1369	  channel.  These DMA channels are otherwise unused by the standard
1370	  SiByte Linux port.  Seems to give a small performance benefit.
1371
1372config CPU_HAS_PREFETCH
1373	bool
1374
1375choice
1376	prompt "MIPS MT options"
1377
1378config MIPS_MT_DISABLED
1379	bool "Disable multithreading support."
1380	help
1381	  Use this option if your workload can't take advantage of
1382	  MIPS hardware multithreading support.  On systems that don't have
1383	  the option of an MT-enabled processor this option will be the only
1384	  option in this menu.
1385
1386config MIPS_MT_SMP
1387	bool "Use 1 TC on each available VPE for SMP"
1388	depends on SYS_SUPPORTS_MULTITHREADING
1389	select CPU_MIPSR2_IRQ_VI
1390	select CPU_MIPSR2_IRQ_EI
1391	select MIPS_MT
1392	select NR_CPUS_DEFAULT_2
1393	select SMP
1394	select SYS_SUPPORTS_SCHED_SMT if SMP
1395	select SYS_SUPPORTS_SMP
1396	select SMP_UP
1397	help
1398	  This is a kernel model which is also known a VSMP or lately
1399	  has been marketesed into SMVP.
1400
1401config MIPS_MT_SMTC
1402	bool "SMTC: Use all TCs on all VPEs for SMP"
1403	depends on CPU_MIPS32_R2
1404	#depends on CPU_MIPS64_R2		# once there is hardware ...
1405	depends on SYS_SUPPORTS_MULTITHREADING
1406	select GENERIC_CLOCKEVENTS_BROADCAST
1407	select CPU_MIPSR2_IRQ_VI
1408	select CPU_MIPSR2_IRQ_EI
1409	select MIPS_MT
1410	select NR_CPUS_DEFAULT_8
1411	select SMP
1412	select SYS_SUPPORTS_SMP
1413	select SMP_UP
1414	help
1415	  This is a kernel model which is known a SMTC or lately has been
1416	  marketesed into SMVP.
1417
1418endchoice
1419
1420config MIPS_MT
1421	bool
1422
1423config SCHED_SMT
1424	bool "SMT (multithreading) scheduler support"
1425	depends on SYS_SUPPORTS_SCHED_SMT
1426	default n
1427	help
1428	  SMT scheduler support improves the CPU scheduler's decision making
1429	  when dealing with MIPS MT enabled cores at a cost of slightly
1430	  increased overhead in some places. If unsure say N here.
1431
1432config SYS_SUPPORTS_SCHED_SMT
1433	bool
1434
1435
1436config SYS_SUPPORTS_MULTITHREADING
1437	bool
1438
1439config MIPS_MT_FPAFF
1440	bool "Dynamic FPU affinity for FP-intensive threads"
1441	default y
1442	depends on MIPS_MT_SMP || MIPS_MT_SMTC
1443
1444config MIPS_VPE_LOADER
1445	bool "VPE loader support."
1446	depends on SYS_SUPPORTS_MULTITHREADING
1447	select CPU_MIPSR2_IRQ_VI
1448	select CPU_MIPSR2_IRQ_EI
1449	select MIPS_MT
1450	help
1451	  Includes a loader for loading an elf relocatable object
1452	  onto another VPE and running it.
1453
1454config MIPS_MT_SMTC_INSTANT_REPLAY
1455	bool "Low-latency Dispatch of Deferred SMTC IPIs"
1456	depends on MIPS_MT_SMTC && !PREEMPT
1457	default y
1458	help
1459	  SMTC pseudo-interrupts between TCs are deferred and queued
1460	  if the target TC is interrupt-inhibited (IXMT). In the first
1461	  SMTC prototypes, these queued IPIs were serviced on return
1462	  to user mode, or on entry into the kernel idle loop. The
1463	  INSTANT_REPLAY option dispatches them as part of local_irq_restore()
1464	  processing, which adds runtime overhead (hence the option to turn
1465	  it off), but ensures that IPIs are handled promptly even under
1466	  heavy I/O interrupt load.
1467
1468config MIPS_MT_SMTC_IM_BACKSTOP
1469	bool "Use per-TC register bits as backstop for inhibited IM bits"
1470	depends on MIPS_MT_SMTC
1471	default y
1472	help
1473	  To support multiple TC microthreads acting as "CPUs" within
1474	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1475	  during interrupt handling. To support legacy drivers and interrupt
1476	  controller management code, SMTC has a "backstop" to track and
1477	  if necessary restore the interrupt mask. This has some performance
1478	  impact on interrupt service overhead. Disable it only if you know
1479	  what you are doing.
1480
1481config MIPS_MT_SMTC_IRQAFF
1482	bool "Support IRQ affinity API"
1483	depends on MIPS_MT_SMTC
1484	default n
1485	help
1486	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1487	  for SMTC Linux kernel. Requires platform support, of which
1488	  an example can be found in the MIPS kernel i8259 and Malta
1489	  platform code.  It is recommended that MIPS_MT_SMTC_INSTANT_REPLAY
1490	  be enabled if MIPS_MT_SMTC_IRQAFF is used. Adds overhead to
1491	  interrupt dispatch, and should be used only if you know what
1492	  you are doing.
1493
1494config MIPS_VPE_LOADER_TOM
1495	bool "Load VPE program into memory hidden from linux"
1496	depends on MIPS_VPE_LOADER
1497	default y
1498	help
1499	  The loader can use memory that is present but has been hidden from
1500	  Linux using the kernel command line option "mem=xxMB". It's up to
1501	  you to ensure the amount you put in the option and the space your
1502	  program requires is less or equal to the amount physically present.
1503
1504# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1505config MIPS_VPE_APSP_API
1506	bool "Enable support for AP/SP API (RTLX)"
1507	depends on MIPS_VPE_LOADER
1508	help
1509
1510config MIPS_APSP_KSPD
1511	bool "Enable KSPD"
1512	depends on MIPS_VPE_APSP_API
1513	default y
1514	help
1515	  KSPD is a kernel daemon that accepts syscall requests from the SP
1516	  side, actions them and returns the results. It also handles the
1517	  "exit" syscall notifying other kernel modules the SP program is
1518	  exiting.  You probably want to say yes here.
1519
1520config SB1_PASS_1_WORKAROUNDS
1521	bool
1522	depends on CPU_SB1_PASS_1
1523	default y
1524
1525config SB1_PASS_2_WORKAROUNDS
1526	bool
1527	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1528	default y
1529
1530config SB1_PASS_2_1_WORKAROUNDS
1531	bool
1532	depends on CPU_SB1 && CPU_SB1_PASS_2
1533	default y
1534
1535config 64BIT_PHYS_ADDR
1536	bool
1537
1538config CPU_HAS_LLSC
1539	bool
1540
1541config CPU_HAS_SMARTMIPS
1542	depends on SYS_SUPPORTS_SMARTMIPS
1543	bool "Support for the SmartMIPS ASE"
1544	help
1545	  SmartMIPS is a extension of the MIPS32 architecture aimed at
1546	  increased security at both hardware and software level for
1547	  smartcards.  Enabling this option will allow proper use of the
1548	  SmartMIPS instructions by Linux applications.  However a kernel with
1549	  this option will not work on a MIPS core without SmartMIPS core.  If
1550	  you don't know you probably don't have SmartMIPS and should say N
1551	  here.
1552
1553config CPU_HAS_WB
1554	bool
1555
1556#
1557# Vectored interrupt mode is an R2 feature
1558#
1559config CPU_MIPSR2_IRQ_VI
1560	bool
1561
1562#
1563# Extended interrupt mode is an R2 feature
1564#
1565config CPU_MIPSR2_IRQ_EI
1566	bool
1567
1568config CPU_HAS_SYNC
1569	bool
1570	depends on !CPU_R3000
1571	default y
1572
1573config GENERIC_CLOCKEVENTS_BROADCAST
1574	bool
1575
1576#
1577# CPU non-features
1578#
1579config CPU_DADDI_WORKAROUNDS
1580	bool
1581
1582config CPU_R4000_WORKAROUNDS
1583	bool
1584	select CPU_R4400_WORKAROUNDS
1585
1586config CPU_R4400_WORKAROUNDS
1587	bool
1588
1589#
1590# Use the generic interrupt handling code in kernel/irq/:
1591#
1592config GENERIC_HARDIRQS
1593	bool
1594	default y
1595
1596config GENERIC_IRQ_PROBE
1597	bool
1598	default y
1599
1600config IRQ_PER_CPU
1601	bool
1602
1603#
1604# - Highmem only makes sense for the 32-bit kernel.
1605# - The current highmem code will only work properly on physically indexed
1606#   caches such as R3000, SB1, R7000 or those that look like they're virtually
1607#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
1608#   moment we protect the user and offer the highmem option only on machines
1609#   where it's known to be safe.  This will not offer highmem on a few systems
1610#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1611#   indexed CPUs but we're playing safe.
1612# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1613#   know they might have memory configurations that could make use of highmem
1614#   support.
1615#
1616config HIGHMEM
1617	bool "High Memory Support"
1618	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1619
1620config CPU_SUPPORTS_HIGHMEM
1621	bool
1622
1623config SYS_SUPPORTS_HIGHMEM
1624	bool
1625
1626config SYS_SUPPORTS_SMARTMIPS
1627	bool
1628
1629config ARCH_FLATMEM_ENABLE
1630	def_bool y
1631	depends on !NUMA
1632
1633config ARCH_DISCONTIGMEM_ENABLE
1634	bool
1635	default y if SGI_IP27
1636	help
1637	  Say Y to support efficient handling of discontiguous physical memory,
1638	  for architectures which are either NUMA (Non-Uniform Memory Access)
1639	  or have huge holes in the physical address space for other reasons.
1640	  See <file:Documentation/vm/numa> for more.
1641
1642config ARCH_POPULATES_NODE_MAP
1643	def_bool y
1644
1645config ARCH_SPARSEMEM_ENABLE
1646	bool
1647	select SPARSEMEM_STATIC
1648
1649config NUMA
1650	bool "NUMA Support"
1651	depends on SYS_SUPPORTS_NUMA
1652	help
1653	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
1654	  Access).  This option improves performance on systems with more
1655	  than two nodes; on two node systems it is generally better to
1656	  leave it disabled; on single node systems disable this option
1657	  disabled.
1658
1659config SYS_SUPPORTS_NUMA
1660	bool
1661
1662config NODES_SHIFT
1663	int
1664	default "6"
1665	depends on NEED_MULTIPLE_NODES
1666
1667source "mm/Kconfig"
1668
1669config SMP
1670	bool "Multi-Processing support"
1671	depends on SYS_SUPPORTS_SMP
1672	select IRQ_PER_CPU
1673	select USE_GENERIC_SMP_HELPERS
1674	help
1675	  This enables support for systems with more than one CPU. If you have
1676	  a system with only one CPU, like most personal computers, say N. If
1677	  you have a system with more than one CPU, say Y.
1678
1679	  If you say N here, the kernel will run on single and multiprocessor
1680	  machines, but will use only one CPU of a multiprocessor machine. If
1681	  you say Y here, the kernel will run on many, but not all,
1682	  singleprocessor machines. On a singleprocessor machine, the kernel
1683	  will run faster if you say N here.
1684
1685	  People using multiprocessor machines who say Y here should also say
1686	  Y to "Enhanced Real Time Clock Support", below.
1687
1688	  See also the SMP-HOWTO available at
1689	  <http://www.tldp.org/docs.html#howto>.
1690
1691	  If you don't know what to do here, say N.
1692
1693config SMP_UP
1694	bool
1695
1696config SYS_SUPPORTS_SMP
1697	bool
1698
1699config NR_CPUS_DEFAULT_1
1700	bool
1701
1702config NR_CPUS_DEFAULT_2
1703	bool
1704
1705config NR_CPUS_DEFAULT_4
1706	bool
1707
1708config NR_CPUS_DEFAULT_8
1709	bool
1710
1711config NR_CPUS_DEFAULT_16
1712	bool
1713
1714config NR_CPUS_DEFAULT_32
1715	bool
1716
1717config NR_CPUS_DEFAULT_64
1718	bool
1719
1720config NR_CPUS
1721	int "Maximum number of CPUs (2-64)"
1722	range 1 64 if NR_CPUS_DEFAULT_1
1723	depends on SMP
1724	default "1" if NR_CPUS_DEFAULT_1
1725	default "2" if NR_CPUS_DEFAULT_2
1726	default "4" if NR_CPUS_DEFAULT_4
1727	default "8" if NR_CPUS_DEFAULT_8
1728	default "16" if NR_CPUS_DEFAULT_16
1729	default "32" if NR_CPUS_DEFAULT_32
1730	default "64" if NR_CPUS_DEFAULT_64
1731	help
1732	  This allows you to specify the maximum number of CPUs which this
1733	  kernel will support.  The maximum supported value is 32 for 32-bit
1734	  kernel and 64 for 64-bit kernels; the minimum value which makes
1735	  sense is 1 for Qemu (useful only for kernel debugging purposes)
1736	  and 2 for all others.
1737
1738	  This is purely to save memory - each supported CPU adds
1739	  approximately eight kilobytes to the kernel image.  For best
1740	  performance should round up your number of processors to the next
1741	  power of two.
1742
1743config MIPS_CMP
1744	bool "MIPS CMP framework support"
1745	depends on SMP
1746	select SYNC_R4K
1747	select SYS_SUPPORTS_SCHED_SMT
1748	select WEAK_ORDERING
1749	default n
1750	help
1751	  This is a placeholder option for the GCMP work. It will need to
1752	  be handled differently...
1753
1754source "kernel/time/Kconfig"
1755
1756#
1757# Timer Interrupt Frequency Configuration
1758#
1759
1760choice
1761	prompt "Timer frequency"
1762	default HZ_250
1763	help
1764	 Allows the configuration of the timer frequency.
1765
1766	config HZ_48
1767		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
1768
1769	config HZ_100
1770		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
1771
1772	config HZ_128
1773		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
1774
1775	config HZ_250
1776		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
1777
1778	config HZ_256
1779		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
1780
1781	config HZ_1000
1782		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
1783
1784	config HZ_1024
1785		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
1786
1787endchoice
1788
1789config SYS_SUPPORTS_48HZ
1790	bool
1791
1792config SYS_SUPPORTS_100HZ
1793	bool
1794
1795config SYS_SUPPORTS_128HZ
1796	bool
1797
1798config SYS_SUPPORTS_250HZ
1799	bool
1800
1801config SYS_SUPPORTS_256HZ
1802	bool
1803
1804config SYS_SUPPORTS_1000HZ
1805	bool
1806
1807config SYS_SUPPORTS_1024HZ
1808	bool
1809
1810config SYS_SUPPORTS_ARBIT_HZ
1811	bool
1812	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
1813		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
1814		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
1815		     !SYS_SUPPORTS_1024HZ
1816
1817config HZ
1818	int
1819	default 48 if HZ_48
1820	default 100 if HZ_100
1821	default 128 if HZ_128
1822	default 250 if HZ_250
1823	default 256 if HZ_256
1824	default 1000 if HZ_1000
1825	default 1024 if HZ_1024
1826
1827source "kernel/Kconfig.preempt"
1828
1829config MIPS_INSANE_LARGE
1830	bool "Support for large 64-bit configurations"
1831	depends on CPU_R10000 && 64BIT
1832	help
1833	  MIPS R10000 does support a 44 bit / 16TB address space as opposed to
1834	  previous 64-bit processors which only supported 40 bit / 1TB. If you
1835	  need processes of more than 1TB virtual address space, say Y here.
1836	  This will result in additional memory usage, so it is not
1837	  recommended for normal users.
1838
1839config KEXEC
1840	bool "Kexec system call (EXPERIMENTAL)"
1841	depends on EXPERIMENTAL
1842	help
1843	  kexec is a system call that implements the ability to shutdown your
1844	  current kernel, and to start another kernel.  It is like a reboot
1845	  but it is independent of the system firmware.   And like a reboot
1846	  you can start any kernel with it, not just Linux.
1847
1848	  The name comes from the similarity to the exec system call.
1849
1850	  It is an ongoing process to be certain the hardware in a machine
1851	  is properly shutdown, so do not be surprised if this code does not
1852	  initially work for you.  It may help to enable device hotplugging
1853	  support.  As of this writing the exact hardware interface is
1854	  strongly in flux, so no good recommendation can be made.
1855
1856config SECCOMP
1857	bool "Enable seccomp to safely compute untrusted bytecode"
1858	depends on PROC_FS
1859	default y
1860	help
1861	  This kernel feature is useful for number crunching applications
1862	  that may need to compute untrusted bytecode during their
1863	  execution. By using pipes or other transports made available to
1864	  the process as file descriptors supporting the read/write
1865	  syscalls, it's possible to isolate those applications in
1866	  their own address space using seccomp. Once seccomp is
1867	  enabled via /proc/<pid>/seccomp, it cannot be disabled
1868	  and the task is only allowed to execute a few safe syscalls
1869	  defined by each seccomp mode.
1870
1871	  If unsure, say Y. Only embedded should say N here.
1872
1873endmenu
1874
1875config RWSEM_GENERIC_SPINLOCK
1876	bool
1877	default y
1878
1879config LOCKDEP_SUPPORT
1880	bool
1881	default y
1882
1883config STACKTRACE_SUPPORT
1884	bool
1885	default y
1886
1887source "init/Kconfig"
1888
1889config PROBE_INITRD_HEADER
1890	bool "Probe initrd header created by addinitrd"
1891	depends on BLK_DEV_INITRD
1892	help
1893	  Probe initrd header at the last page of kernel image.
1894	  Say Y here if you are using arch/mips/boot/addinitrd.c to
1895	  add initrd or initramfs image to the kernel image.
1896	  Otherwise, say N.
1897
1898menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1899
1900config HW_HAS_EISA
1901	bool
1902config HW_HAS_PCI
1903	bool
1904
1905config PCI
1906	bool "Support for PCI controller"
1907	depends on HW_HAS_PCI
1908	select PCI_DOMAINS
1909	help
1910	  Find out whether you have a PCI motherboard. PCI is the name of a
1911	  bus system, i.e. the way the CPU talks to the other stuff inside
1912	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
1913	  say Y, otherwise N.
1914
1915config PCI_DOMAINS
1916	bool
1917
1918source "drivers/pci/Kconfig"
1919
1920#
1921# ISA support is now enabled via select.  Too many systems still have the one
1922# or other ISA chip on the board that users don't know about so don't expect
1923# users to choose the right thing ...
1924#
1925config ISA
1926	bool
1927
1928config EISA
1929	bool "EISA support"
1930	depends on HW_HAS_EISA
1931	select ISA
1932	select GENERIC_ISA_DMA
1933	---help---
1934	  The Extended Industry Standard Architecture (EISA) bus was
1935	  developed as an open alternative to the IBM MicroChannel bus.
1936
1937	  The EISA bus provided some of the features of the IBM MicroChannel
1938	  bus while maintaining backward compatibility with cards made for
1939	  the older ISA bus.  The EISA bus saw limited use between 1988 and
1940	  1995 when it was made obsolete by the PCI bus.
1941
1942	  Say Y here if you are building a kernel for an EISA-based machine.
1943
1944	  Otherwise, say N.
1945
1946source "drivers/eisa/Kconfig"
1947
1948config TC
1949	bool "TURBOchannel support"
1950	depends on MACH_DECSTATION
1951	help
1952	  TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
1953	  processors.  Documentation on writing device drivers for TurboChannel
1954	  is available at:
1955	  <http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3HD-TET1_html/TITLE.html>.
1956
1957#config ACCESSBUS
1958#	bool "Access.Bus support"
1959#	depends on TC
1960
1961config MMU
1962	bool
1963	default y
1964
1965config I8253
1966	bool
1967
1968config ZONE_DMA32
1969	bool
1970
1971source "drivers/pcmcia/Kconfig"
1972
1973source "drivers/pci/hotplug/Kconfig"
1974
1975endmenu
1976
1977menu "Executable file formats"
1978
1979source "fs/Kconfig.binfmt"
1980
1981config TRAD_SIGNALS
1982	bool
1983
1984config MIPS32_COMPAT
1985	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
1986	depends on 64BIT
1987	help
1988	  Select this option if you want Linux/MIPS 32-bit binary
1989	  compatibility. Since all software available for Linux/MIPS is
1990	  currently 32-bit you should say Y here.
1991
1992config COMPAT
1993	bool
1994	depends on MIPS32_COMPAT
1995	default y
1996
1997config SYSVIPC_COMPAT
1998	bool
1999	depends on COMPAT && SYSVIPC
2000	default y
2001
2002config MIPS32_O32
2003	bool "Kernel support for o32 binaries"
2004	depends on MIPS32_COMPAT
2005	help
2006	  Select this option if you want to run o32 binaries.  These are pure
2007	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2008	  existing binaries are in this format.
2009
2010	  If unsure, say Y.
2011
2012config MIPS32_N32
2013	bool "Kernel support for n32 binaries"
2014	depends on MIPS32_COMPAT
2015	help
2016	  Select this option if you want to run n32 binaries.  These are
2017	  64-bit binaries using 32-bit quantities for addressing and certain
2018	  data that would normally be 64-bit.  They are used in special
2019	  cases.
2020
2021	  If unsure, say N.
2022
2023config BINFMT_ELF32
2024	bool
2025	default y if MIPS32_O32 || MIPS32_N32
2026
2027endmenu
2028
2029menu "Power management options"
2030
2031config ARCH_SUSPEND_POSSIBLE
2032	def_bool y
2033	depends on !SMP
2034
2035source "kernel/power/Kconfig"
2036
2037endmenu
2038
2039source "net/Kconfig"
2040
2041source "drivers/Kconfig"
2042
2043source "fs/Kconfig"
2044
2045source "arch/mips/Kconfig.debug"
2046
2047source "security/Kconfig"
2048
2049source "crypto/Kconfig"
2050
2051source "lib/Kconfig"
2052