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