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