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