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