xref: /linux/arch/mips/Kconfig (revision a5766f11cfd3a0c03450d99c8fe548c2940be884)
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 ARCH_REQUIRE_GPIOLIB
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/alchemy/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 RWSEM_GENERIC_SPINLOCK
614	bool
615	default y
616
617config RWSEM_XCHGADD_ALGORITHM
618	bool
619
620config ARCH_HAS_ILOG2_U32
621	bool
622	default n
623
624config ARCH_HAS_ILOG2_U64
625	bool
626	default n
627
628config ARCH_SUPPORTS_OPROFILE
629	bool
630	default y if !MIPS_MT_SMTC
631
632config GENERIC_FIND_NEXT_BIT
633	bool
634	default y
635
636config GENERIC_HWEIGHT
637	bool
638	default y
639
640config GENERIC_CALIBRATE_DELAY
641	bool
642	default y
643
644config GENERIC_CLOCKEVENTS
645	bool
646	default y
647
648config GENERIC_TIME
649	bool
650	default y
651
652config GENERIC_CMOS_UPDATE
653	bool
654	default y
655
656config SCHED_NO_NO_OMIT_FRAME_POINTER
657	bool
658	default y
659
660config GENERIC_HARDIRQS_NO__DO_IRQ
661	bool
662	default n
663
664#
665# Select some configuration options automatically based on user selections.
666#
667config ARC
668	bool
669
670config ARCH_MAY_HAVE_PC_FDC
671	bool
672
673config BOOT_RAW
674	bool
675
676config CEVT_BCM1480
677	bool
678
679config CEVT_DS1287
680	bool
681
682config CEVT_GT641XX
683	bool
684
685config CEVT_R4K
686	bool
687
688config CEVT_SB1250
689	bool
690
691config CEVT_TXX9
692	bool
693
694config CSRC_BCM1480
695	bool
696
697config CSRC_IOASIC
698	bool
699
700config CSRC_R4K
701	bool
702
703config CSRC_SB1250
704	bool
705
706config GPIO_TXX9
707	select GENERIC_GPIO
708	select ARCH_REQUIRE_GPIOLIB
709	bool
710
711config CFE
712	bool
713
714config DMA_COHERENT
715	bool
716
717config DMA_IP27
718	bool
719
720config DMA_NONCOHERENT
721	bool
722	select DMA_NEED_PCI_MAP_STATE
723
724config DMA_NEED_PCI_MAP_STATE
725	bool
726
727config EARLY_PRINTK
728	bool "Early printk" if EMBEDDED && DEBUG_KERNEL
729	depends on SYS_HAS_EARLY_PRINTK
730	default y
731	help
732	  This option enables special console drivers which allow the kernel
733	  to print messages very early in the bootup process.
734
735	  This is useful for kernel debugging when your machine crashes very
736	  early before the console code is initialized. For normal operation,
737	  it is not recommended because it looks ugly on some machines and
738	  doesn't cooperate with an X server. You should normally say N here,
739	  unless you want to debug such a crash.
740
741config SYS_HAS_EARLY_PRINTK
742	bool
743
744config HOTPLUG_CPU
745	bool
746	default n
747
748config I8259
749	bool
750
751config MIPS_BONITO64
752	bool
753
754config MIPS_MSC
755	bool
756
757config MIPS_NILE4
758	bool
759
760config MIPS_DISABLE_OBSOLETE_IDE
761	bool
762
763config SYNC_R4K
764	bool
765
766config NO_IOPORT
767	def_bool n
768
769config GENERIC_ISA_DMA
770	bool
771	select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
772
773config GENERIC_ISA_DMA_SUPPORT_BROKEN
774	bool
775	select GENERIC_ISA_DMA
776
777config GENERIC_GPIO
778	bool
779
780#
781# Endianess selection.  Sufficiently obscure so many users don't know what to
782# answer,so we try hard to limit the available choices.  Also the use of a
783# choice statement should be more obvious to the user.
784#
785choice
786	prompt "Endianess selection"
787	help
788	  Some MIPS machines can be configured for either little or big endian
789	  byte order. These modes require different kernels and a different
790	  Linux distribution.  In general there is one preferred byteorder for a
791	  particular system but some systems are just as commonly used in the
792	  one or the other endianness.
793
794config CPU_BIG_ENDIAN
795	bool "Big endian"
796	depends on SYS_SUPPORTS_BIG_ENDIAN
797
798config CPU_LITTLE_ENDIAN
799	bool "Little endian"
800	depends on SYS_SUPPORTS_LITTLE_ENDIAN
801	help
802
803endchoice
804
805config SYS_SUPPORTS_APM_EMULATION
806	bool
807
808config SYS_SUPPORTS_BIG_ENDIAN
809	bool
810
811config SYS_SUPPORTS_LITTLE_ENDIAN
812	bool
813
814config IRQ_CPU
815	bool
816
817config IRQ_CPU_RM7K
818	bool
819
820config IRQ_CPU_RM9K
821	bool
822
823config IRQ_MSP_SLP
824	bool
825
826config IRQ_MSP_CIC
827	bool
828
829config IRQ_TXX9
830	bool
831
832config IRQ_GT641XX
833	bool
834
835config IRQ_GIC
836	bool
837
838config MIPS_BOARDS_GEN
839	bool
840
841config PCI_GT64XXX_PCI0
842	bool
843
844config NO_EXCEPT_FILL
845	bool
846
847config MIPS_RM9122
848	bool
849	select SERIAL_RM9000
850
851config PNX8550
852	bool
853	select SOC_PNX8550
854
855config SOC_PNX8550
856	bool
857	select DMA_NONCOHERENT
858	select HW_HAS_PCI
859	select SYS_HAS_CPU_MIPS32_R1
860	select SYS_HAS_EARLY_PRINTK
861	select SYS_SUPPORTS_32BIT_KERNEL
862	select GENERIC_HARDIRQS_NO__DO_IRQ
863	select GENERIC_GPIO
864
865config SWAP_IO_SPACE
866	bool
867
868config EMMA2RH
869	bool
870	depends on MARKEINS
871	default y
872
873config SERIAL_RM9000
874	bool
875
876config SGI_HAS_DS1286
877	bool
878
879config SGI_HAS_INDYDOG
880	bool
881
882config SGI_HAS_HAL2
883	bool
884
885config SGI_HAS_SEEQ
886	bool
887
888config SGI_HAS_WD93
889	bool
890
891config SGI_HAS_ZILOG
892	bool
893
894config SGI_HAS_I8042
895	bool
896
897config DEFAULT_SGI_PARTITION
898	bool
899
900config ARC32
901	bool
902
903config SNIPROM
904	bool
905
906config BOOT_ELF32
907	bool
908
909config MIPS_L1_CACHE_SHIFT
910	int
911	default "4" if MACH_DECSTATION || MIKROTIK_RB532
912	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM
913	default "4" if PMC_MSP4200_EVAL
914	default "5"
915
916config HAVE_STD_PC_SERIAL_PORT
917	bool
918
919config ARC_CONSOLE
920	bool "ARC console support"
921	depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
922
923config ARC_MEMORY
924	bool
925	depends on MACH_JAZZ || SNI_RM || SGI_IP32
926	default y
927
928config ARC_PROMLIB
929	bool
930	depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
931	default y
932
933config ARC64
934	bool
935
936config BOOT_ELF64
937	bool
938
939menu "CPU selection"
940
941choice
942	prompt "CPU type"
943	default CPU_R4X00
944
945config CPU_LOONGSON2
946	bool "Loongson 2"
947	depends on SYS_HAS_CPU_LOONGSON2
948	select CPU_SUPPORTS_32BIT_KERNEL
949	select CPU_SUPPORTS_64BIT_KERNEL
950	select CPU_SUPPORTS_HIGHMEM
951	help
952	  The Loongson 2E processor implements the MIPS III instruction set
953	  with many extensions.
954
955config CPU_MIPS32_R1
956	bool "MIPS32 Release 1"
957	depends on SYS_HAS_CPU_MIPS32_R1
958	select CPU_HAS_LLSC
959	select CPU_HAS_PREFETCH
960	select CPU_SUPPORTS_32BIT_KERNEL
961	select CPU_SUPPORTS_HIGHMEM
962	help
963	  Choose this option to build a kernel for release 1 or later of the
964	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
965	  MIPS processor are based on a MIPS32 processor.  If you know the
966	  specific type of processor in your system, choose those that one
967	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
968	  Release 2 of the MIPS32 architecture is available since several
969	  years so chances are you even have a MIPS32 Release 2 processor
970	  in which case you should choose CPU_MIPS32_R2 instead for better
971	  performance.
972
973config CPU_MIPS32_R2
974	bool "MIPS32 Release 2"
975	depends on SYS_HAS_CPU_MIPS32_R2
976	select CPU_HAS_LLSC
977	select CPU_HAS_PREFETCH
978	select CPU_SUPPORTS_32BIT_KERNEL
979	select CPU_SUPPORTS_HIGHMEM
980	help
981	  Choose this option to build a kernel for release 2 or later of the
982	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
983	  MIPS processor are based on a MIPS32 processor.  If you know the
984	  specific type of processor in your system, choose those that one
985	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
986
987config CPU_MIPS64_R1
988	bool "MIPS64 Release 1"
989	depends on SYS_HAS_CPU_MIPS64_R1
990	select CPU_HAS_LLSC
991	select CPU_HAS_PREFETCH
992	select CPU_SUPPORTS_32BIT_KERNEL
993	select CPU_SUPPORTS_64BIT_KERNEL
994	select CPU_SUPPORTS_HIGHMEM
995	help
996	  Choose this option to build a kernel for release 1 or later of the
997	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
998	  MIPS processor are based on a MIPS64 processor.  If you know the
999	  specific type of processor in your system, choose those that one
1000	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1001	  Release 2 of the MIPS64 architecture is available since several
1002	  years so chances are you even have a MIPS64 Release 2 processor
1003	  in which case you should choose CPU_MIPS64_R2 instead for better
1004	  performance.
1005
1006config CPU_MIPS64_R2
1007	bool "MIPS64 Release 2"
1008	depends on SYS_HAS_CPU_MIPS64_R2
1009	select CPU_HAS_LLSC
1010	select CPU_HAS_PREFETCH
1011	select CPU_SUPPORTS_32BIT_KERNEL
1012	select CPU_SUPPORTS_64BIT_KERNEL
1013	select CPU_SUPPORTS_HIGHMEM
1014	help
1015	  Choose this option to build a kernel for release 2 or later of the
1016	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1017	  MIPS processor are based on a MIPS64 processor.  If you know the
1018	  specific type of processor in your system, choose those that one
1019	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1020
1021config CPU_R3000
1022	bool "R3000"
1023	depends on SYS_HAS_CPU_R3000
1024	select CPU_HAS_WB
1025	select CPU_SUPPORTS_32BIT_KERNEL
1026	select CPU_SUPPORTS_HIGHMEM
1027	help
1028	  Please make sure to pick the right CPU type. Linux/MIPS is not
1029	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1030	  *not* work on R4000 machines and vice versa.  However, since most
1031	  of the supported machines have an R4000 (or similar) CPU, R4x00
1032	  might be a safe bet.  If the resulting kernel does not work,
1033	  try to recompile with R3000.
1034
1035config CPU_TX39XX
1036	bool "R39XX"
1037	depends on SYS_HAS_CPU_TX39XX
1038	select CPU_SUPPORTS_32BIT_KERNEL
1039
1040config CPU_VR41XX
1041	bool "R41xx"
1042	depends on SYS_HAS_CPU_VR41XX
1043	select CPU_SUPPORTS_32BIT_KERNEL
1044	select CPU_SUPPORTS_64BIT_KERNEL
1045	help
1046	  The options selects support for the NEC VR4100 series of processors.
1047	  Only choose this option if you have one of these processors as a
1048	  kernel built with this option will not run on any other type of
1049	  processor or vice versa.
1050
1051config CPU_R4300
1052	bool "R4300"
1053	depends on SYS_HAS_CPU_R4300
1054	select CPU_HAS_LLSC
1055	select CPU_SUPPORTS_32BIT_KERNEL
1056	select CPU_SUPPORTS_64BIT_KERNEL
1057	help
1058	  MIPS Technologies R4300-series processors.
1059
1060config CPU_R4X00
1061	bool "R4x00"
1062	depends on SYS_HAS_CPU_R4X00
1063	select CPU_HAS_LLSC
1064	select CPU_SUPPORTS_32BIT_KERNEL
1065	select CPU_SUPPORTS_64BIT_KERNEL
1066	help
1067	  MIPS Technologies R4000-series processors other than 4300, including
1068	  the R4000, R4400, R4600, and 4700.
1069
1070config CPU_TX49XX
1071	bool "R49XX"
1072	depends on SYS_HAS_CPU_TX49XX
1073	select CPU_HAS_LLSC
1074	select CPU_HAS_PREFETCH
1075	select CPU_SUPPORTS_32BIT_KERNEL
1076	select CPU_SUPPORTS_64BIT_KERNEL
1077
1078config CPU_R5000
1079	bool "R5000"
1080	depends on SYS_HAS_CPU_R5000
1081	select CPU_HAS_LLSC
1082	select CPU_SUPPORTS_32BIT_KERNEL
1083	select CPU_SUPPORTS_64BIT_KERNEL
1084	help
1085	  MIPS Technologies R5000-series processors other than the Nevada.
1086
1087config CPU_R5432
1088	bool "R5432"
1089	depends on SYS_HAS_CPU_R5432
1090	select CPU_HAS_LLSC
1091	select CPU_SUPPORTS_32BIT_KERNEL
1092	select CPU_SUPPORTS_64BIT_KERNEL
1093
1094config CPU_R6000
1095	bool "R6000"
1096	depends on EXPERIMENTAL
1097	select CPU_HAS_LLSC
1098	depends on SYS_HAS_CPU_R6000
1099	select CPU_SUPPORTS_32BIT_KERNEL
1100	help
1101	  MIPS Technologies R6000 and R6000A series processors.  Note these
1102	  processors are extremely rare and the support for them is incomplete.
1103
1104config CPU_NEVADA
1105	bool "RM52xx"
1106	depends on SYS_HAS_CPU_NEVADA
1107	select CPU_HAS_LLSC
1108	select CPU_SUPPORTS_32BIT_KERNEL
1109	select CPU_SUPPORTS_64BIT_KERNEL
1110	help
1111	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1112
1113config CPU_R8000
1114	bool "R8000"
1115	depends on EXPERIMENTAL
1116	depends on SYS_HAS_CPU_R8000
1117	select CPU_HAS_LLSC
1118	select CPU_HAS_PREFETCH
1119	select CPU_SUPPORTS_64BIT_KERNEL
1120	help
1121	  MIPS Technologies R8000 processors.  Note these processors are
1122	  uncommon and the support for them is incomplete.
1123
1124config CPU_R10000
1125	bool "R10000"
1126	depends on SYS_HAS_CPU_R10000
1127	select CPU_HAS_LLSC
1128	select CPU_HAS_PREFETCH
1129	select CPU_SUPPORTS_32BIT_KERNEL
1130	select CPU_SUPPORTS_64BIT_KERNEL
1131	select CPU_SUPPORTS_HIGHMEM
1132	help
1133	  MIPS Technologies R10000-series processors.
1134
1135config CPU_RM7000
1136	bool "RM7000"
1137	depends on SYS_HAS_CPU_RM7000
1138	select CPU_HAS_LLSC
1139	select CPU_HAS_PREFETCH
1140	select CPU_SUPPORTS_32BIT_KERNEL
1141	select CPU_SUPPORTS_64BIT_KERNEL
1142	select CPU_SUPPORTS_HIGHMEM
1143
1144config CPU_RM9000
1145	bool "RM9000"
1146	depends on SYS_HAS_CPU_RM9000
1147	select CPU_HAS_LLSC
1148	select CPU_HAS_PREFETCH
1149	select CPU_SUPPORTS_32BIT_KERNEL
1150	select CPU_SUPPORTS_64BIT_KERNEL
1151	select CPU_SUPPORTS_HIGHMEM
1152	select WEAK_ORDERING
1153
1154config CPU_SB1
1155	bool "SB1"
1156	depends on SYS_HAS_CPU_SB1
1157	select CPU_HAS_LLSC
1158	select CPU_SUPPORTS_32BIT_KERNEL
1159	select CPU_SUPPORTS_64BIT_KERNEL
1160	select CPU_SUPPORTS_HIGHMEM
1161	select WEAK_ORDERING
1162
1163endchoice
1164
1165config SYS_HAS_CPU_LOONGSON2
1166	bool
1167
1168config SYS_HAS_CPU_MIPS32_R1
1169	bool
1170
1171config SYS_HAS_CPU_MIPS32_R2
1172	bool
1173
1174config SYS_HAS_CPU_MIPS64_R1
1175	bool
1176
1177config SYS_HAS_CPU_MIPS64_R2
1178	bool
1179
1180config SYS_HAS_CPU_R3000
1181	bool
1182
1183config SYS_HAS_CPU_TX39XX
1184	bool
1185
1186config SYS_HAS_CPU_VR41XX
1187	bool
1188
1189config SYS_HAS_CPU_R4300
1190	bool
1191
1192config SYS_HAS_CPU_R4X00
1193	bool
1194
1195config SYS_HAS_CPU_TX49XX
1196	bool
1197
1198config SYS_HAS_CPU_R5000
1199	bool
1200
1201config SYS_HAS_CPU_R5432
1202	bool
1203
1204config SYS_HAS_CPU_R6000
1205	bool
1206
1207config SYS_HAS_CPU_NEVADA
1208	bool
1209
1210config SYS_HAS_CPU_R8000
1211	bool
1212
1213config SYS_HAS_CPU_R10000
1214	bool
1215
1216config SYS_HAS_CPU_RM7000
1217	bool
1218
1219config SYS_HAS_CPU_RM9000
1220	bool
1221
1222config SYS_HAS_CPU_SB1
1223	bool
1224
1225#
1226# CPU may reorder R->R, R->W, W->R, W->W
1227# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1228#
1229config WEAK_ORDERING
1230	bool
1231
1232#
1233# CPU may reorder reads and writes beyond LL/SC
1234# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1235#
1236config WEAK_REORDERING_BEYOND_LLSC
1237	bool
1238endmenu
1239
1240#
1241# These two indicate any level of the MIPS32 and MIPS64 architecture
1242#
1243config CPU_MIPS32
1244	bool
1245	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1246
1247config CPU_MIPS64
1248	bool
1249	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1250
1251#
1252# These two indicate the revision of the architecture, either Release 1 or Release 2
1253#
1254config CPU_MIPSR1
1255	bool
1256	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1257
1258config CPU_MIPSR2
1259	bool
1260	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2
1261
1262config SYS_SUPPORTS_32BIT_KERNEL
1263	bool
1264config SYS_SUPPORTS_64BIT_KERNEL
1265	bool
1266config CPU_SUPPORTS_32BIT_KERNEL
1267	bool
1268config CPU_SUPPORTS_64BIT_KERNEL
1269	bool
1270
1271#
1272# Set to y for ptrace access to watch registers.
1273#
1274config HARDWARE_WATCHPOINTS
1275       bool
1276       default y if CPU_MIPS32 || CPU_MIPS64
1277
1278menu "Kernel type"
1279
1280choice
1281
1282	prompt "Kernel code model"
1283	help
1284	  You should only select this option if you have a workload that
1285	  actually benefits from 64-bit processing or if your machine has
1286	  large memory.  You will only be presented a single option in this
1287	  menu if your system does not support both 32-bit and 64-bit kernels.
1288
1289config 32BIT
1290	bool "32-bit kernel"
1291	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1292	select TRAD_SIGNALS
1293	help
1294	  Select this option if you want to build a 32-bit kernel.
1295config 64BIT
1296	bool "64-bit kernel"
1297	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1298	help
1299	  Select this option if you want to build a 64-bit kernel.
1300
1301endchoice
1302
1303choice
1304	prompt "Kernel page size"
1305	default PAGE_SIZE_4KB
1306
1307config PAGE_SIZE_4KB
1308	bool "4kB"
1309	help
1310	 This option select the standard 4kB Linux page size.  On some
1311	 R3000-family processors this is the only available page size.  Using
1312	 4kB page size will minimize memory consumption and is therefore
1313	 recommended for low memory systems.
1314
1315config PAGE_SIZE_8KB
1316	bool "8kB"
1317	depends on EXPERIMENTAL && CPU_R8000
1318	help
1319	  Using 8kB page size will result in higher performance kernel at
1320	  the price of higher memory consumption.  This option is available
1321	  only on the R8000 processor.  Not that at the time of this writing
1322	  this option is still high experimental; there are also issues with
1323	  compatibility of user applications.
1324
1325config PAGE_SIZE_16KB
1326	bool "16kB"
1327	depends on !CPU_R3000 && !CPU_TX39XX
1328	help
1329	  Using 16kB page size will result in higher performance kernel at
1330	  the price of higher memory consumption.  This option is available on
1331	  all non-R3000 family processors.  Note that you will need a suitable
1332	  Linux distribution to support this.
1333
1334config PAGE_SIZE_64KB
1335	bool "64kB"
1336	depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1337	help
1338	  Using 64kB page size will result in higher performance kernel at
1339	  the price of higher memory consumption.  This option is available on
1340	  all non-R3000 family processor.  Not that at the time of this
1341	  writing this option is still high experimental.
1342
1343endchoice
1344
1345config BOARD_SCACHE
1346	bool
1347
1348config IP22_CPU_SCACHE
1349	bool
1350	select BOARD_SCACHE
1351
1352#
1353# Support for a MIPS32 / MIPS64 style S-caches
1354#
1355config MIPS_CPU_SCACHE
1356	bool
1357	select BOARD_SCACHE
1358
1359config R5000_CPU_SCACHE
1360	bool
1361	select BOARD_SCACHE
1362
1363config RM7000_CPU_SCACHE
1364	bool
1365	select BOARD_SCACHE
1366
1367config SIBYTE_DMA_PAGEOPS
1368	bool "Use DMA to clear/copy pages"
1369	depends on CPU_SB1
1370	help
1371	  Instead of using the CPU to zero and copy pages, use a Data Mover
1372	  channel.  These DMA channels are otherwise unused by the standard
1373	  SiByte Linux port.  Seems to give a small performance benefit.
1374
1375config CPU_HAS_PREFETCH
1376	bool
1377
1378choice
1379	prompt "MIPS MT options"
1380
1381config MIPS_MT_DISABLED
1382	bool "Disable multithreading support."
1383	help
1384	  Use this option if your workload can't take advantage of
1385	  MIPS hardware multithreading support.  On systems that don't have
1386	  the option of an MT-enabled processor this option will be the only
1387	  option in this menu.
1388
1389config MIPS_MT_SMP
1390	bool "Use 1 TC on each available VPE for SMP"
1391	depends on SYS_SUPPORTS_MULTITHREADING
1392	select CPU_MIPSR2_IRQ_VI
1393	select CPU_MIPSR2_IRQ_EI
1394	select MIPS_MT
1395	select NR_CPUS_DEFAULT_2
1396	select SMP
1397	select SYS_SUPPORTS_SCHED_SMT if SMP
1398	select SYS_SUPPORTS_SMP
1399	select SMP_UP
1400	help
1401	  This is a kernel model which is also known a VSMP or lately
1402	  has been marketesed into SMVP.
1403
1404config MIPS_MT_SMTC
1405	bool "SMTC: Use all TCs on all VPEs for SMP"
1406	depends on CPU_MIPS32_R2
1407	#depends on CPU_MIPS64_R2		# once there is hardware ...
1408	depends on SYS_SUPPORTS_MULTITHREADING
1409	select CPU_MIPSR2_IRQ_VI
1410	select CPU_MIPSR2_IRQ_EI
1411	select MIPS_MT
1412	select NR_CPUS_DEFAULT_8
1413	select SMP
1414	select SYS_SUPPORTS_SMP
1415	select SMP_UP
1416	help
1417	  This is a kernel model which is known a SMTC or lately has been
1418	  marketesed into SMVP.
1419
1420endchoice
1421
1422config MIPS_MT
1423	bool
1424
1425config SCHED_SMT
1426	bool "SMT (multithreading) scheduler support"
1427	depends on SYS_SUPPORTS_SCHED_SMT
1428	default n
1429	help
1430	  SMT scheduler support improves the CPU scheduler's decision making
1431	  when dealing with MIPS MT enabled cores at a cost of slightly
1432	  increased overhead in some places. If unsure say N here.
1433
1434config SYS_SUPPORTS_SCHED_SMT
1435	bool
1436
1437
1438config SYS_SUPPORTS_MULTITHREADING
1439	bool
1440
1441config MIPS_MT_FPAFF
1442	bool "Dynamic FPU affinity for FP-intensive threads"
1443	default y
1444	depends on MIPS_MT_SMP || MIPS_MT_SMTC
1445
1446config MIPS_VPE_LOADER
1447	bool "VPE loader support."
1448	depends on SYS_SUPPORTS_MULTITHREADING
1449	select CPU_MIPSR2_IRQ_VI
1450	select CPU_MIPSR2_IRQ_EI
1451	select MIPS_MT
1452	help
1453	  Includes a loader for loading an elf relocatable object
1454	  onto another VPE and running it.
1455
1456config MIPS_MT_SMTC_IM_BACKSTOP
1457	bool "Use per-TC register bits as backstop for inhibited IM bits"
1458	depends on MIPS_MT_SMTC
1459	default n
1460	help
1461	  To support multiple TC microthreads acting as "CPUs" within
1462	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1463	  during interrupt handling. To support legacy drivers and interrupt
1464	  controller management code, SMTC has a "backstop" to track and
1465	  if necessary restore the interrupt mask. This has some performance
1466	  impact on interrupt service overhead.
1467
1468config MIPS_MT_SMTC_IRQAFF
1469	bool "Support IRQ affinity API"
1470	depends on MIPS_MT_SMTC
1471	default n
1472	help
1473	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1474	  for SMTC Linux kernel. Requires platform support, of which
1475	  an example can be found in the MIPS kernel i8259 and Malta
1476	  platform code.  Adds some overhead to interrupt dispatch, and
1477	  should be used only if you know what you are doing.
1478
1479config MIPS_VPE_LOADER_TOM
1480	bool "Load VPE program into memory hidden from linux"
1481	depends on MIPS_VPE_LOADER
1482	default y
1483	help
1484	  The loader can use memory that is present but has been hidden from
1485	  Linux using the kernel command line option "mem=xxMB". It's up to
1486	  you to ensure the amount you put in the option and the space your
1487	  program requires is less or equal to the amount physically present.
1488
1489# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1490config MIPS_VPE_APSP_API
1491	bool "Enable support for AP/SP API (RTLX)"
1492	depends on MIPS_VPE_LOADER
1493	help
1494
1495config MIPS_APSP_KSPD
1496	bool "Enable KSPD"
1497	depends on MIPS_VPE_APSP_API
1498	default y
1499	help
1500	  KSPD is a kernel daemon that accepts syscall requests from the SP
1501	  side, actions them and returns the results. It also handles the
1502	  "exit" syscall notifying other kernel modules the SP program is
1503	  exiting.  You probably want to say yes here.
1504
1505config MIPS_CMP
1506	bool "MIPS CMP framework support"
1507	depends on SYS_SUPPORTS_MIPS_CMP
1508	select SYNC_R4K if BROKEN
1509	select SYS_SUPPORTS_SMP
1510	select SYS_SUPPORTS_SCHED_SMT if SMP
1511	select WEAK_ORDERING
1512	default n
1513	help
1514	  This is a placeholder option for the GCMP work. It will need to
1515	  be handled differently...
1516
1517config SB1_PASS_1_WORKAROUNDS
1518	bool
1519	depends on CPU_SB1_PASS_1
1520	default y
1521
1522config SB1_PASS_2_WORKAROUNDS
1523	bool
1524	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1525	default y
1526
1527config SB1_PASS_2_1_WORKAROUNDS
1528	bool
1529	depends on CPU_SB1 && CPU_SB1_PASS_2
1530	default y
1531
1532config 64BIT_PHYS_ADDR
1533	bool
1534
1535config CPU_HAS_LLSC
1536	bool
1537
1538config CPU_HAS_SMARTMIPS
1539	depends on SYS_SUPPORTS_SMARTMIPS
1540	bool "Support for the SmartMIPS ASE"
1541	help
1542	  SmartMIPS is a extension of the MIPS32 architecture aimed at
1543	  increased security at both hardware and software level for
1544	  smartcards.  Enabling this option will allow proper use of the
1545	  SmartMIPS instructions by Linux applications.  However a kernel with
1546	  this option will not work on a MIPS core without SmartMIPS core.  If
1547	  you don't know you probably don't have SmartMIPS and should say N
1548	  here.
1549
1550config CPU_HAS_WB
1551	bool
1552
1553#
1554# Vectored interrupt mode is an R2 feature
1555#
1556config CPU_MIPSR2_IRQ_VI
1557	bool
1558
1559#
1560# Extended interrupt mode is an R2 feature
1561#
1562config CPU_MIPSR2_IRQ_EI
1563	bool
1564
1565config CPU_HAS_SYNC
1566	bool
1567	depends on !CPU_R3000
1568	default y
1569
1570config GENERIC_CLOCKEVENTS_BROADCAST
1571	bool
1572
1573#
1574# CPU non-features
1575#
1576config CPU_DADDI_WORKAROUNDS
1577	bool
1578
1579config CPU_R4000_WORKAROUNDS
1580	bool
1581	select CPU_R4400_WORKAROUNDS
1582
1583config CPU_R4400_WORKAROUNDS
1584	bool
1585
1586#
1587# Use the generic interrupt handling code in kernel/irq/:
1588#
1589config GENERIC_HARDIRQS
1590	bool
1591	default y
1592
1593config GENERIC_IRQ_PROBE
1594	bool
1595	default y
1596
1597config IRQ_PER_CPU
1598	bool
1599
1600#
1601# - Highmem only makes sense for the 32-bit kernel.
1602# - The current highmem code will only work properly on physically indexed
1603#   caches such as R3000, SB1, R7000 or those that look like they're virtually
1604#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
1605#   moment we protect the user and offer the highmem option only on machines
1606#   where it's known to be safe.  This will not offer highmem on a few systems
1607#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1608#   indexed CPUs but we're playing safe.
1609# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1610#   know they might have memory configurations that could make use of highmem
1611#   support.
1612#
1613config HIGHMEM
1614	bool "High Memory Support"
1615	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1616
1617config CPU_SUPPORTS_HIGHMEM
1618	bool
1619
1620config SYS_SUPPORTS_HIGHMEM
1621	bool
1622
1623config SYS_SUPPORTS_SMARTMIPS
1624	bool
1625
1626config ARCH_FLATMEM_ENABLE
1627	def_bool y
1628	depends on !NUMA
1629
1630config ARCH_DISCONTIGMEM_ENABLE
1631	bool
1632	default y if SGI_IP27
1633	help
1634	  Say Y to support efficient handling of discontiguous physical memory,
1635	  for architectures which are either NUMA (Non-Uniform Memory Access)
1636	  or have huge holes in the physical address space for other reasons.
1637	  See <file:Documentation/vm/numa> for more.
1638
1639config ARCH_POPULATES_NODE_MAP
1640	def_bool y
1641
1642config ARCH_SPARSEMEM_ENABLE
1643	bool
1644	select SPARSEMEM_STATIC
1645
1646config NUMA
1647	bool "NUMA Support"
1648	depends on SYS_SUPPORTS_NUMA
1649	help
1650	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
1651	  Access).  This option improves performance on systems with more
1652	  than two nodes; on two node systems it is generally better to
1653	  leave it disabled; on single node systems disable this option
1654	  disabled.
1655
1656config SYS_SUPPORTS_NUMA
1657	bool
1658
1659config NODES_SHIFT
1660	int
1661	default "6"
1662	depends on NEED_MULTIPLE_NODES
1663
1664source "mm/Kconfig"
1665
1666config SMP
1667	bool "Multi-Processing support"
1668	depends on SYS_SUPPORTS_SMP
1669	select IRQ_PER_CPU
1670	select USE_GENERIC_SMP_HELPERS
1671	help
1672	  This enables support for systems with more than one CPU. If you have
1673	  a system with only one CPU, like most personal computers, say N. If
1674	  you have a system with more than one CPU, say Y.
1675
1676	  If you say N here, the kernel will run on single and multiprocessor
1677	  machines, but will use only one CPU of a multiprocessor machine. If
1678	  you say Y here, the kernel will run on many, but not all,
1679	  singleprocessor machines. On a singleprocessor machine, the kernel
1680	  will run faster if you say N here.
1681
1682	  People using multiprocessor machines who say Y here should also say
1683	  Y to "Enhanced Real Time Clock Support", below.
1684
1685	  See also the SMP-HOWTO available at
1686	  <http://www.tldp.org/docs.html#howto>.
1687
1688	  If you don't know what to do here, say N.
1689
1690config SMP_UP
1691	bool
1692
1693config SYS_SUPPORTS_MIPS_CMP
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
1743source "kernel/time/Kconfig"
1744
1745#
1746# Timer Interrupt Frequency Configuration
1747#
1748
1749choice
1750	prompt "Timer frequency"
1751	default HZ_250
1752	help
1753	 Allows the configuration of the timer frequency.
1754
1755	config HZ_48
1756		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
1757
1758	config HZ_100
1759		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
1760
1761	config HZ_128
1762		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
1763
1764	config HZ_250
1765		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
1766
1767	config HZ_256
1768		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
1769
1770	config HZ_1000
1771		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
1772
1773	config HZ_1024
1774		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
1775
1776endchoice
1777
1778config SYS_SUPPORTS_48HZ
1779	bool
1780
1781config SYS_SUPPORTS_100HZ
1782	bool
1783
1784config SYS_SUPPORTS_128HZ
1785	bool
1786
1787config SYS_SUPPORTS_250HZ
1788	bool
1789
1790config SYS_SUPPORTS_256HZ
1791	bool
1792
1793config SYS_SUPPORTS_1000HZ
1794	bool
1795
1796config SYS_SUPPORTS_1024HZ
1797	bool
1798
1799config SYS_SUPPORTS_ARBIT_HZ
1800	bool
1801	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
1802		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
1803		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
1804		     !SYS_SUPPORTS_1024HZ
1805
1806config HZ
1807	int
1808	default 48 if HZ_48
1809	default 100 if HZ_100
1810	default 128 if HZ_128
1811	default 250 if HZ_250
1812	default 256 if HZ_256
1813	default 1000 if HZ_1000
1814	default 1024 if HZ_1024
1815
1816source "kernel/Kconfig.preempt"
1817
1818config MIPS_INSANE_LARGE
1819	bool "Support for large 64-bit configurations"
1820	depends on CPU_R10000 && 64BIT
1821	help
1822	  MIPS R10000 does support a 44 bit / 16TB address space as opposed to
1823	  previous 64-bit processors which only supported 40 bit / 1TB. If you
1824	  need processes of more than 1TB virtual address space, say Y here.
1825	  This will result in additional memory usage, so it is not
1826	  recommended for normal users.
1827
1828config KEXEC
1829	bool "Kexec system call (EXPERIMENTAL)"
1830	depends on EXPERIMENTAL
1831	help
1832	  kexec is a system call that implements the ability to shutdown your
1833	  current kernel, and to start another kernel.  It is like a reboot
1834	  but it is independent of the system firmware.   And like a reboot
1835	  you can start any kernel with it, not just Linux.
1836
1837	  The name comes from the similarity to the exec system call.
1838
1839	  It is an ongoing process to be certain the hardware in a machine
1840	  is properly shutdown, so do not be surprised if this code does not
1841	  initially work for you.  It may help to enable device hotplugging
1842	  support.  As of this writing the exact hardware interface is
1843	  strongly in flux, so no good recommendation can be made.
1844
1845config SECCOMP
1846	bool "Enable seccomp to safely compute untrusted bytecode"
1847	depends on PROC_FS
1848	default y
1849	help
1850	  This kernel feature is useful for number crunching applications
1851	  that may need to compute untrusted bytecode during their
1852	  execution. By using pipes or other transports made available to
1853	  the process as file descriptors supporting the read/write
1854	  syscalls, it's possible to isolate those applications in
1855	  their own address space using seccomp. Once seccomp is
1856	  enabled via /proc/<pid>/seccomp, it cannot be disabled
1857	  and the task is only allowed to execute a few safe syscalls
1858	  defined by each seccomp mode.
1859
1860	  If unsure, say Y. Only embedded should say N here.
1861
1862endmenu
1863
1864config RWSEM_GENERIC_SPINLOCK
1865	bool
1866	default y
1867
1868config LOCKDEP_SUPPORT
1869	bool
1870	default y
1871
1872config STACKTRACE_SUPPORT
1873	bool
1874	default y
1875
1876source "init/Kconfig"
1877
1878config PROBE_INITRD_HEADER
1879	bool "Probe initrd header created by addinitrd"
1880	depends on BLK_DEV_INITRD
1881	help
1882	  Probe initrd header at the last page of kernel image.
1883	  Say Y here if you are using arch/mips/boot/addinitrd.c to
1884	  add initrd or initramfs image to the kernel image.
1885	  Otherwise, say N.
1886
1887menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1888
1889config HW_HAS_EISA
1890	bool
1891config HW_HAS_PCI
1892	bool
1893
1894config PCI
1895	bool "Support for PCI controller"
1896	depends on HW_HAS_PCI
1897	select PCI_DOMAINS
1898	help
1899	  Find out whether you have a PCI motherboard. PCI is the name of a
1900	  bus system, i.e. the way the CPU talks to the other stuff inside
1901	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
1902	  say Y, otherwise N.
1903
1904config PCI_DOMAINS
1905	bool
1906
1907source "drivers/pci/Kconfig"
1908
1909#
1910# ISA support is now enabled via select.  Too many systems still have the one
1911# or other ISA chip on the board that users don't know about so don't expect
1912# users to choose the right thing ...
1913#
1914config ISA
1915	bool
1916
1917config EISA
1918	bool "EISA support"
1919	depends on HW_HAS_EISA
1920	select ISA
1921	select GENERIC_ISA_DMA
1922	---help---
1923	  The Extended Industry Standard Architecture (EISA) bus was
1924	  developed as an open alternative to the IBM MicroChannel bus.
1925
1926	  The EISA bus provided some of the features of the IBM MicroChannel
1927	  bus while maintaining backward compatibility with cards made for
1928	  the older ISA bus.  The EISA bus saw limited use between 1988 and
1929	  1995 when it was made obsolete by the PCI bus.
1930
1931	  Say Y here if you are building a kernel for an EISA-based machine.
1932
1933	  Otherwise, say N.
1934
1935source "drivers/eisa/Kconfig"
1936
1937config TC
1938	bool "TURBOchannel support"
1939	depends on MACH_DECSTATION
1940	help
1941	  TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
1942	  processors.  Documentation on writing device drivers for TurboChannel
1943	  is available at:
1944	  <http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3HD-TET1_html/TITLE.html>.
1945
1946#config ACCESSBUS
1947#	bool "Access.Bus support"
1948#	depends on TC
1949
1950config MMU
1951	bool
1952	default y
1953
1954config I8253
1955	bool
1956
1957config ZONE_DMA32
1958	bool
1959
1960source "drivers/pcmcia/Kconfig"
1961
1962source "drivers/pci/hotplug/Kconfig"
1963
1964endmenu
1965
1966menu "Executable file formats"
1967
1968source "fs/Kconfig.binfmt"
1969
1970config TRAD_SIGNALS
1971	bool
1972
1973config MIPS32_COMPAT
1974	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
1975	depends on 64BIT
1976	help
1977	  Select this option if you want Linux/MIPS 32-bit binary
1978	  compatibility. Since all software available for Linux/MIPS is
1979	  currently 32-bit you should say Y here.
1980
1981config COMPAT
1982	bool
1983	depends on MIPS32_COMPAT
1984	default y
1985
1986config SYSVIPC_COMPAT
1987	bool
1988	depends on COMPAT && SYSVIPC
1989	default y
1990
1991config MIPS32_O32
1992	bool "Kernel support for o32 binaries"
1993	depends on MIPS32_COMPAT
1994	help
1995	  Select this option if you want to run o32 binaries.  These are pure
1996	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
1997	  existing binaries are in this format.
1998
1999	  If unsure, say Y.
2000
2001config MIPS32_N32
2002	bool "Kernel support for n32 binaries"
2003	depends on MIPS32_COMPAT
2004	help
2005	  Select this option if you want to run n32 binaries.  These are
2006	  64-bit binaries using 32-bit quantities for addressing and certain
2007	  data that would normally be 64-bit.  They are used in special
2008	  cases.
2009
2010	  If unsure, say N.
2011
2012config BINFMT_ELF32
2013	bool
2014	default y if MIPS32_O32 || MIPS32_N32
2015
2016endmenu
2017
2018menu "Power management options"
2019
2020config ARCH_SUSPEND_POSSIBLE
2021	def_bool y
2022	depends on !SMP
2023
2024source "kernel/power/Kconfig"
2025
2026endmenu
2027
2028source "net/Kconfig"
2029
2030source "drivers/Kconfig"
2031
2032source "fs/Kconfig"
2033
2034source "arch/mips/Kconfig.debug"
2035
2036source "security/Kconfig"
2037
2038source "crypto/Kconfig"
2039
2040source "lib/Kconfig"
2041