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