xref: /openbmc/linux/arch/mips/Kconfig (revision c21b37f6)
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
1193#
1194# CPU may reorder R->R, R->W, W->R, W->W
1195# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1196#
1197config WEAK_ORDERING
1198	bool
1199
1200#
1201# CPU may reorder reads and writes beyond LL/SC
1202# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1203#
1204config WEAK_REORDERING_BEYOND_LLSC
1205	bool
1206endmenu
1207
1208#
1209# These two indicate any level of the MIPS32 and MIPS64 architecture
1210#
1211config CPU_MIPS32
1212	bool
1213	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1214
1215config CPU_MIPS64
1216	bool
1217	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1218
1219#
1220# These two indicate the revision of the architecture, either Release 1 or Release 2
1221#
1222config CPU_MIPSR1
1223	bool
1224	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1225
1226config CPU_MIPSR2
1227	bool
1228	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2
1229
1230config SYS_SUPPORTS_32BIT_KERNEL
1231	bool
1232config SYS_SUPPORTS_64BIT_KERNEL
1233	bool
1234config CPU_SUPPORTS_32BIT_KERNEL
1235	bool
1236config CPU_SUPPORTS_64BIT_KERNEL
1237	bool
1238
1239menu "Kernel type"
1240
1241choice
1242
1243	prompt "Kernel code model"
1244	help
1245	  You should only select this option if you have a workload that
1246	  actually benefits from 64-bit processing or if your machine has
1247	  large memory.  You will only be presented a single option in this
1248	  menu if your system does not support both 32-bit and 64-bit kernels.
1249
1250config 32BIT
1251	bool "32-bit kernel"
1252	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1253	select TRAD_SIGNALS
1254	help
1255	  Select this option if you want to build a 32-bit kernel.
1256config 64BIT
1257	bool "64-bit kernel"
1258	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1259	help
1260	  Select this option if you want to build a 64-bit kernel.
1261
1262endchoice
1263
1264choice
1265	prompt "Kernel page size"
1266	default PAGE_SIZE_4KB
1267
1268config PAGE_SIZE_4KB
1269	bool "4kB"
1270	help
1271	 This option select the standard 4kB Linux page size.  On some
1272	 R3000-family processors this is the only available page size.  Using
1273	 4kB page size will minimize memory consumption and is therefore
1274	 recommended for low memory systems.
1275
1276config PAGE_SIZE_8KB
1277	bool "8kB"
1278	depends on EXPERIMENTAL && CPU_R8000
1279	help
1280	  Using 8kB page size will result in higher performance kernel at
1281	  the price of higher memory consumption.  This option is available
1282	  only on the R8000 processor.  Not that at the time of this writing
1283	  this option is still high experimental; there are also issues with
1284	  compatibility of user applications.
1285
1286config PAGE_SIZE_16KB
1287	bool "16kB"
1288	depends on !CPU_R3000 && !CPU_TX39XX
1289	help
1290	  Using 16kB page size will result in higher performance kernel at
1291	  the price of higher memory consumption.  This option is available on
1292	  all non-R3000 family processors.  Note that you will need a suitable
1293	  Linux distribution to support this.
1294
1295config PAGE_SIZE_64KB
1296	bool "64kB"
1297	depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1298	help
1299	  Using 64kB page size will result in higher performance kernel at
1300	  the price of higher memory consumption.  This option is available on
1301	  all non-R3000 family processor.  Not that at the time of this
1302	  writing this option is still high experimental.
1303
1304endchoice
1305
1306config BOARD_SCACHE
1307	bool
1308
1309config IP22_CPU_SCACHE
1310	bool
1311	select BOARD_SCACHE
1312
1313#
1314# Support for a MIPS32 / MIPS64 style S-caches
1315#
1316config MIPS_CPU_SCACHE
1317	bool
1318	select BOARD_SCACHE
1319
1320config R5000_CPU_SCACHE
1321	bool
1322	select BOARD_SCACHE
1323
1324config RM7000_CPU_SCACHE
1325	bool
1326	select BOARD_SCACHE
1327
1328config SIBYTE_DMA_PAGEOPS
1329	bool "Use DMA to clear/copy pages"
1330	depends on CPU_SB1
1331	help
1332	  Instead of using the CPU to zero and copy pages, use a Data Mover
1333	  channel.  These DMA channels are otherwise unused by the standard
1334	  SiByte Linux port.  Seems to give a small performance benefit.
1335
1336config CPU_HAS_PREFETCH
1337	bool
1338
1339choice
1340	prompt "MIPS MT options"
1341
1342config MIPS_MT_DISABLED
1343	bool "Disable multithreading support."
1344	help
1345	  Use this option if your workload can't take advantage of
1346	  MIPS hardware multithreading support.  On systems that don't have
1347	  the option of an MT-enabled processor this option will be the only
1348	  option in this menu.
1349
1350config MIPS_MT_SMP
1351	bool "Use 1 TC on each available VPE for SMP"
1352	depends on SYS_SUPPORTS_MULTITHREADING
1353	select CPU_MIPSR2_IRQ_VI
1354	select CPU_MIPSR2_IRQ_EI
1355	select CPU_MIPSR2_SRS
1356	select MIPS_MT
1357	select NR_CPUS_DEFAULT_2
1358	select SMP
1359	select SYS_SUPPORTS_SMP
1360	help
1361	  This is a kernel model which is also known a VSMP or lately
1362	  has been marketesed into SMVP.
1363
1364config MIPS_MT_SMTC
1365	bool "SMTC: Use all TCs on all VPEs for SMP"
1366	depends on CPU_MIPS32_R2
1367	#depends on CPU_MIPS64_R2		# once there is hardware ...
1368	depends on SYS_SUPPORTS_MULTITHREADING
1369	select CPU_MIPSR2_IRQ_VI
1370	select CPU_MIPSR2_IRQ_EI
1371	select CPU_MIPSR2_SRS
1372	select MIPS_MT
1373	select NR_CPUS_DEFAULT_8
1374	select SMP
1375	select SYS_SUPPORTS_SMP
1376	help
1377	  This is a kernel model which is known a SMTC or lately has been
1378	  marketesed into SMVP.
1379
1380config MIPS_VPE_LOADER
1381	bool "VPE loader support."
1382	depends on SYS_SUPPORTS_MULTITHREADING
1383	select CPU_MIPSR2_IRQ_VI
1384	select CPU_MIPSR2_IRQ_EI
1385	select CPU_MIPSR2_SRS
1386	select MIPS_MT
1387	help
1388	  Includes a loader for loading an elf relocatable object
1389	  onto another VPE and running it.
1390
1391endchoice
1392
1393config MIPS_MT
1394	bool
1395
1396config SYS_SUPPORTS_MULTITHREADING
1397	bool
1398
1399config MIPS_MT_FPAFF
1400	bool "Dynamic FPU affinity for FP-intensive threads"
1401	depends on MIPS_MT
1402	default y
1403
1404config MIPS_MT_SMTC_INSTANT_REPLAY
1405	bool "Low-latency Dispatch of Deferred SMTC IPIs"
1406	depends on MIPS_MT_SMTC && !PREEMPT
1407	default y
1408	help
1409	  SMTC pseudo-interrupts between TCs are deferred and queued
1410	  if the target TC is interrupt-inhibited (IXMT). In the first
1411	  SMTC prototypes, these queued IPIs were serviced on return
1412	  to user mode, or on entry into the kernel idle loop. The
1413	  INSTANT_REPLAY option dispatches them as part of local_irq_restore()
1414	  processing, which adds runtime overhead (hence the option to turn
1415	  it off), but ensures that IPIs are handled promptly even under
1416	  heavy I/O interrupt load.
1417
1418config MIPS_MT_SMTC_IM_BACKSTOP
1419	bool "Use per-TC register bits as backstop for inhibited IM bits"
1420	depends on MIPS_MT_SMTC
1421	default y
1422	help
1423	  To support multiple TC microthreads acting as "CPUs" within
1424	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1425	  during interrupt handling. To support legacy drivers and interrupt
1426	  controller management code, SMTC has a "backstop" to track and
1427	  if necessary restore the interrupt mask. This has some performance
1428	  impact on interrupt service overhead. Disable it only if you know
1429	  what you are doing.
1430
1431config MIPS_VPE_LOADER_TOM
1432	bool "Load VPE program into memory hidden from linux"
1433	depends on MIPS_VPE_LOADER
1434	default y
1435	help
1436	  The loader can use memory that is present but has been hidden from
1437	  Linux using the kernel command line option "mem=xxMB". It's up to
1438	  you to ensure the amount you put in the option and the space your
1439	  program requires is less or equal to the amount physically present.
1440
1441# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1442config MIPS_VPE_APSP_API
1443	bool "Enable support for AP/SP API (RTLX)"
1444	depends on MIPS_VPE_LOADER
1445	help
1446
1447config MIPS_APSP_KSPD
1448	bool "Enable KSPD"
1449	depends on MIPS_VPE_APSP_API
1450	default y
1451	help
1452	  KSPD is a kernel daemon that accepts syscall requests from the SP
1453	  side, actions them and returns the results. It also handles the
1454	  "exit" syscall notifying other kernel modules the SP program is
1455	  exiting.  You probably want to say yes here.
1456
1457config SB1_PASS_1_WORKAROUNDS
1458	bool
1459	depends on CPU_SB1_PASS_1
1460	default y
1461
1462config SB1_PASS_2_WORKAROUNDS
1463	bool
1464	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1465	default y
1466
1467config SB1_PASS_2_1_WORKAROUNDS
1468	bool
1469	depends on CPU_SB1 && CPU_SB1_PASS_2
1470	default y
1471
1472config 64BIT_PHYS_ADDR
1473	bool "Support for 64-bit physical address space"
1474	depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT
1475
1476config CPU_HAS_LLSC
1477	bool
1478
1479config CPU_HAS_SMARTMIPS
1480	depends on SYS_SUPPORTS_SMARTMIPS
1481	bool "Support for the SmartMIPS ASE"
1482	help
1483	  SmartMIPS is a extension of the MIPS32 architecture aimed at
1484	  increased security at both hardware and software level for
1485	  smartcards.  Enabling this option will allow proper use of the
1486	  SmartMIPS instructions by Linux applications.  However a kernel with
1487	  this option will not work on a MIPS core without SmartMIPS core.  If
1488	  you don't know you probably don't have SmartMIPS and should say N
1489	  here.
1490
1491config CPU_HAS_WB
1492	bool
1493
1494config 64BIT_CONTEXT
1495	bool "Save 64bit integer registers"
1496	depends on 32BIT && CPU_LOONGSON2
1497	help
1498	  Loongson2 CPU is 64bit , when used in 32BIT mode, its integer
1499	  registers can still be accessed as 64bit, mainly for multimedia
1500	  instructions. We must have all 64bit save/restored to make sure
1501	  those instructions to get correct result.
1502
1503#
1504# Vectored interrupt mode is an R2 feature
1505#
1506config CPU_MIPSR2_IRQ_VI
1507	bool
1508
1509#
1510# Extended interrupt mode is an R2 feature
1511#
1512config CPU_MIPSR2_IRQ_EI
1513	bool
1514
1515#
1516# Shadow registers are an R2 feature
1517#
1518config CPU_MIPSR2_SRS
1519	bool
1520
1521config CPU_HAS_SYNC
1522	bool
1523	depends on !CPU_R3000
1524	default y
1525
1526#
1527# Use the generic interrupt handling code in kernel/irq/:
1528#
1529config GENERIC_HARDIRQS
1530	bool
1531	default y
1532
1533config GENERIC_IRQ_PROBE
1534	bool
1535	default y
1536
1537config IRQ_PER_CPU
1538	bool
1539
1540#
1541# - Highmem only makes sense for the 32-bit kernel.
1542# - The current highmem code will only work properly on physically indexed
1543#   caches such as R3000, SB1, R7000 or those that look like they're virtually
1544#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
1545#   moment we protect the user and offer the highmem option only on machines
1546#   where it's known to be safe.  This will not offer highmem on a few systems
1547#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1548#   indexed CPUs but we're playing safe.
1549# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1550#   know they might have memory configurations that could make use of highmem
1551#   support.
1552#
1553config HIGHMEM
1554	bool "High Memory Support"
1555	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1556
1557config CPU_SUPPORTS_HIGHMEM
1558	bool
1559
1560config SYS_SUPPORTS_HIGHMEM
1561	bool
1562
1563config SYS_SUPPORTS_SMARTMIPS
1564	bool
1565
1566config ARCH_FLATMEM_ENABLE
1567	def_bool y
1568	depends on !NUMA
1569
1570config ARCH_DISCONTIGMEM_ENABLE
1571	bool
1572	default y if SGI_IP27
1573	help
1574	  Say Y to support efficient handling of discontiguous physical memory,
1575	  for architectures which are either NUMA (Non-Uniform Memory Access)
1576	  or have huge holes in the physical address space for other reasons.
1577	  See <file:Documentation/vm/numa> for more.
1578
1579config ARCH_SPARSEMEM_ENABLE
1580	bool
1581	select SPARSEMEM_STATIC
1582
1583config NUMA
1584	bool "NUMA Support"
1585	depends on SYS_SUPPORTS_NUMA
1586	help
1587	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
1588	  Access).  This option improves performance on systems with more
1589	  than two nodes; on two node systems it is generally better to
1590	  leave it disabled; on single node systems disable this option
1591	  disabled.
1592
1593config SYS_SUPPORTS_NUMA
1594	bool
1595
1596config NODES_SHIFT
1597	int
1598	default "6"
1599	depends on NEED_MULTIPLE_NODES
1600
1601source "mm/Kconfig"
1602
1603config SMP
1604	bool "Multi-Processing support"
1605	depends on SYS_SUPPORTS_SMP
1606	select IRQ_PER_CPU
1607	help
1608	  This enables support for systems with more than one CPU. If you have
1609	  a system with only one CPU, like most personal computers, say N. If
1610	  you have a system with more than one CPU, say Y.
1611
1612	  If you say N here, the kernel will run on single and multiprocessor
1613	  machines, but will use only one CPU of a multiprocessor machine. If
1614	  you say Y here, the kernel will run on many, but not all,
1615	  singleprocessor machines. On a singleprocessor machine, the kernel
1616	  will run faster if you say N here.
1617
1618	  People using multiprocessor machines who say Y here should also say
1619	  Y to "Enhanced Real Time Clock Support", below.
1620
1621	  See also the <file:Documentation/smp.txt> and the SMP-HOWTO
1622	  available at <http://www.tldp.org/docs.html#howto>.
1623
1624	  If you don't know what to do here, say N.
1625
1626config SYS_SUPPORTS_SMP
1627	bool
1628
1629config NR_CPUS_DEFAULT_1
1630	bool
1631
1632config NR_CPUS_DEFAULT_2
1633	bool
1634
1635config NR_CPUS_DEFAULT_4
1636	bool
1637
1638config NR_CPUS_DEFAULT_8
1639	bool
1640
1641config NR_CPUS_DEFAULT_16
1642	bool
1643
1644config NR_CPUS_DEFAULT_32
1645	bool
1646
1647config NR_CPUS_DEFAULT_64
1648	bool
1649
1650config NR_CPUS
1651	int "Maximum number of CPUs (2-64)"
1652	range 1 64 if NR_CPUS_DEFAULT_1
1653	depends on SMP
1654	default "1" if NR_CPUS_DEFAULT_1
1655	default "2" if NR_CPUS_DEFAULT_2
1656	default "4" if NR_CPUS_DEFAULT_4
1657	default "8" if NR_CPUS_DEFAULT_8
1658	default "16" if NR_CPUS_DEFAULT_16
1659	default "32" if NR_CPUS_DEFAULT_32
1660	default "64" if NR_CPUS_DEFAULT_64
1661	help
1662	  This allows you to specify the maximum number of CPUs which this
1663	  kernel will support.  The maximum supported value is 32 for 32-bit
1664	  kernel and 64 for 64-bit kernels; the minimum value which makes
1665	  sense is 1 for Qemu (useful only for kernel debugging purposes)
1666	  and 2 for all others.
1667
1668	  This is purely to save memory - each supported CPU adds
1669	  approximately eight kilobytes to the kernel image.  For best
1670	  performance should round up your number of processors to the next
1671	  power of two.
1672
1673#
1674# Timer Interrupt Frequency Configuration
1675#
1676
1677choice
1678	prompt "Timer frequency"
1679	default HZ_250
1680	help
1681	 Allows the configuration of the timer frequency.
1682
1683	config HZ_48
1684		bool "48 HZ" if SYS_SUPPORTS_48HZ
1685
1686	config HZ_100
1687		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
1688
1689	config HZ_128
1690		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
1691
1692	config HZ_250
1693		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
1694
1695	config HZ_256
1696		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
1697
1698	config HZ_1000
1699		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
1700
1701	config HZ_1024
1702		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
1703
1704endchoice
1705
1706config SYS_SUPPORTS_48HZ
1707	bool
1708
1709config SYS_SUPPORTS_100HZ
1710	bool
1711
1712config SYS_SUPPORTS_128HZ
1713	bool
1714
1715config SYS_SUPPORTS_250HZ
1716	bool
1717
1718config SYS_SUPPORTS_256HZ
1719	bool
1720
1721config SYS_SUPPORTS_1000HZ
1722	bool
1723
1724config SYS_SUPPORTS_1024HZ
1725	bool
1726
1727config SYS_SUPPORTS_ARBIT_HZ
1728	bool
1729	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
1730		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
1731		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
1732		     !SYS_SUPPORTS_1024HZ
1733
1734config HZ
1735	int
1736	default 48 if HZ_48
1737	default 100 if HZ_100
1738	default 128 if HZ_128
1739	default 250 if HZ_250
1740	default 256 if HZ_256
1741	default 1000 if HZ_1000
1742	default 1024 if HZ_1024
1743
1744source "kernel/Kconfig.preempt"
1745
1746config MIPS_INSANE_LARGE
1747	bool "Support for large 64-bit configurations"
1748	depends on CPU_R10000 && 64BIT
1749	help
1750	  MIPS R10000 does support a 44 bit / 16TB address space as opposed to
1751	  previous 64-bit processors which only supported 40 bit / 1TB. If you
1752	  need processes of more than 1TB virtual address space, say Y here.
1753	  This will result in additional memory usage, so it is not
1754	  recommended for normal users.
1755
1756config KEXEC
1757	bool "Kexec system call (EXPERIMENTAL)"
1758	depends on EXPERIMENTAL
1759	help
1760	  kexec is a system call that implements the ability to shutdown your
1761	  current kernel, and to start another kernel.  It is like a reboot
1762	  but it is independent of the system firmware.   And like a reboot
1763	  you can start any kernel with it, not just Linux.
1764
1765	  The name comes from the similiarity to the exec system call.
1766
1767	  It is an ongoing process to be certain the hardware in a machine
1768	  is properly shutdown, so do not be surprised if this code does not
1769	  initially work for you.  It may help to enable device hotplugging
1770	  support.  As of this writing the exact hardware interface is
1771	  strongly in flux, so no good recommendation can be made.
1772
1773config SECCOMP
1774	bool "Enable seccomp to safely compute untrusted bytecode"
1775	depends on PROC_FS && BROKEN
1776	default y
1777	help
1778	  This kernel feature is useful for number crunching applications
1779	  that may need to compute untrusted bytecode during their
1780	  execution. By using pipes or other transports made available to
1781	  the process as file descriptors supporting the read/write
1782	  syscalls, it's possible to isolate those applications in
1783	  their own address space using seccomp. Once seccomp is
1784	  enabled via /proc/<pid>/seccomp, it cannot be disabled
1785	  and the task is only allowed to execute a few safe syscalls
1786	  defined by each seccomp mode.
1787
1788	  If unsure, say Y. Only embedded should say N here.
1789
1790endmenu
1791
1792config RWSEM_GENERIC_SPINLOCK
1793	bool
1794	default y
1795
1796config LOCKDEP_SUPPORT
1797	bool
1798	default y
1799
1800config STACKTRACE_SUPPORT
1801	bool
1802	default y
1803
1804source "init/Kconfig"
1805
1806menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1807
1808config HW_HAS_EISA
1809	bool
1810config HW_HAS_PCI
1811	bool
1812
1813config PCI
1814	bool "Support for PCI controller"
1815	depends on HW_HAS_PCI
1816	help
1817	  Find out whether you have a PCI motherboard. PCI is the name of a
1818	  bus system, i.e. the way the CPU talks to the other stuff inside
1819	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
1820	  say Y, otherwise N.
1821
1822	  The PCI-HOWTO, available from
1823	  <http://www.tldp.org/docs.html#howto>, contains valuable
1824	  information about which PCI hardware does work under Linux and which
1825	  doesn't.
1826
1827config PCI_DOMAINS
1828	bool
1829	depends on PCI
1830
1831source "drivers/pci/Kconfig"
1832
1833#
1834# ISA support is now enabled via select.  Too many systems still have the one
1835# or other ISA chip on the board that users don't know about so don't expect
1836# users to choose the right thing ...
1837#
1838config ISA
1839	bool
1840
1841config EISA
1842	bool "EISA support"
1843	depends on HW_HAS_EISA
1844	select ISA
1845	select GENERIC_ISA_DMA
1846	---help---
1847	  The Extended Industry Standard Architecture (EISA) bus was
1848	  developed as an open alternative to the IBM MicroChannel bus.
1849
1850	  The EISA bus provided some of the features of the IBM MicroChannel
1851	  bus while maintaining backward compatibility with cards made for
1852	  the older ISA bus.  The EISA bus saw limited use between 1988 and
1853	  1995 when it was made obsolete by the PCI bus.
1854
1855	  Say Y here if you are building a kernel for an EISA-based machine.
1856
1857	  Otherwise, say N.
1858
1859source "drivers/eisa/Kconfig"
1860
1861config TC
1862	bool "TURBOchannel support"
1863	depends on MACH_DECSTATION
1864	help
1865	  TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
1866	  processors.  Documentation on writing device drivers for TurboChannel
1867	  is available at:
1868	  <http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3HD-TET1_html/TITLE.html>.
1869
1870#config ACCESSBUS
1871#	bool "Access.Bus support"
1872#	depends on TC
1873
1874config MMU
1875	bool
1876	default y
1877
1878config PCSPEAKER
1879	bool
1880
1881source "drivers/pcmcia/Kconfig"
1882
1883source "drivers/pci/hotplug/Kconfig"
1884
1885endmenu
1886
1887menu "Executable file formats"
1888
1889source "fs/Kconfig.binfmt"
1890
1891config TRAD_SIGNALS
1892	bool
1893
1894config BUILD_ELF64
1895	bool "Use 64-bit ELF format for building"
1896	depends on 64BIT
1897	help
1898	  A 64-bit kernel is usually built using the 64-bit ELF binary object
1899	  format as it's one that allows arbitrary 64-bit constructs.  For
1900	  kernels that are loaded within the KSEG compatibility segments the
1901	  32-bit ELF format can optionally be used resulting in a somewhat
1902	  smaller binary, but this option is not explicitly supported by the
1903	  toolchain and since binutils 2.14 it does not even work at all.
1904
1905	  Say Y to use the 64-bit format or N to use the 32-bit one.
1906
1907	  If unsure say Y.
1908
1909config BINFMT_IRIX
1910	bool "Include IRIX binary compatibility"
1911	depends on CPU_BIG_ENDIAN && 32BIT && BROKEN
1912
1913config MIPS32_COMPAT
1914	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
1915	depends on 64BIT
1916	help
1917	  Select this option if you want Linux/MIPS 32-bit binary
1918	  compatibility. Since all software available for Linux/MIPS is
1919	  currently 32-bit you should say Y here.
1920
1921config COMPAT
1922	bool
1923	depends on MIPS32_COMPAT
1924	default y
1925
1926config SYSVIPC_COMPAT
1927	bool
1928	depends on COMPAT && SYSVIPC
1929	default y
1930
1931config MIPS32_O32
1932	bool "Kernel support for o32 binaries"
1933	depends on MIPS32_COMPAT
1934	help
1935	  Select this option if you want to run o32 binaries.  These are pure
1936	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
1937	  existing binaries are in this format.
1938
1939	  If unsure, say Y.
1940
1941config MIPS32_N32
1942	bool "Kernel support for n32 binaries"
1943	depends on MIPS32_COMPAT
1944	help
1945	  Select this option if you want to run n32 binaries.  These are
1946	  64-bit binaries using 32-bit quantities for addressing and certain
1947	  data that would normally be 64-bit.  They are used in special
1948	  cases.
1949
1950	  If unsure, say N.
1951
1952config BINFMT_ELF32
1953	bool
1954	default y if MIPS32_O32 || MIPS32_N32
1955
1956endmenu
1957
1958menu "Power management options"
1959
1960source "kernel/power/Kconfig"
1961
1962endmenu
1963
1964source "net/Kconfig"
1965
1966source "drivers/Kconfig"
1967
1968source "fs/Kconfig"
1969
1970source "arch/mips/oprofile/Kconfig"
1971
1972source "arch/mips/Kconfig.debug"
1973
1974source "security/Kconfig"
1975
1976source "crypto/Kconfig"
1977
1978source "lib/Kconfig"
1979