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