• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1config MIPS
2	bool
3	default y
4	select HAVE_GENERIC_DMA_COHERENT
5	select HAVE_IDE
6	select HAVE_OPROFILE
7	select HAVE_IRQ_WORK
8	select HAVE_PERF_EVENTS
9	select PERF_USE_VMALLOC
10	select HAVE_ARCH_KGDB
11	select HAVE_ARCH_SECCOMP_FILTER
12	select HAVE_ARCH_TRACEHOOK
13	select HAVE_FUNCTION_TRACER
14	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
15	select HAVE_DYNAMIC_FTRACE
16	select HAVE_FTRACE_MCOUNT_RECORD
17	select HAVE_C_RECORDMCOUNT
18	select HAVE_FUNCTION_GRAPH_TRACER
19	select HAVE_KPROBES
20	select HAVE_KRETPROBES
21	select HAVE_SYSCALL_TRACEPOINTS
22	select ARCH_BINFMT_ELF_RANDOMIZE_PIE
23	select RTC_LIB if !MACH_LOONGSON
24	select GENERIC_ATOMIC64 if !64BIT
25	select HAVE_DMA_ATTRS
26	select HAVE_DMA_API_DEBUG
27	select HAVE_GENERIC_HARDIRQS
28	select GENERIC_IRQ_PROBE
29	select GENERIC_IRQ_SHOW
30	select GENERIC_PCI_IOMAP
31	select HAVE_ARCH_JUMP_LABEL
32	select IRQ_FORCED_THREADING
33	select HAVE_MEMBLOCK
34	select HAVE_MEMBLOCK_NODE_MAP
35	select ARCH_DISCARD_MEMBLOCK
36
37menu "Machine selection"
38
39config ZONE_DMA
40	bool
41
42choice
43	prompt "System type"
44	default SGI_IP22
45
46config MIPS_ALCHEMY
47	bool "Alchemy processor based machines"
48	select 64BIT_PHYS_ADDR
49	select CEVT_R4K_LIB
50	select CSRC_R4K_LIB
51	select IRQ_CPU
52	select SYS_HAS_CPU_MIPS32_R1
53	select SYS_SUPPORTS_32BIT_KERNEL
54	select SYS_SUPPORTS_APM_EMULATION
55	select GENERIC_GPIO
56	select ARCH_WANT_OPTIONAL_GPIOLIB
57	select SYS_SUPPORTS_ZBOOT
58	select USB_ARCH_HAS_OHCI
59	select USB_ARCH_HAS_EHCI
60
61config AR7
62	bool "Texas Instruments AR7"
63	select BOOT_ELF32
64	select DMA_NONCOHERENT
65	select CEVT_R4K
66	select CSRC_R4K
67	select IRQ_CPU
68	select NO_EXCEPT_FILL
69	select SWAP_IO_SPACE
70	select SYS_HAS_CPU_MIPS32_R1
71	select SYS_HAS_EARLY_PRINTK
72	select SYS_SUPPORTS_32BIT_KERNEL
73	select SYS_SUPPORTS_LITTLE_ENDIAN
74	select SYS_SUPPORTS_ZBOOT_UART16550
75	select ARCH_REQUIRE_GPIOLIB
76	select VLYNQ
77	help
78	  Support for the Texas Instruments AR7 System-on-a-Chip
79	  family: TNETD7100, 7200 and 7300.
80
81config ATH79
82	bool "Atheros AR71XX/AR724X/AR913X based boards"
83	select ARCH_REQUIRE_GPIOLIB
84	select BOOT_RAW
85	select CEVT_R4K
86	select CSRC_R4K
87	select DMA_NONCOHERENT
88	select IRQ_CPU
89	select MIPS_MACHINE
90	select SYS_HAS_CPU_MIPS32_R2
91	select SYS_HAS_EARLY_PRINTK
92	select SYS_SUPPORTS_32BIT_KERNEL
93	select SYS_SUPPORTS_BIG_ENDIAN
94	help
95	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
96
97config BCM47XX
98	bool "Broadcom BCM47XX based boards"
99	select CEVT_R4K
100	select CSRC_R4K
101	select DMA_NONCOHERENT
102	select HW_HAS_PCI
103	select IRQ_CPU
104	select SYS_SUPPORTS_32BIT_KERNEL
105	select SYS_SUPPORTS_LITTLE_ENDIAN
106	select GENERIC_GPIO
107	select SYS_HAS_EARLY_PRINTK
108	select CFE
109	help
110	 Support for BCM47XX based boards
111
112config BCM63XX
113	bool "Broadcom BCM63XX based boards"
114	select CEVT_R4K
115	select CSRC_R4K
116	select DMA_NONCOHERENT
117	select IRQ_CPU
118	select SYS_HAS_CPU_MIPS32_R1
119	select SYS_SUPPORTS_32BIT_KERNEL
120	select SYS_SUPPORTS_BIG_ENDIAN
121	select SYS_HAS_EARLY_PRINTK
122	select SWAP_IO_SPACE
123	select ARCH_REQUIRE_GPIOLIB
124	help
125	 Support for BCM63XX based boards
126
127config MIPS_COBALT
128	bool "Cobalt Server"
129	select CEVT_R4K
130	select CSRC_R4K
131	select CEVT_GT641XX
132	select DMA_NONCOHERENT
133	select HW_HAS_PCI
134	select I8253
135	select I8259
136	select IRQ_CPU
137	select IRQ_GT641XX
138	select PCI_GT64XXX_PCI0
139	select PCI
140	select SYS_HAS_CPU_NEVADA
141	select SYS_HAS_EARLY_PRINTK
142	select SYS_SUPPORTS_32BIT_KERNEL
143	select SYS_SUPPORTS_64BIT_KERNEL
144	select SYS_SUPPORTS_LITTLE_ENDIAN
145
146config MACH_DECSTATION
147	bool "DECstations"
148	select BOOT_ELF32
149	select CEVT_DS1287
150	select CEVT_R4K
151	select CSRC_IOASIC
152	select CSRC_R4K
153	select CPU_DADDI_WORKAROUNDS if 64BIT
154	select CPU_R4000_WORKAROUNDS if 64BIT
155	select CPU_R4400_WORKAROUNDS if 64BIT
156	select DMA_NONCOHERENT
157	select NO_IOPORT
158	select IRQ_CPU
159	select SYS_HAS_CPU_R3000
160	select SYS_HAS_CPU_R4X00
161	select SYS_SUPPORTS_32BIT_KERNEL
162	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
163	select SYS_SUPPORTS_LITTLE_ENDIAN
164	select SYS_SUPPORTS_128HZ
165	select SYS_SUPPORTS_256HZ
166	select SYS_SUPPORTS_1024HZ
167	help
168	  This enables support for DEC's MIPS based workstations.  For details
169	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
170	  DECstation porting pages on <http://decstation.unix-ag.org/>.
171
172	  If you have one of the following DECstation Models you definitely
173	  want to choose R4xx0 for the CPU Type:
174
175		DECstation 5000/50
176		DECstation 5000/150
177		DECstation 5000/260
178		DECsystem 5900/260
179
180	  otherwise choose R3000.
181
182config MACH_JAZZ
183	bool "Jazz family of machines"
184	select ARC
185	select ARC32
186	select ARCH_MAY_HAVE_PC_FDC
187	select CEVT_R4K
188	select CSRC_R4K
189	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
190	select GENERIC_ISA_DMA
191	select HAVE_PCSPKR_PLATFORM
192	select IRQ_CPU
193	select I8253
194	select I8259
195	select ISA
196	select SYS_HAS_CPU_R4X00
197	select SYS_SUPPORTS_32BIT_KERNEL
198	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
199	select SYS_SUPPORTS_100HZ
200	help
201	 This a family of machines based on the MIPS R4030 chipset which was
202	 used by several vendors to build RISC/os and Windows NT workstations.
203	 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
204	 Olivetti M700-10 workstations.
205
206config MACH_JZ4740
207	bool "Ingenic JZ4740 based machines"
208	select SYS_HAS_CPU_MIPS32_R1
209	select SYS_SUPPORTS_32BIT_KERNEL
210	select SYS_SUPPORTS_LITTLE_ENDIAN
211	select DMA_NONCOHERENT
212	select IRQ_CPU
213	select GENERIC_GPIO
214	select ARCH_REQUIRE_GPIOLIB
215	select SYS_HAS_EARLY_PRINTK
216	select HAVE_PWM
217	select HAVE_CLK
218	select GENERIC_IRQ_CHIP
219
220config LANTIQ
221	bool "Lantiq based platforms"
222	select DMA_NONCOHERENT
223	select IRQ_CPU
224	select CEVT_R4K
225	select CSRC_R4K
226	select SYS_HAS_CPU_MIPS32_R1
227	select SYS_HAS_CPU_MIPS32_R2
228	select SYS_SUPPORTS_BIG_ENDIAN
229	select SYS_SUPPORTS_32BIT_KERNEL
230	select SYS_SUPPORTS_MULTITHREADING
231	select SYS_HAS_EARLY_PRINTK
232	select ARCH_REQUIRE_GPIOLIB
233	select SWAP_IO_SPACE
234	select BOOT_RAW
235	select HAVE_CLK
236	select MIPS_MACHINE
237
238config LASAT
239	bool "LASAT Networks platforms"
240	select CEVT_R4K
241	select CSRC_R4K
242	select DMA_NONCOHERENT
243	select SYS_HAS_EARLY_PRINTK
244	select HW_HAS_PCI
245	select IRQ_CPU
246	select PCI_GT64XXX_PCI0
247	select MIPS_NILE4
248	select R5000_CPU_SCACHE
249	select SYS_HAS_CPU_R5000
250	select SYS_SUPPORTS_32BIT_KERNEL
251	select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
252	select SYS_SUPPORTS_LITTLE_ENDIAN
253
254config MACH_LOONGSON
255	bool "Loongson family of machines"
256	select SYS_SUPPORTS_ZBOOT
257	help
258	  This enables the support of Loongson family of machines.
259
260	  Loongson is a family of general-purpose MIPS-compatible CPUs.
261	  developed at Institute of Computing Technology (ICT),
262	  Chinese Academy of Sciences (CAS) in the People's Republic
263	  of China. The chief architect is Professor Weiwu Hu.
264
265config MIPS_MALTA
266	bool "MIPS Malta board"
267	select ARCH_MAY_HAVE_PC_FDC
268	select BOOT_ELF32
269	select BOOT_RAW
270	select CEVT_R4K
271	select CSRC_R4K
272	select DMA_NONCOHERENT
273	select GENERIC_ISA_DMA
274	select HAVE_PCSPKR_PLATFORM
275	select IRQ_CPU
276	select IRQ_GIC
277	select HW_HAS_PCI
278	select I8253
279	select I8259
280	select MIPS_BOARDS_GEN
281	select MIPS_BONITO64
282	select MIPS_CPU_SCACHE
283	select PCI_GT64XXX_PCI0
284	select MIPS_MSC
285	select SWAP_IO_SPACE
286	select SYS_HAS_CPU_MIPS32_R1
287	select SYS_HAS_CPU_MIPS32_R2
288	select SYS_HAS_CPU_MIPS64_R1
289	select SYS_HAS_CPU_NEVADA
290	select SYS_HAS_CPU_RM7000
291	select SYS_HAS_EARLY_PRINTK
292	select SYS_SUPPORTS_32BIT_KERNEL
293	select SYS_SUPPORTS_64BIT_KERNEL
294	select SYS_SUPPORTS_BIG_ENDIAN
295	select SYS_SUPPORTS_LITTLE_ENDIAN
296	select SYS_SUPPORTS_MIPS_CMP
297	select SYS_SUPPORTS_MULTITHREADING
298	select SYS_SUPPORTS_SMARTMIPS
299	select SYS_SUPPORTS_ZBOOT
300	help
301	  This enables support for the MIPS Technologies Malta evaluation
302	  board.
303
304config MIPS_SIM
305	bool 'MIPS simulator (MIPSsim)'
306	select CEVT_R4K
307	select CSRC_R4K
308	select DMA_NONCOHERENT
309	select SYS_HAS_EARLY_PRINTK
310	select IRQ_CPU
311	select BOOT_RAW
312	select SYS_HAS_CPU_MIPS32_R1
313	select SYS_HAS_CPU_MIPS32_R2
314	select SYS_HAS_EARLY_PRINTK
315	select SYS_SUPPORTS_32BIT_KERNEL
316	select SYS_SUPPORTS_BIG_ENDIAN
317	select SYS_SUPPORTS_MULTITHREADING
318	select SYS_SUPPORTS_LITTLE_ENDIAN
319	help
320	  This option enables support for MIPS Technologies MIPSsim software
321	  emulator.
322
323config NEC_MARKEINS
324	bool "NEC EMMA2RH Mark-eins board"
325	select SOC_EMMA2RH
326	select HW_HAS_PCI
327	help
328	  This enables support for the NEC Electronics Mark-eins boards.
329
330config MACH_VR41XX
331	bool "NEC VR4100 series based machines"
332	select CEVT_R4K
333	select CSRC_R4K
334	select SYS_HAS_CPU_VR41XX
335	select ARCH_REQUIRE_GPIOLIB
336
337config NXP_STB220
338	bool "NXP STB220 board"
339	select SOC_PNX833X
340	help
341	 Support for NXP Semiconductors STB220 Development Board.
342
343config NXP_STB225
344	bool "NXP 225 board"
345	select SOC_PNX833X
346	select SOC_PNX8335
347	help
348	 Support for NXP Semiconductors STB225 Development Board.
349
350config PNX8550_JBS
351	bool "NXP PNX8550 based JBS board"
352	select PNX8550
353	select SYS_SUPPORTS_LITTLE_ENDIAN
354
355config PNX8550_STB810
356	bool "NXP PNX8550 based STB810 board"
357	select PNX8550
358	select SYS_SUPPORTS_LITTLE_ENDIAN
359
360config PMC_MSP
361	bool "PMC-Sierra MSP chipsets"
362	depends on EXPERIMENTAL
363	select CEVT_R4K
364	select CSRC_R4K
365	select DMA_NONCOHERENT
366	select SWAP_IO_SPACE
367	select NO_EXCEPT_FILL
368	select BOOT_RAW
369	select SYS_HAS_CPU_MIPS32_R1
370	select SYS_HAS_CPU_MIPS32_R2
371	select SYS_SUPPORTS_32BIT_KERNEL
372	select SYS_SUPPORTS_BIG_ENDIAN
373	select IRQ_CPU
374	select SERIAL_8250
375	select SERIAL_8250_CONSOLE
376	help
377	  This adds support for the PMC-Sierra family of Multi-Service
378	  Processor System-On-A-Chips.  These parts include a number
379	  of integrated peripherals, interfaces and DSPs in addition to
380	  a variety of MIPS cores.
381
382config PMC_YOSEMITE
383	bool "PMC-Sierra Yosemite eval board"
384	select CEVT_R4K
385	select CSRC_R4K
386	select DMA_COHERENT
387	select HW_HAS_PCI
388	select IRQ_CPU
389	select IRQ_CPU_RM7K
390	select IRQ_CPU_RM9K
391	select SWAP_IO_SPACE
392	select SYS_HAS_CPU_RM9000
393	select SYS_HAS_EARLY_PRINTK
394	select SYS_SUPPORTS_32BIT_KERNEL
395	select SYS_SUPPORTS_64BIT_KERNEL
396	select SYS_SUPPORTS_BIG_ENDIAN
397	select SYS_SUPPORTS_HIGHMEM
398	select SYS_SUPPORTS_SMP
399	help
400	  Yosemite is an evaluation board for the RM9000x2 processor
401	  manufactured by PMC-Sierra.
402
403config POWERTV
404	bool "Cisco PowerTV"
405	select BOOT_ELF32
406	select CEVT_R4K
407	select CPU_MIPSR2_IRQ_VI
408	select CPU_MIPSR2_IRQ_EI
409	select CSRC_POWERTV
410	select DMA_NONCOHERENT
411	select HW_HAS_PCI
412	select SYS_HAS_EARLY_PRINTK
413	select SYS_HAS_CPU_MIPS32_R2
414	select SYS_SUPPORTS_32BIT_KERNEL
415	select SYS_SUPPORTS_BIG_ENDIAN
416	select SYS_SUPPORTS_HIGHMEM
417	select USB_OHCI_LITTLE_ENDIAN
418	help
419	  This enables support for the Cisco PowerTV Platform.
420
421config SGI_IP22
422	bool "SGI IP22 (Indy/Indigo2)"
423	select ARC
424	select ARC32
425	select BOOT_ELF32
426	select CEVT_R4K
427	select CSRC_R4K
428	select DEFAULT_SGI_PARTITION
429	select DMA_NONCOHERENT
430	select HW_HAS_EISA
431	select I8253
432	select I8259
433	select IP22_CPU_SCACHE
434	select IRQ_CPU
435	select GENERIC_ISA_DMA_SUPPORT_BROKEN
436	select SGI_HAS_I8042
437	select SGI_HAS_INDYDOG
438	select SGI_HAS_HAL2
439	select SGI_HAS_SEEQ
440	select SGI_HAS_WD93
441	select SGI_HAS_ZILOG
442	select SWAP_IO_SPACE
443	select SYS_HAS_CPU_R4X00
444	select SYS_HAS_CPU_R5000
445	#
446	# Disable EARLY_PRINTK for now since it leads to overwritten prom
447	# memory during early boot on some machines.
448	#
449	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
450	# for a more details discussion
451	#
452	# select SYS_HAS_EARLY_PRINTK
453	select SYS_SUPPORTS_32BIT_KERNEL
454	select SYS_SUPPORTS_64BIT_KERNEL
455	select SYS_SUPPORTS_BIG_ENDIAN
456	help
457	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
458	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
459	  that runs on these, say Y here.
460
461config SGI_IP27
462	bool "SGI IP27 (Origin200/2000)"
463	select ARC
464	select ARC64
465	select BOOT_ELF64
466	select DEFAULT_SGI_PARTITION
467	select DMA_COHERENT
468	select SYS_HAS_EARLY_PRINTK
469	select HW_HAS_PCI
470	select NR_CPUS_DEFAULT_64
471	select SYS_HAS_CPU_R10000
472	select SYS_SUPPORTS_64BIT_KERNEL
473	select SYS_SUPPORTS_BIG_ENDIAN
474	select SYS_SUPPORTS_NUMA
475	select SYS_SUPPORTS_SMP
476	help
477	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
478	  workstations.  To compile a Linux kernel that runs on these, say Y
479	  here.
480
481config SGI_IP28
482	bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
483	depends on EXPERIMENTAL
484	select ARC
485	select ARC64
486	select BOOT_ELF64
487	select CEVT_R4K
488	select CSRC_R4K
489	select DEFAULT_SGI_PARTITION
490	select DMA_NONCOHERENT
491	select GENERIC_ISA_DMA_SUPPORT_BROKEN
492	select IRQ_CPU
493	select HW_HAS_EISA
494	select I8253
495	select I8259
496	select SGI_HAS_I8042
497	select SGI_HAS_INDYDOG
498	select SGI_HAS_HAL2
499	select SGI_HAS_SEEQ
500	select SGI_HAS_WD93
501	select SGI_HAS_ZILOG
502	select SWAP_IO_SPACE
503	select SYS_HAS_CPU_R10000
504	#
505	# Disable EARLY_PRINTK for now since it leads to overwritten prom
506	# memory during early boot on some machines.
507	#
508	# See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
509	# for a more details discussion
510	#
511	# select SYS_HAS_EARLY_PRINTK
512	select SYS_SUPPORTS_64BIT_KERNEL
513	select SYS_SUPPORTS_BIG_ENDIAN
514      help
515        This is the SGI Indigo2 with R10000 processor.  To compile a Linux
516        kernel that runs on these, say Y here.
517
518config SGI_IP32
519	bool "SGI IP32 (O2)"
520	select ARC
521	select ARC32
522	select BOOT_ELF32
523	select CEVT_R4K
524	select CSRC_R4K
525	select DMA_NONCOHERENT
526	select HW_HAS_PCI
527	select IRQ_CPU
528	select R5000_CPU_SCACHE
529	select RM7000_CPU_SCACHE
530	select SYS_HAS_CPU_R5000
531	select SYS_HAS_CPU_R10000 if BROKEN
532	select SYS_HAS_CPU_RM7000
533	select SYS_HAS_CPU_NEVADA
534	select SYS_SUPPORTS_64BIT_KERNEL
535	select SYS_SUPPORTS_BIG_ENDIAN
536	help
537	  If you want this kernel to run on SGI O2 workstation, say Y here.
538
539config SIBYTE_CRHINE
540	bool "Sibyte BCM91120C-CRhine"
541	depends on EXPERIMENTAL
542	select BOOT_ELF32
543	select DMA_COHERENT
544	select SIBYTE_BCM1120
545	select SWAP_IO_SPACE
546	select SYS_HAS_CPU_SB1
547	select SYS_SUPPORTS_BIG_ENDIAN
548	select SYS_SUPPORTS_LITTLE_ENDIAN
549
550config SIBYTE_CARMEL
551	bool "Sibyte BCM91120x-Carmel"
552	depends on EXPERIMENTAL
553	select BOOT_ELF32
554	select DMA_COHERENT
555	select SIBYTE_BCM1120
556	select SWAP_IO_SPACE
557	select SYS_HAS_CPU_SB1
558	select SYS_SUPPORTS_BIG_ENDIAN
559	select SYS_SUPPORTS_LITTLE_ENDIAN
560
561config SIBYTE_CRHONE
562	bool "Sibyte BCM91125C-CRhone"
563	depends on EXPERIMENTAL
564	select BOOT_ELF32
565	select DMA_COHERENT
566	select SIBYTE_BCM1125
567	select SWAP_IO_SPACE
568	select SYS_HAS_CPU_SB1
569	select SYS_SUPPORTS_BIG_ENDIAN
570	select SYS_SUPPORTS_HIGHMEM
571	select SYS_SUPPORTS_LITTLE_ENDIAN
572
573config SIBYTE_RHONE
574	bool "Sibyte BCM91125E-Rhone"
575	depends on EXPERIMENTAL
576	select BOOT_ELF32
577	select DMA_COHERENT
578	select SIBYTE_BCM1125H
579	select SWAP_IO_SPACE
580	select SYS_HAS_CPU_SB1
581	select SYS_SUPPORTS_BIG_ENDIAN
582	select SYS_SUPPORTS_LITTLE_ENDIAN
583
584config SIBYTE_SWARM
585	bool "Sibyte BCM91250A-SWARM"
586	select BOOT_ELF32
587	select DMA_COHERENT
588	select HAVE_PATA_PLATFORM
589	select NR_CPUS_DEFAULT_2
590	select SIBYTE_SB1250
591	select SWAP_IO_SPACE
592	select SYS_HAS_CPU_SB1
593	select SYS_SUPPORTS_BIG_ENDIAN
594	select SYS_SUPPORTS_HIGHMEM
595	select SYS_SUPPORTS_LITTLE_ENDIAN
596	select ZONE_DMA32 if 64BIT
597
598config SIBYTE_LITTLESUR
599	bool "Sibyte BCM91250C2-LittleSur"
600	depends on EXPERIMENTAL
601	select BOOT_ELF32
602	select DMA_COHERENT
603	select HAVE_PATA_PLATFORM
604	select NR_CPUS_DEFAULT_2
605	select SIBYTE_SB1250
606	select SWAP_IO_SPACE
607	select SYS_HAS_CPU_SB1
608	select SYS_SUPPORTS_BIG_ENDIAN
609	select SYS_SUPPORTS_HIGHMEM
610	select SYS_SUPPORTS_LITTLE_ENDIAN
611
612config SIBYTE_SENTOSA
613	bool "Sibyte BCM91250E-Sentosa"
614	depends on EXPERIMENTAL
615	select BOOT_ELF32
616	select DMA_COHERENT
617	select NR_CPUS_DEFAULT_2
618	select SIBYTE_SB1250
619	select SWAP_IO_SPACE
620	select SYS_HAS_CPU_SB1
621	select SYS_SUPPORTS_BIG_ENDIAN
622	select SYS_SUPPORTS_LITTLE_ENDIAN
623
624config SIBYTE_BIGSUR
625	bool "Sibyte BCM91480B-BigSur"
626	select BOOT_ELF32
627	select DMA_COHERENT
628	select NR_CPUS_DEFAULT_4
629	select SIBYTE_BCM1x80
630	select SWAP_IO_SPACE
631	select SYS_HAS_CPU_SB1
632	select SYS_SUPPORTS_BIG_ENDIAN
633	select SYS_SUPPORTS_HIGHMEM
634	select SYS_SUPPORTS_LITTLE_ENDIAN
635	select ZONE_DMA32 if 64BIT
636
637config SNI_RM
638	bool "SNI RM200/300/400"
639	select ARC if CPU_LITTLE_ENDIAN
640	select ARC32 if CPU_LITTLE_ENDIAN
641	select SNIPROM if CPU_BIG_ENDIAN
642	select ARCH_MAY_HAVE_PC_FDC
643	select BOOT_ELF32
644	select CEVT_R4K
645	select CSRC_R4K
646	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
647	select DMA_NONCOHERENT
648	select GENERIC_ISA_DMA
649	select HAVE_PCSPKR_PLATFORM
650	select HW_HAS_EISA
651	select HW_HAS_PCI
652	select IRQ_CPU
653	select I8253
654	select I8259
655	select ISA
656	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
657	select SYS_HAS_CPU_R4X00
658	select SYS_HAS_CPU_R5000
659	select SYS_HAS_CPU_R10000
660	select R5000_CPU_SCACHE
661	select SYS_HAS_EARLY_PRINTK
662	select SYS_SUPPORTS_32BIT_KERNEL
663	select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
664	select SYS_SUPPORTS_BIG_ENDIAN
665	select SYS_SUPPORTS_HIGHMEM
666	select SYS_SUPPORTS_LITTLE_ENDIAN
667	help
668	  The SNI RM200/300/400 are MIPS-based machines manufactured by
669	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
670	  Technology and now in turn merged with Fujitsu.  Say Y here to
671	  support this machine type.
672
673config MACH_TX39XX
674	bool "Toshiba TX39 series based machines"
675
676config MACH_TX49XX
677	bool "Toshiba TX49 series based machines"
678
679config MIKROTIK_RB532
680	bool "Mikrotik RB532 boards"
681	select CEVT_R4K
682	select CSRC_R4K
683	select DMA_NONCOHERENT
684	select HW_HAS_PCI
685	select IRQ_CPU
686	select SYS_HAS_CPU_MIPS32_R1
687	select SYS_SUPPORTS_32BIT_KERNEL
688	select SYS_SUPPORTS_LITTLE_ENDIAN
689	select SWAP_IO_SPACE
690	select BOOT_RAW
691	select ARCH_REQUIRE_GPIOLIB
692	help
693	  Support the Mikrotik(tm) RouterBoard 532 series,
694	  based on the IDT RC32434 SoC.
695
696config WR_PPMC
697	bool "Wind River PPMC board"
698	select CEVT_R4K
699	select CSRC_R4K
700	select IRQ_CPU
701	select BOOT_ELF32
702	select DMA_NONCOHERENT
703	select HW_HAS_PCI
704	select PCI_GT64XXX_PCI0
705	select SWAP_IO_SPACE
706	select SYS_HAS_CPU_MIPS32_R1
707	select SYS_HAS_CPU_MIPS32_R2
708	select SYS_HAS_CPU_MIPS64_R1
709	select SYS_HAS_CPU_NEVADA
710	select SYS_HAS_CPU_RM7000
711	select SYS_SUPPORTS_32BIT_KERNEL
712	select SYS_SUPPORTS_64BIT_KERNEL
713	select SYS_SUPPORTS_BIG_ENDIAN
714	select SYS_SUPPORTS_LITTLE_ENDIAN
715	help
716	  This enables support for the Wind River MIPS32 4KC PPMC evaluation
717	  board, which is based on GT64120 bridge chip.
718
719config CAVIUM_OCTEON_SIMULATOR
720	bool "Cavium Networks Octeon Simulator"
721	select CEVT_R4K
722	select 64BIT_PHYS_ADDR
723	select DMA_COHERENT
724	select SYS_SUPPORTS_64BIT_KERNEL
725	select SYS_SUPPORTS_BIG_ENDIAN
726	select SYS_SUPPORTS_HOTPLUG_CPU
727	select SYS_HAS_CPU_CAVIUM_OCTEON
728	select HOLES_IN_ZONE
729	help
730	  The Octeon simulator is software performance model of the Cavium
731	  Octeon Processor. It supports simulating Octeon processors on x86
732	  hardware.
733
734config CAVIUM_OCTEON_REFERENCE_BOARD
735	bool "Cavium Networks Octeon reference board"
736	select CEVT_R4K
737	select 64BIT_PHYS_ADDR
738	select DMA_COHERENT
739	select SYS_SUPPORTS_64BIT_KERNEL
740	select SYS_SUPPORTS_BIG_ENDIAN
741	select SYS_SUPPORTS_HOTPLUG_CPU
742	select SYS_HAS_EARLY_PRINTK
743	select SYS_HAS_CPU_CAVIUM_OCTEON
744	select SWAP_IO_SPACE
745	select HW_HAS_PCI
746	select ARCH_SUPPORTS_MSI
747	select ZONE_DMA32
748	select USB_ARCH_HAS_OHCI
749	select USB_ARCH_HAS_EHCI
750	select HOLES_IN_ZONE
751	help
752	  This option supports all of the Octeon reference boards from Cavium
753	  Networks. It builds a kernel that dynamically determines the Octeon
754	  CPU type and supports all known board reference implementations.
755	  Some of the supported boards are:
756		EBT3000
757		EBH3000
758		EBH3100
759		Thunder
760		Kodama
761		Hikari
762	  Say Y here for most Octeon reference boards.
763
764config NLM_XLR_BOARD
765	bool "Netlogic XLR/XLS based systems"
766	depends on EXPERIMENTAL
767	select BOOT_ELF32
768	select NLM_COMMON
769	select SYS_HAS_CPU_XLR
770	select SYS_SUPPORTS_SMP
771	select HW_HAS_PCI
772	select SWAP_IO_SPACE
773	select SYS_SUPPORTS_32BIT_KERNEL
774	select SYS_SUPPORTS_64BIT_KERNEL
775	select 64BIT_PHYS_ADDR
776	select SYS_SUPPORTS_BIG_ENDIAN
777	select SYS_SUPPORTS_HIGHMEM
778	select DMA_COHERENT
779	select NR_CPUS_DEFAULT_32
780	select CEVT_R4K
781	select CSRC_R4K
782	select IRQ_CPU
783	select ARCH_SUPPORTS_MSI
784	select ZONE_DMA if 64BIT
785	select SYNC_R4K
786	select SYS_HAS_EARLY_PRINTK
787	help
788	  Support for systems based on Netlogic XLR and XLS processors.
789	  Say Y here if you have a XLR or XLS based board.
790
791config NLM_XLP_BOARD
792	bool "Netlogic XLP based systems"
793	depends on EXPERIMENTAL
794	select BOOT_ELF32
795	select NLM_COMMON
796	select SYS_HAS_CPU_XLP
797	select SYS_SUPPORTS_SMP
798	select HW_HAS_PCI
799	select SWAP_IO_SPACE
800	select SYS_SUPPORTS_32BIT_KERNEL
801	select SYS_SUPPORTS_64BIT_KERNEL
802	select 64BIT_PHYS_ADDR
803	select SYS_SUPPORTS_BIG_ENDIAN
804	select SYS_SUPPORTS_LITTLE_ENDIAN
805	select SYS_SUPPORTS_HIGHMEM
806	select DMA_COHERENT
807	select NR_CPUS_DEFAULT_32
808	select CEVT_R4K
809	select CSRC_R4K
810	select IRQ_CPU
811	select ZONE_DMA if 64BIT
812	select SYNC_R4K
813	select SYS_HAS_EARLY_PRINTK
814	help
815	  This board is based on Netlogic XLP Processor.
816	  Say Y here if you have a XLP based board.
817
818config MIPS_GOLDFISH
819	bool "MIPS Goldfish"
820	help
821	  Support for the MIPS versions of the Android Goldfish Virtual Platform.
822
823endchoice
824
825source "arch/mips/alchemy/Kconfig"
826source "arch/mips/ath79/Kconfig"
827source "arch/mips/bcm47xx/Kconfig"
828source "arch/mips/bcm63xx/Kconfig"
829source "arch/mips/jazz/Kconfig"
830source "arch/mips/jz4740/Kconfig"
831source "arch/mips/lantiq/Kconfig"
832source "arch/mips/lasat/Kconfig"
833source "arch/mips/pmc-sierra/Kconfig"
834source "arch/mips/powertv/Kconfig"
835source "arch/mips/sgi-ip27/Kconfig"
836source "arch/mips/sibyte/Kconfig"
837source "arch/mips/txx9/Kconfig"
838source "arch/mips/vr41xx/Kconfig"
839source "arch/mips/cavium-octeon/Kconfig"
840source "arch/mips/loongson/Kconfig"
841source "arch/mips/netlogic/Kconfig"
842source "arch/mips/goldfish/Kconfig"
843
844endmenu
845
846config RWSEM_GENERIC_SPINLOCK
847	bool
848	default y
849
850config RWSEM_XCHGADD_ALGORITHM
851	bool
852
853config ARCH_HAS_ILOG2_U32
854	bool
855	default n
856
857config ARCH_HAS_ILOG2_U64
858	bool
859	default n
860
861config GENERIC_HWEIGHT
862	bool
863	default y
864
865config GENERIC_CALIBRATE_DELAY
866	bool
867	default y
868
869config GENERIC_CLOCKEVENTS
870	bool
871	default y
872
873config GENERIC_CMOS_UPDATE
874	bool
875	default y
876
877config SCHED_OMIT_FRAME_POINTER
878	bool
879	default y
880
881#
882# Select some configuration options automatically based on user selections.
883#
884config ARC
885	bool
886
887config ARCH_MAY_HAVE_PC_FDC
888	bool
889
890config BOOT_RAW
891	bool
892
893config CEVT_BCM1480
894	bool
895
896config CEVT_DS1287
897	bool
898
899config CEVT_GT641XX
900	bool
901
902config CEVT_R4K_LIB
903	bool
904
905config CEVT_R4K
906	select CEVT_R4K_LIB
907	bool
908
909config CEVT_SB1250
910	bool
911
912config CEVT_TXX9
913	bool
914
915config CSRC_BCM1480
916	bool
917
918config CSRC_IOASIC
919	bool
920
921config CSRC_POWERTV
922	bool
923
924config CSRC_R4K_LIB
925	bool
926
927config CSRC_R4K
928	select CSRC_R4K_LIB
929	bool
930
931config CSRC_SB1250
932	bool
933
934config GPIO_TXX9
935	select GENERIC_GPIO
936	select ARCH_REQUIRE_GPIOLIB
937	bool
938
939config CFE
940	bool
941
942config ARCH_DMA_ADDR_T_64BIT
943	def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
944
945config DMA_COHERENT
946	bool
947
948config DMA_NONCOHERENT
949	bool
950	select NEED_DMA_MAP_STATE
951
952config NEED_DMA_MAP_STATE
953	bool
954
955config SYS_HAS_EARLY_PRINTK
956	bool
957
958config HOTPLUG_CPU
959	bool "Support for hot-pluggable CPUs"
960	depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
961	help
962	  Say Y here to allow turning CPUs off and on. CPUs can be
963	  controlled through /sys/devices/system/cpu.
964	  (Note: power management support will enable this option
965	    automatically on SMP systems. )
966	  Say N if you want to disable CPU hotplug.
967
968config SYS_SUPPORTS_HOTPLUG_CPU
969	bool
970
971config I8259
972	bool
973
974config MIPS_BONITO64
975	bool
976
977config MIPS_MSC
978	bool
979
980config MIPS_NILE4
981	bool
982
983config MIPS_DISABLE_OBSOLETE_IDE
984	bool
985
986config SYNC_R4K
987	bool
988
989config MIPS_MACHINE
990	def_bool n
991
992config NO_IOPORT
993	def_bool n
994
995config GENERIC_ISA_DMA
996	bool
997	select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
998	select ISA_DMA_API
999
1000config GENERIC_ISA_DMA_SUPPORT_BROKEN
1001	bool
1002	select GENERIC_ISA_DMA
1003
1004config ISA_DMA_API
1005	bool
1006
1007config GENERIC_GPIO
1008	bool
1009
1010config HOLES_IN_ZONE
1011	bool
1012
1013#
1014# Endianess selection.  Sufficiently obscure so many users don't know what to
1015# answer,so we try hard to limit the available choices.  Also the use of a
1016# choice statement should be more obvious to the user.
1017#
1018choice
1019	prompt "Endianess selection"
1020	help
1021	  Some MIPS machines can be configured for either little or big endian
1022	  byte order. These modes require different kernels and a different
1023	  Linux distribution.  In general there is one preferred byteorder for a
1024	  particular system but some systems are just as commonly used in the
1025	  one or the other endianness.
1026
1027config CPU_BIG_ENDIAN
1028	bool "Big endian"
1029	depends on SYS_SUPPORTS_BIG_ENDIAN
1030
1031config CPU_LITTLE_ENDIAN
1032	bool "Little endian"
1033	depends on SYS_SUPPORTS_LITTLE_ENDIAN
1034	help
1035
1036endchoice
1037
1038config EXPORT_UASM
1039	bool
1040
1041config SYS_SUPPORTS_APM_EMULATION
1042	bool
1043
1044config SYS_SUPPORTS_BIG_ENDIAN
1045	bool
1046
1047config SYS_SUPPORTS_LITTLE_ENDIAN
1048	bool
1049
1050config SYS_SUPPORTS_HUGETLBFS
1051	bool
1052	depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1053	default y
1054
1055config IRQ_CPU
1056	bool
1057
1058config IRQ_CPU_RM7K
1059	bool
1060
1061config IRQ_CPU_RM9K
1062	bool
1063
1064config IRQ_MSP_SLP
1065	bool
1066
1067config IRQ_MSP_CIC
1068	bool
1069
1070config IRQ_TXX9
1071	bool
1072
1073config IRQ_GT641XX
1074	bool
1075
1076config IRQ_GIC
1077	bool
1078
1079config MIPS_BOARDS_GEN
1080	bool
1081
1082config PCI_GT64XXX_PCI0
1083	bool
1084
1085config NO_EXCEPT_FILL
1086	bool
1087
1088config MIPS_RM9122
1089	bool
1090	select SERIAL_RM9000
1091
1092config SOC_EMMA2RH
1093	bool
1094	select CEVT_R4K
1095	select CSRC_R4K
1096	select DMA_NONCOHERENT
1097	select IRQ_CPU
1098	select SWAP_IO_SPACE
1099	select SYS_HAS_CPU_R5500
1100	select SYS_SUPPORTS_32BIT_KERNEL
1101	select SYS_SUPPORTS_64BIT_KERNEL
1102	select SYS_SUPPORTS_BIG_ENDIAN
1103
1104config SOC_PNX833X
1105	bool
1106	select CEVT_R4K
1107	select CSRC_R4K
1108	select IRQ_CPU
1109	select DMA_NONCOHERENT
1110	select SYS_HAS_CPU_MIPS32_R2
1111	select SYS_SUPPORTS_32BIT_KERNEL
1112	select SYS_SUPPORTS_LITTLE_ENDIAN
1113	select SYS_SUPPORTS_BIG_ENDIAN
1114	select GENERIC_GPIO
1115	select CPU_MIPSR2_IRQ_VI
1116
1117config SOC_PNX8335
1118	bool
1119	select SOC_PNX833X
1120
1121config PNX8550
1122	bool
1123	select SOC_PNX8550
1124
1125config SOC_PNX8550
1126	bool
1127	select DMA_NONCOHERENT
1128	select HW_HAS_PCI
1129	select SYS_HAS_CPU_MIPS32_R1
1130	select SYS_HAS_EARLY_PRINTK
1131	select SYS_SUPPORTS_32BIT_KERNEL
1132	select GENERIC_GPIO
1133
1134config SWAP_IO_SPACE
1135	bool
1136
1137config SERIAL_RM9000
1138	bool
1139
1140config SGI_HAS_INDYDOG
1141	bool
1142
1143config SGI_HAS_HAL2
1144	bool
1145
1146config SGI_HAS_SEEQ
1147	bool
1148
1149config SGI_HAS_WD93
1150	bool
1151
1152config SGI_HAS_ZILOG
1153	bool
1154
1155config SGI_HAS_I8042
1156	bool
1157
1158config DEFAULT_SGI_PARTITION
1159	bool
1160
1161config ARC32
1162	bool
1163
1164config SNIPROM
1165	bool
1166
1167config BOOT_ELF32
1168	bool
1169
1170config MIPS_L1_CACHE_SHIFT
1171	int
1172	default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1173	default "6" if MIPS_CPU_SCACHE
1174	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1175	default "5"
1176
1177config HAVE_STD_PC_SERIAL_PORT
1178	bool
1179
1180config ARC_CONSOLE
1181	bool "ARC console support"
1182	depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1183
1184config ARC_MEMORY
1185	bool
1186	depends on MACH_JAZZ || SNI_RM || SGI_IP32
1187	default y
1188
1189config ARC_PROMLIB
1190	bool
1191	depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1192	default y
1193
1194config ARC64
1195	bool
1196
1197config BOOT_ELF64
1198	bool
1199
1200menu "CPU selection"
1201
1202choice
1203	prompt "CPU type"
1204	default CPU_R4X00
1205
1206config CPU_LOONGSON2E
1207	bool "Loongson 2E"
1208	depends on SYS_HAS_CPU_LOONGSON2E
1209	select CPU_LOONGSON2
1210	help
1211	  The Loongson 2E processor implements the MIPS III instruction set
1212	  with many extensions.
1213
1214	  It has an internal FPGA northbridge, which is compatible to
1215	  bonito64.
1216
1217config CPU_LOONGSON2F
1218	bool "Loongson 2F"
1219	depends on SYS_HAS_CPU_LOONGSON2F
1220	select CPU_LOONGSON2
1221	select GENERIC_GPIO
1222	select ARCH_REQUIRE_GPIOLIB
1223	help
1224	  The Loongson 2F processor implements the MIPS III instruction set
1225	  with many extensions.
1226
1227	  Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1228	  have a similar programming interface with FPGA northbridge used in
1229	  Loongson2E.
1230
1231config CPU_MIPS32_R1
1232	bool "MIPS32 Release 1"
1233	depends on SYS_HAS_CPU_MIPS32_R1
1234	select CPU_HAS_PREFETCH
1235	select CPU_SUPPORTS_32BIT_KERNEL
1236	select CPU_SUPPORTS_HIGHMEM
1237	help
1238	  Choose this option to build a kernel for release 1 or later of the
1239	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
1240	  MIPS processor are based on a MIPS32 processor.  If you know the
1241	  specific type of processor in your system, choose those that one
1242	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1243	  Release 2 of the MIPS32 architecture is available since several
1244	  years so chances are you even have a MIPS32 Release 2 processor
1245	  in which case you should choose CPU_MIPS32_R2 instead for better
1246	  performance.
1247
1248config CPU_MIPS32_R2
1249	bool "MIPS32 Release 2"
1250	depends on SYS_HAS_CPU_MIPS32_R2
1251	select CPU_HAS_PREFETCH
1252	select CPU_SUPPORTS_32BIT_KERNEL
1253	select CPU_SUPPORTS_HIGHMEM
1254	help
1255	  Choose this option to build a kernel for release 2 or later of the
1256	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
1257	  MIPS processor are based on a MIPS32 processor.  If you know the
1258	  specific type of processor in your system, choose those that one
1259	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1260
1261config CPU_MIPS64_R1
1262	bool "MIPS64 Release 1"
1263	depends on SYS_HAS_CPU_MIPS64_R1
1264	select CPU_HAS_PREFETCH
1265	select CPU_SUPPORTS_32BIT_KERNEL
1266	select CPU_SUPPORTS_64BIT_KERNEL
1267	select CPU_SUPPORTS_HIGHMEM
1268	select CPU_SUPPORTS_HUGEPAGES
1269	help
1270	  Choose this option to build a kernel for release 1 or later of the
1271	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1272	  MIPS processor are based on a MIPS64 processor.  If you know the
1273	  specific type of processor in your system, choose those that one
1274	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1275	  Release 2 of the MIPS64 architecture is available since several
1276	  years so chances are you even have a MIPS64 Release 2 processor
1277	  in which case you should choose CPU_MIPS64_R2 instead for better
1278	  performance.
1279
1280config CPU_MIPS64_R2
1281	bool "MIPS64 Release 2"
1282	depends on SYS_HAS_CPU_MIPS64_R2
1283	select CPU_HAS_PREFETCH
1284	select CPU_SUPPORTS_32BIT_KERNEL
1285	select CPU_SUPPORTS_64BIT_KERNEL
1286	select CPU_SUPPORTS_HIGHMEM
1287	select CPU_SUPPORTS_HUGEPAGES
1288	help
1289	  Choose this option to build a kernel for release 2 or later of the
1290	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
1291	  MIPS processor are based on a MIPS64 processor.  If you know the
1292	  specific type of processor in your system, choose those that one
1293	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1294
1295config CPU_R3000
1296	bool "R3000"
1297	depends on SYS_HAS_CPU_R3000
1298	select CPU_HAS_WB
1299	select CPU_SUPPORTS_32BIT_KERNEL
1300	select CPU_SUPPORTS_HIGHMEM
1301	help
1302	  Please make sure to pick the right CPU type. Linux/MIPS is not
1303	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1304	  *not* work on R4000 machines and vice versa.  However, since most
1305	  of the supported machines have an R4000 (or similar) CPU, R4x00
1306	  might be a safe bet.  If the resulting kernel does not work,
1307	  try to recompile with R3000.
1308
1309config CPU_TX39XX
1310	bool "R39XX"
1311	depends on SYS_HAS_CPU_TX39XX
1312	select CPU_SUPPORTS_32BIT_KERNEL
1313
1314config CPU_VR41XX
1315	bool "R41xx"
1316	depends on SYS_HAS_CPU_VR41XX
1317	select CPU_SUPPORTS_32BIT_KERNEL
1318	select CPU_SUPPORTS_64BIT_KERNEL
1319	help
1320	  The options selects support for the NEC VR4100 series of processors.
1321	  Only choose this option if you have one of these processors as a
1322	  kernel built with this option will not run on any other type of
1323	  processor or vice versa.
1324
1325config CPU_R4300
1326	bool "R4300"
1327	depends on SYS_HAS_CPU_R4300
1328	select CPU_SUPPORTS_32BIT_KERNEL
1329	select CPU_SUPPORTS_64BIT_KERNEL
1330	help
1331	  MIPS Technologies R4300-series processors.
1332
1333config CPU_R4X00
1334	bool "R4x00"
1335	depends on SYS_HAS_CPU_R4X00
1336	select CPU_SUPPORTS_32BIT_KERNEL
1337	select CPU_SUPPORTS_64BIT_KERNEL
1338	help
1339	  MIPS Technologies R4000-series processors other than 4300, including
1340	  the R4000, R4400, R4600, and 4700.
1341
1342config CPU_TX49XX
1343	bool "R49XX"
1344	depends on SYS_HAS_CPU_TX49XX
1345	select CPU_HAS_PREFETCH
1346	select CPU_SUPPORTS_32BIT_KERNEL
1347	select CPU_SUPPORTS_64BIT_KERNEL
1348
1349config CPU_R5000
1350	bool "R5000"
1351	depends on SYS_HAS_CPU_R5000
1352	select CPU_SUPPORTS_32BIT_KERNEL
1353	select CPU_SUPPORTS_64BIT_KERNEL
1354	help
1355	  MIPS Technologies R5000-series processors other than the Nevada.
1356
1357config CPU_R5432
1358	bool "R5432"
1359	depends on SYS_HAS_CPU_R5432
1360	select CPU_SUPPORTS_32BIT_KERNEL
1361	select CPU_SUPPORTS_64BIT_KERNEL
1362
1363config CPU_R5500
1364	bool "R5500"
1365	depends on SYS_HAS_CPU_R5500
1366	select CPU_SUPPORTS_32BIT_KERNEL
1367	select CPU_SUPPORTS_64BIT_KERNEL
1368	select CPU_SUPPORTS_HUGEPAGES
1369	help
1370	  NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1371	  instruction set.
1372
1373config CPU_R6000
1374	bool "R6000"
1375	depends on EXPERIMENTAL
1376	depends on SYS_HAS_CPU_R6000
1377	select CPU_SUPPORTS_32BIT_KERNEL
1378	help
1379	  MIPS Technologies R6000 and R6000A series processors.  Note these
1380	  processors are extremely rare and the support for them is incomplete.
1381
1382config CPU_NEVADA
1383	bool "RM52xx"
1384	depends on SYS_HAS_CPU_NEVADA
1385	select CPU_SUPPORTS_32BIT_KERNEL
1386	select CPU_SUPPORTS_64BIT_KERNEL
1387	help
1388	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1389
1390config CPU_R8000
1391	bool "R8000"
1392	depends on EXPERIMENTAL
1393	depends on SYS_HAS_CPU_R8000
1394	select CPU_HAS_PREFETCH
1395	select CPU_SUPPORTS_64BIT_KERNEL
1396	help
1397	  MIPS Technologies R8000 processors.  Note these processors are
1398	  uncommon and the support for them is incomplete.
1399
1400config CPU_R10000
1401	bool "R10000"
1402	depends on SYS_HAS_CPU_R10000
1403	select CPU_HAS_PREFETCH
1404	select CPU_SUPPORTS_32BIT_KERNEL
1405	select CPU_SUPPORTS_64BIT_KERNEL
1406	select CPU_SUPPORTS_HIGHMEM
1407	help
1408	  MIPS Technologies R10000-series processors.
1409
1410config CPU_RM7000
1411	bool "RM7000"
1412	depends on SYS_HAS_CPU_RM7000
1413	select CPU_HAS_PREFETCH
1414	select CPU_SUPPORTS_32BIT_KERNEL
1415	select CPU_SUPPORTS_64BIT_KERNEL
1416	select CPU_SUPPORTS_HIGHMEM
1417
1418config CPU_RM9000
1419	bool "RM9000"
1420	depends on SYS_HAS_CPU_RM9000
1421	select CPU_HAS_PREFETCH
1422	select CPU_SUPPORTS_32BIT_KERNEL
1423	select CPU_SUPPORTS_64BIT_KERNEL
1424	select CPU_SUPPORTS_HIGHMEM
1425	select WEAK_ORDERING
1426
1427config CPU_SB1
1428	bool "SB1"
1429	depends on SYS_HAS_CPU_SB1
1430	select CPU_SUPPORTS_32BIT_KERNEL
1431	select CPU_SUPPORTS_64BIT_KERNEL
1432	select CPU_SUPPORTS_HIGHMEM
1433	select WEAK_ORDERING
1434
1435config CPU_CAVIUM_OCTEON
1436	bool "Cavium Octeon processor"
1437	depends on SYS_HAS_CPU_CAVIUM_OCTEON
1438	select CPU_HAS_PREFETCH
1439	select CPU_SUPPORTS_64BIT_KERNEL
1440	select SYS_SUPPORTS_SMP
1441	select NR_CPUS_DEFAULT_16
1442	select WEAK_ORDERING
1443	select CPU_SUPPORTS_HIGHMEM
1444	select CPU_SUPPORTS_HUGEPAGES
1445	help
1446	  The Cavium Octeon processor is a highly integrated chip containing
1447	  many ethernet hardware widgets for networking tasks. The processor
1448	  can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1449	  Full details can be found at http://www.caviumnetworks.com.
1450
1451config CPU_BMIPS3300
1452	bool "BMIPS3300"
1453	depends on SYS_HAS_CPU_BMIPS3300
1454	select CPU_BMIPS
1455	help
1456	  Broadcom BMIPS3300 processors.
1457
1458config CPU_BMIPS4350
1459	bool "BMIPS4350"
1460	depends on SYS_HAS_CPU_BMIPS4350
1461	select CPU_BMIPS
1462	select SYS_SUPPORTS_SMP
1463	select SYS_SUPPORTS_HOTPLUG_CPU
1464	help
1465	  Broadcom BMIPS4350 ("VIPER") processors.
1466
1467config CPU_BMIPS4380
1468	bool "BMIPS4380"
1469	depends on SYS_HAS_CPU_BMIPS4380
1470	select CPU_BMIPS
1471	select SYS_SUPPORTS_SMP
1472	select SYS_SUPPORTS_HOTPLUG_CPU
1473	help
1474	  Broadcom BMIPS4380 processors.
1475
1476config CPU_BMIPS5000
1477	bool "BMIPS5000"
1478	depends on SYS_HAS_CPU_BMIPS5000
1479	select CPU_BMIPS
1480	select CPU_SUPPORTS_HIGHMEM
1481	select MIPS_CPU_SCACHE
1482	select SYS_SUPPORTS_SMP
1483	select SYS_SUPPORTS_HOTPLUG_CPU
1484	help
1485	  Broadcom BMIPS5000 processors.
1486
1487config CPU_XLR
1488	bool "Netlogic XLR SoC"
1489	depends on SYS_HAS_CPU_XLR
1490	select CPU_SUPPORTS_32BIT_KERNEL
1491	select CPU_SUPPORTS_64BIT_KERNEL
1492	select CPU_SUPPORTS_HIGHMEM
1493	select WEAK_ORDERING
1494	select WEAK_REORDERING_BEYOND_LLSC
1495	select CPU_SUPPORTS_HUGEPAGES
1496	help
1497	  Netlogic Microsystems XLR/XLS processors.
1498
1499config CPU_XLP
1500	bool "Netlogic XLP SoC"
1501	depends on SYS_HAS_CPU_XLP
1502	select CPU_SUPPORTS_32BIT_KERNEL
1503	select CPU_SUPPORTS_64BIT_KERNEL
1504	select CPU_SUPPORTS_HIGHMEM
1505	select CPU_HAS_LLSC
1506	select WEAK_ORDERING
1507	select WEAK_REORDERING_BEYOND_LLSC
1508	select CPU_HAS_PREFETCH
1509	help
1510	  Netlogic Microsystems XLP processors.
1511endchoice
1512
1513if CPU_LOONGSON2F
1514config CPU_NOP_WORKAROUNDS
1515	bool
1516
1517config CPU_JUMP_WORKAROUNDS
1518	bool
1519
1520config CPU_LOONGSON2F_WORKAROUNDS
1521	bool "Loongson 2F Workarounds"
1522	default y
1523	select CPU_NOP_WORKAROUNDS
1524	select CPU_JUMP_WORKAROUNDS
1525	help
1526	  Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1527	  require workarounds.  Without workarounds the system may hang
1528	  unexpectedly.  For more information please refer to the gas
1529	  -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1530
1531	  Loongson 2F03 and later have fixed these issues and no workarounds
1532	  are needed.  The workarounds have no significant side effect on them
1533	  but may decrease the performance of the system so this option should
1534	  be disabled unless the kernel is intended to be run on 2F01 or 2F02
1535	  systems.
1536
1537	  If unsure, please say Y.
1538endif # CPU_LOONGSON2F
1539
1540config SYS_SUPPORTS_ZBOOT
1541	bool
1542	select HAVE_KERNEL_GZIP
1543	select HAVE_KERNEL_BZIP2
1544	select HAVE_KERNEL_LZMA
1545	select HAVE_KERNEL_LZO
1546
1547config SYS_SUPPORTS_ZBOOT_UART16550
1548	bool
1549	select SYS_SUPPORTS_ZBOOT
1550
1551config CPU_LOONGSON2
1552	bool
1553	select CPU_SUPPORTS_32BIT_KERNEL
1554	select CPU_SUPPORTS_64BIT_KERNEL
1555	select CPU_SUPPORTS_HIGHMEM
1556
1557config CPU_BMIPS
1558	bool
1559	select CPU_MIPS32
1560	select CPU_SUPPORTS_32BIT_KERNEL
1561	select DMA_NONCOHERENT
1562	select IRQ_CPU
1563	select SWAP_IO_SPACE
1564	select WEAK_ORDERING
1565
1566config SYS_HAS_CPU_LOONGSON2E
1567	bool
1568
1569config SYS_HAS_CPU_LOONGSON2F
1570	bool
1571	select CPU_SUPPORTS_CPUFREQ
1572	select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1573	select CPU_SUPPORTS_UNCACHED_ACCELERATED
1574
1575config SYS_HAS_CPU_MIPS32_R1
1576	bool
1577
1578config SYS_HAS_CPU_MIPS32_R2
1579	bool
1580
1581config SYS_HAS_CPU_MIPS64_R1
1582	bool
1583
1584config SYS_HAS_CPU_MIPS64_R2
1585	bool
1586
1587config SYS_HAS_CPU_R3000
1588	bool
1589
1590config SYS_HAS_CPU_TX39XX
1591	bool
1592
1593config SYS_HAS_CPU_VR41XX
1594	bool
1595
1596config SYS_HAS_CPU_R4300
1597	bool
1598
1599config SYS_HAS_CPU_R4X00
1600	bool
1601
1602config SYS_HAS_CPU_TX49XX
1603	bool
1604
1605config SYS_HAS_CPU_R5000
1606	bool
1607
1608config SYS_HAS_CPU_R5432
1609	bool
1610
1611config SYS_HAS_CPU_R5500
1612	bool
1613
1614config SYS_HAS_CPU_R6000
1615	bool
1616
1617config SYS_HAS_CPU_NEVADA
1618	bool
1619
1620config SYS_HAS_CPU_R8000
1621	bool
1622
1623config SYS_HAS_CPU_R10000
1624	bool
1625
1626config SYS_HAS_CPU_RM7000
1627	bool
1628
1629config SYS_HAS_CPU_RM9000
1630	bool
1631
1632config SYS_HAS_CPU_SB1
1633	bool
1634
1635config SYS_HAS_CPU_CAVIUM_OCTEON
1636	bool
1637
1638config SYS_HAS_CPU_BMIPS3300
1639	bool
1640
1641config SYS_HAS_CPU_BMIPS4350
1642	bool
1643
1644config SYS_HAS_CPU_BMIPS4380
1645	bool
1646
1647config SYS_HAS_CPU_BMIPS5000
1648	bool
1649
1650config SYS_HAS_CPU_XLR
1651	bool
1652
1653config SYS_HAS_CPU_XLP
1654	bool
1655
1656#
1657# CPU may reorder R->R, R->W, W->R, W->W
1658# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1659#
1660config WEAK_ORDERING
1661	bool
1662
1663#
1664# CPU may reorder reads and writes beyond LL/SC
1665# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1666#
1667config WEAK_REORDERING_BEYOND_LLSC
1668	bool
1669endmenu
1670
1671#
1672# These two indicate any level of the MIPS32 and MIPS64 architecture
1673#
1674config CPU_MIPS32
1675	bool
1676	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1677
1678config CPU_MIPS64
1679	bool
1680	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1681
1682#
1683# These two indicate the revision of the architecture, either Release 1 or Release 2
1684#
1685config CPU_MIPSR1
1686	bool
1687	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1688
1689config CPU_MIPSR2
1690	bool
1691	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1692
1693config SYS_SUPPORTS_32BIT_KERNEL
1694	bool
1695config SYS_SUPPORTS_64BIT_KERNEL
1696	bool
1697config CPU_SUPPORTS_32BIT_KERNEL
1698	bool
1699config CPU_SUPPORTS_64BIT_KERNEL
1700	bool
1701config CPU_SUPPORTS_CPUFREQ
1702	bool
1703config CPU_SUPPORTS_ADDRWINCFG
1704	bool
1705config CPU_SUPPORTS_HUGEPAGES
1706	bool
1707config CPU_SUPPORTS_UNCACHED_ACCELERATED
1708	bool
1709config MIPS_PGD_C0_CONTEXT
1710	bool
1711	default y if 64BIT && CPU_MIPSR2
1712
1713#
1714# Set to y for ptrace access to watch registers.
1715#
1716config HARDWARE_WATCHPOINTS
1717       bool
1718       default y if CPU_MIPSR1 || CPU_MIPSR2
1719
1720menu "Kernel type"
1721
1722choice
1723
1724	prompt "Kernel code model"
1725	help
1726	  You should only select this option if you have a workload that
1727	  actually benefits from 64-bit processing or if your machine has
1728	  large memory.  You will only be presented a single option in this
1729	  menu if your system does not support both 32-bit and 64-bit kernels.
1730
1731config 32BIT
1732	bool "32-bit kernel"
1733	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1734	select TRAD_SIGNALS
1735	help
1736	  Select this option if you want to build a 32-bit kernel.
1737config 64BIT
1738	bool "64-bit kernel"
1739	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1740	select HAVE_SYSCALL_WRAPPERS
1741	help
1742	  Select this option if you want to build a 64-bit kernel.
1743
1744endchoice
1745
1746choice
1747	prompt "Kernel page size"
1748	default PAGE_SIZE_4KB
1749
1750config PAGE_SIZE_4KB
1751	bool "4kB"
1752	depends on !CPU_LOONGSON2
1753	help
1754	 This option select the standard 4kB Linux page size.  On some
1755	 R3000-family processors this is the only available page size.  Using
1756	 4kB page size will minimize memory consumption and is therefore
1757	 recommended for low memory systems.
1758
1759config PAGE_SIZE_8KB
1760	bool "8kB"
1761	depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1762	help
1763	  Using 8kB page size will result in higher performance kernel at
1764	  the price of higher memory consumption.  This option is available
1765	  only on R8000 and cnMIPS processors.  Note that you will need a
1766	  suitable Linux distribution to support this.
1767
1768config PAGE_SIZE_16KB
1769	bool "16kB"
1770	depends on !CPU_R3000 && !CPU_TX39XX
1771	help
1772	  Using 16kB page size will result in higher performance kernel at
1773	  the price of higher memory consumption.  This option is available on
1774	  all non-R3000 family processors.  Note that you will need a suitable
1775	  Linux distribution to support this.
1776
1777config PAGE_SIZE_32KB
1778	bool "32kB"
1779	depends on CPU_CAVIUM_OCTEON
1780	help
1781	  Using 32kB page size will result in higher performance kernel at
1782	  the price of higher memory consumption.  This option is available
1783	  only on cnMIPS cores.  Note that you will need a suitable Linux
1784	  distribution to support this.
1785
1786config PAGE_SIZE_64KB
1787	bool "64kB"
1788	depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1789	help
1790	  Using 64kB page size will result in higher performance kernel at
1791	  the price of higher memory consumption.  This option is available on
1792	  all non-R3000 family processor.  Not that at the time of this
1793	  writing this option is still high experimental.
1794
1795endchoice
1796
1797config FORCE_MAX_ZONEORDER
1798	int "Maximum zone order"
1799	range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1800	default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1801	range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1802	default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1803	range 11 64
1804	default "11"
1805	help
1806	  The kernel memory allocator divides physically contiguous memory
1807	  blocks into "zones", where each zone is a power of two number of
1808	  pages.  This option selects the largest power of two that the kernel
1809	  keeps in the memory allocator.  If you need to allocate very large
1810	  blocks of physically contiguous memory, then you may need to
1811	  increase this value.
1812
1813	  This config option is actually maximum order plus one. For example,
1814	  a value of 11 means that the largest free memory block is 2^10 pages.
1815
1816	  The page size is not necessarily 4KB.  Keep this in mind
1817	  when choosing a value for this option.
1818
1819config BOARD_SCACHE
1820	bool
1821
1822config IP22_CPU_SCACHE
1823	bool
1824	select BOARD_SCACHE
1825
1826#
1827# Support for a MIPS32 / MIPS64 style S-caches
1828#
1829config MIPS_CPU_SCACHE
1830	bool
1831	select BOARD_SCACHE
1832
1833config R5000_CPU_SCACHE
1834	bool
1835	select BOARD_SCACHE
1836
1837config RM7000_CPU_SCACHE
1838	bool
1839	select BOARD_SCACHE
1840
1841config SIBYTE_DMA_PAGEOPS
1842	bool "Use DMA to clear/copy pages"
1843	depends on CPU_SB1
1844	help
1845	  Instead of using the CPU to zero and copy pages, use a Data Mover
1846	  channel.  These DMA channels are otherwise unused by the standard
1847	  SiByte Linux port.  Seems to give a small performance benefit.
1848
1849config CPU_HAS_PREFETCH
1850	bool
1851
1852choice
1853	prompt "MIPS MT options"
1854
1855config MIPS_MT_DISABLED
1856	bool "Disable multithreading support."
1857	help
1858	  Use this option if your workload can't take advantage of
1859	  MIPS hardware multithreading support.  On systems that don't have
1860	  the option of an MT-enabled processor this option will be the only
1861	  option in this menu.
1862
1863config MIPS_MT_SMP
1864	bool "Use 1 TC on each available VPE for SMP"
1865	depends on SYS_SUPPORTS_MULTITHREADING
1866	select CPU_MIPSR2_IRQ_VI
1867	select CPU_MIPSR2_IRQ_EI
1868	select MIPS_MT
1869	select NR_CPUS_DEFAULT_2
1870	select SMP
1871	select SYS_SUPPORTS_SCHED_SMT if SMP
1872	select SYS_SUPPORTS_SMP
1873	select SMP_UP
1874	help
1875	  This is a kernel model which is known a VSMP but lately has been
1876	  marketesed into SMVP.
1877	  Virtual SMP uses the processor's VPEs  to implement virtual
1878	  processors. In currently available configuration of the 34K processor
1879	  this allows for a dual processor. Both processors will share the same
1880	  primary caches; each will obtain the half of the TLB for it's own
1881	  exclusive use. For a layman this model can be described as similar to
1882	  what Intel calls Hyperthreading.
1883
1884	  For further information see http://www.linux-mips.org/wiki/34K#VSMP
1885
1886config MIPS_MT_SMTC
1887	bool "SMTC: Use all TCs on all VPEs for SMP"
1888	depends on CPU_MIPS32_R2
1889	#depends on CPU_MIPS64_R2		# once there is hardware ...
1890	depends on SYS_SUPPORTS_MULTITHREADING
1891	select CPU_MIPSR2_IRQ_VI
1892	select CPU_MIPSR2_IRQ_EI
1893	select MIPS_MT
1894	select NR_CPUS_DEFAULT_8
1895	select SMP
1896	select SYS_SUPPORTS_SMP
1897	select SMP_UP
1898	help
1899	  This is a kernel model which is known a SMTC or lately has been
1900	  marketesed into SMVP.
1901	  is presenting the available TC's of the core as processors to Linux.
1902	  On currently available 34K processors this means a Linux system will
1903	  see up to 5 processors. The implementation of the SMTC kernel differs
1904	  significantly from VSMP and cannot efficiently coexist in the same
1905	  kernel binary so the choice between VSMP and SMTC is a compile time
1906	  decision.
1907
1908	  For further information see http://www.linux-mips.org/wiki/34K#SMTC
1909
1910endchoice
1911
1912config MIPS_MT
1913	bool
1914
1915config SCHED_SMT
1916	bool "SMT (multithreading) scheduler support"
1917	depends on SYS_SUPPORTS_SCHED_SMT
1918	default n
1919	help
1920	  SMT scheduler support improves the CPU scheduler's decision making
1921	  when dealing with MIPS MT enabled cores at a cost of slightly
1922	  increased overhead in some places. If unsure say N here.
1923
1924config SYS_SUPPORTS_SCHED_SMT
1925	bool
1926
1927
1928config SYS_SUPPORTS_MULTITHREADING
1929	bool
1930
1931config MIPS_MT_FPAFF
1932	bool "Dynamic FPU affinity for FP-intensive threads"
1933	default y
1934	depends on MIPS_MT_SMP || MIPS_MT_SMTC
1935
1936config MIPS_VPE_LOADER
1937	bool "VPE loader support."
1938	depends on SYS_SUPPORTS_MULTITHREADING
1939	select CPU_MIPSR2_IRQ_VI
1940	select CPU_MIPSR2_IRQ_EI
1941	select MIPS_MT
1942	help
1943	  Includes a loader for loading an elf relocatable object
1944	  onto another VPE and running it.
1945
1946config MIPS_MT_SMTC_IM_BACKSTOP
1947	bool "Use per-TC register bits as backstop for inhibited IM bits"
1948	depends on MIPS_MT_SMTC
1949	default n
1950	help
1951	  To support multiple TC microthreads acting as "CPUs" within
1952	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
1953	  during interrupt handling. To support legacy drivers and interrupt
1954	  controller management code, SMTC has a "backstop" to track and
1955	  if necessary restore the interrupt mask. This has some performance
1956	  impact on interrupt service overhead.
1957
1958config MIPS_MT_SMTC_IRQAFF
1959	bool "Support IRQ affinity API"
1960	depends on MIPS_MT_SMTC
1961	default n
1962	help
1963	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1964	  for SMTC Linux kernel. Requires platform support, of which
1965	  an example can be found in the MIPS kernel i8259 and Malta
1966	  platform code.  Adds some overhead to interrupt dispatch, and
1967	  should be used only if you know what you are doing.
1968
1969config MIPS_VPE_LOADER_TOM
1970	bool "Load VPE program into memory hidden from linux"
1971	depends on MIPS_VPE_LOADER
1972	default y
1973	help
1974	  The loader can use memory that is present but has been hidden from
1975	  Linux using the kernel command line option "mem=xxMB". It's up to
1976	  you to ensure the amount you put in the option and the space your
1977	  program requires is less or equal to the amount physically present.
1978
1979# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1980config MIPS_VPE_APSP_API
1981	bool "Enable support for AP/SP API (RTLX)"
1982	depends on MIPS_VPE_LOADER
1983	help
1984
1985config MIPS_APSP_KSPD
1986	bool "Enable KSPD"
1987	depends on MIPS_VPE_APSP_API
1988	default y
1989	help
1990	  KSPD is a kernel daemon that accepts syscall requests from the SP
1991	  side, actions them and returns the results. It also handles the
1992	  "exit" syscall notifying other kernel modules the SP program is
1993	  exiting.  You probably want to say yes here.
1994
1995config MIPS_CMP
1996	bool "MIPS CMP framework support"
1997	depends on SYS_SUPPORTS_MIPS_CMP
1998	select SYNC_R4K
1999	select SYS_SUPPORTS_SMP
2000	select SYS_SUPPORTS_SCHED_SMT if SMP
2001	select WEAK_ORDERING
2002	default n
2003	help
2004	  This is a placeholder option for the GCMP work. It will need to
2005	  be handled differently...
2006
2007config SB1_PASS_1_WORKAROUNDS
2008	bool
2009	depends on CPU_SB1_PASS_1
2010	default y
2011
2012config SB1_PASS_2_WORKAROUNDS
2013	bool
2014	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2015	default y
2016
2017config SB1_PASS_2_1_WORKAROUNDS
2018	bool
2019	depends on CPU_SB1 && CPU_SB1_PASS_2
2020	default y
2021
2022config 64BIT_PHYS_ADDR
2023	bool
2024
2025config ARCH_PHYS_ADDR_T_64BIT
2026       def_bool 64BIT_PHYS_ADDR
2027
2028config CPU_HAS_SMARTMIPS
2029	depends on SYS_SUPPORTS_SMARTMIPS
2030	bool "Support for the SmartMIPS ASE"
2031	help
2032	  SmartMIPS is a extension of the MIPS32 architecture aimed at
2033	  increased security at both hardware and software level for
2034	  smartcards.  Enabling this option will allow proper use of the
2035	  SmartMIPS instructions by Linux applications.  However a kernel with
2036	  this option will not work on a MIPS core without SmartMIPS core.  If
2037	  you don't know you probably don't have SmartMIPS and should say N
2038	  here.
2039
2040config CPU_HAS_WB
2041	bool
2042
2043config XKS01
2044	bool
2045
2046#
2047# Vectored interrupt mode is an R2 feature
2048#
2049config CPU_MIPSR2_IRQ_VI
2050	bool
2051
2052#
2053# Extended interrupt mode is an R2 feature
2054#
2055config CPU_MIPSR2_IRQ_EI
2056	bool
2057
2058config CPU_HAS_SYNC
2059	bool
2060	depends on !CPU_R3000
2061	default y
2062
2063config GENERIC_CLOCKEVENTS_BROADCAST
2064	bool
2065
2066#
2067# CPU non-features
2068#
2069config CPU_DADDI_WORKAROUNDS
2070	bool
2071
2072config CPU_R4000_WORKAROUNDS
2073	bool
2074	select CPU_R4400_WORKAROUNDS
2075
2076config CPU_R4400_WORKAROUNDS
2077	bool
2078
2079#
2080# - Highmem only makes sense for the 32-bit kernel.
2081# - The current highmem code will only work properly on physically indexed
2082#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2083#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2084#   moment we protect the user and offer the highmem option only on machines
2085#   where it's known to be safe.  This will not offer highmem on a few systems
2086#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2087#   indexed CPUs but we're playing safe.
2088# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2089#   know they might have memory configurations that could make use of highmem
2090#   support.
2091#
2092config HIGHMEM
2093	bool "High Memory Support"
2094	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2095
2096config CPU_SUPPORTS_HIGHMEM
2097	bool
2098
2099config SYS_SUPPORTS_HIGHMEM
2100	bool
2101
2102config SYS_SUPPORTS_SMARTMIPS
2103	bool
2104
2105config ARCH_FLATMEM_ENABLE
2106	def_bool y
2107	depends on !NUMA && !CPU_LOONGSON2
2108
2109config ARCH_DISCONTIGMEM_ENABLE
2110	bool
2111	default y if SGI_IP27
2112	help
2113	  Say Y to support efficient handling of discontiguous physical memory,
2114	  for architectures which are either NUMA (Non-Uniform Memory Access)
2115	  or have huge holes in the physical address space for other reasons.
2116	  See <file:Documentation/vm/numa> for more.
2117
2118config ARCH_SPARSEMEM_ENABLE
2119	bool
2120	select SPARSEMEM_STATIC
2121
2122config NUMA
2123	bool "NUMA Support"
2124	depends on SYS_SUPPORTS_NUMA
2125	help
2126	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2127	  Access).  This option improves performance on systems with more
2128	  than two nodes; on two node systems it is generally better to
2129	  leave it disabled; on single node systems disable this option
2130	  disabled.
2131
2132config SYS_SUPPORTS_NUMA
2133	bool
2134
2135config NODES_SHIFT
2136	int
2137	default "6"
2138	depends on NEED_MULTIPLE_NODES
2139
2140config HW_PERF_EVENTS
2141	bool "Enable hardware performance counter support for perf events"
2142	depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON)
2143	default y
2144	help
2145	  Enable hardware performance counter support for perf events. If
2146	  disabled, perf events will use software events only.
2147
2148source "mm/Kconfig"
2149
2150config SMP
2151	bool "Multi-Processing support"
2152	depends on SYS_SUPPORTS_SMP
2153	select IRQ_PER_CPU
2154	select USE_GENERIC_SMP_HELPERS
2155	help
2156	  This enables support for systems with more than one CPU. If you have
2157	  a system with only one CPU, like most personal computers, say N. If
2158	  you have a system with more than one CPU, say Y.
2159
2160	  If you say N here, the kernel will run on single and multiprocessor
2161	  machines, but will use only one CPU of a multiprocessor machine. If
2162	  you say Y here, the kernel will run on many, but not all,
2163	  singleprocessor machines. On a singleprocessor machine, the kernel
2164	  will run faster if you say N here.
2165
2166	  People using multiprocessor machines who say Y here should also say
2167	  Y to "Enhanced Real Time Clock Support", below.
2168
2169	  See also the SMP-HOWTO available at
2170	  <http://www.tldp.org/docs.html#howto>.
2171
2172	  If you don't know what to do here, say N.
2173
2174config SMP_UP
2175	bool
2176
2177config SYS_SUPPORTS_MIPS_CMP
2178	bool
2179
2180config SYS_SUPPORTS_SMP
2181	bool
2182
2183config NR_CPUS_DEFAULT_1
2184	bool
2185
2186config NR_CPUS_DEFAULT_2
2187	bool
2188
2189config NR_CPUS_DEFAULT_4
2190	bool
2191
2192config NR_CPUS_DEFAULT_8
2193	bool
2194
2195config NR_CPUS_DEFAULT_16
2196	bool
2197
2198config NR_CPUS_DEFAULT_32
2199	bool
2200
2201config NR_CPUS_DEFAULT_64
2202	bool
2203
2204config NR_CPUS
2205	int "Maximum number of CPUs (2-64)"
2206	range 1 64 if NR_CPUS_DEFAULT_1
2207	depends on SMP
2208	default "1" if NR_CPUS_DEFAULT_1
2209	default "2" if NR_CPUS_DEFAULT_2
2210	default "4" if NR_CPUS_DEFAULT_4
2211	default "8" if NR_CPUS_DEFAULT_8
2212	default "16" if NR_CPUS_DEFAULT_16
2213	default "32" if NR_CPUS_DEFAULT_32
2214	default "64" if NR_CPUS_DEFAULT_64
2215	help
2216	  This allows you to specify the maximum number of CPUs which this
2217	  kernel will support.  The maximum supported value is 32 for 32-bit
2218	  kernel and 64 for 64-bit kernels; the minimum value which makes
2219	  sense is 1 for Qemu (useful only for kernel debugging purposes)
2220	  and 2 for all others.
2221
2222	  This is purely to save memory - each supported CPU adds
2223	  approximately eight kilobytes to the kernel image.  For best
2224	  performance should round up your number of processors to the next
2225	  power of two.
2226
2227source "kernel/time/Kconfig"
2228
2229#
2230# Timer Interrupt Frequency Configuration
2231#
2232
2233choice
2234	prompt "Timer frequency"
2235	default HZ_250
2236	help
2237	 Allows the configuration of the timer frequency.
2238
2239	config HZ_48
2240		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2241
2242	config HZ_100
2243		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2244
2245	config HZ_128
2246		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2247
2248	config HZ_250
2249		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2250
2251	config HZ_256
2252		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2253
2254	config HZ_1000
2255		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2256
2257	config HZ_1024
2258		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2259
2260endchoice
2261
2262config SYS_SUPPORTS_48HZ
2263	bool
2264
2265config SYS_SUPPORTS_100HZ
2266	bool
2267
2268config SYS_SUPPORTS_128HZ
2269	bool
2270
2271config SYS_SUPPORTS_250HZ
2272	bool
2273
2274config SYS_SUPPORTS_256HZ
2275	bool
2276
2277config SYS_SUPPORTS_1000HZ
2278	bool
2279
2280config SYS_SUPPORTS_1024HZ
2281	bool
2282
2283config SYS_SUPPORTS_ARBIT_HZ
2284	bool
2285	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2286		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2287		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2288		     !SYS_SUPPORTS_1024HZ
2289
2290config HZ
2291	int
2292	default 48 if HZ_48
2293	default 100 if HZ_100
2294	default 128 if HZ_128
2295	default 250 if HZ_250
2296	default 256 if HZ_256
2297	default 1000 if HZ_1000
2298	default 1024 if HZ_1024
2299
2300source "kernel/Kconfig.preempt"
2301
2302config KEXEC
2303	bool "Kexec system call (EXPERIMENTAL)"
2304	depends on EXPERIMENTAL
2305	help
2306	  kexec is a system call that implements the ability to shutdown your
2307	  current kernel, and to start another kernel.  It is like a reboot
2308	  but it is independent of the system firmware.   And like a reboot
2309	  you can start any kernel with it, not just Linux.
2310
2311	  The name comes from the similarity to the exec system call.
2312
2313	  It is an ongoing process to be certain the hardware in a machine
2314	  is properly shutdown, so do not be surprised if this code does not
2315	  initially work for you.  It may help to enable device hotplugging
2316	  support.  As of this writing the exact hardware interface is
2317	  strongly in flux, so no good recommendation can be made.
2318
2319config SECCOMP
2320	bool "Enable seccomp to safely compute untrusted bytecode"
2321	depends on PROC_FS
2322	default y
2323	help
2324	  This kernel feature is useful for number crunching applications
2325	  that may need to compute untrusted bytecode during their
2326	  execution. By using pipes or other transports made available to
2327	  the process as file descriptors supporting the read/write
2328	  syscalls, it's possible to isolate those applications in
2329	  their own address space using seccomp. Once seccomp is
2330	  enabled via /proc/<pid>/seccomp, it cannot be disabled
2331	  and the task is only allowed to execute a few safe syscalls
2332	  defined by each seccomp mode.
2333
2334	  If unsure, say Y. Only embedded should say N here.
2335
2336config USE_OF
2337	bool "Flattened Device Tree support"
2338	select OF
2339	select OF_EARLY_FLATTREE
2340	select IRQ_DOMAIN
2341	help
2342	  Include support for flattened device tree machine descriptions.
2343
2344endmenu
2345
2346config LOCKDEP_SUPPORT
2347	bool
2348	default y
2349
2350config STACKTRACE_SUPPORT
2351	bool
2352	default y
2353
2354source "init/Kconfig"
2355
2356source "kernel/Kconfig.freezer"
2357
2358menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2359
2360config HW_HAS_EISA
2361	bool
2362config HW_HAS_PCI
2363	bool
2364
2365config PCI
2366	bool "Support for PCI controller"
2367	depends on HW_HAS_PCI
2368	select PCI_DOMAINS
2369	select NO_GENERIC_PCI_IOPORT_MAP
2370	help
2371	  Find out whether you have a PCI motherboard. PCI is the name of a
2372	  bus system, i.e. the way the CPU talks to the other stuff inside
2373	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2374	  say Y, otherwise N.
2375
2376config PCI_DOMAINS
2377	bool
2378
2379source "drivers/pci/Kconfig"
2380
2381#
2382# ISA support is now enabled via select.  Too many systems still have the one
2383# or other ISA chip on the board that users don't know about so don't expect
2384# users to choose the right thing ...
2385#
2386config ISA
2387	bool
2388
2389config EISA
2390	bool "EISA support"
2391	depends on HW_HAS_EISA
2392	select ISA
2393	select GENERIC_ISA_DMA
2394	---help---
2395	  The Extended Industry Standard Architecture (EISA) bus was
2396	  developed as an open alternative to the IBM MicroChannel bus.
2397
2398	  The EISA bus provided some of the features of the IBM MicroChannel
2399	  bus while maintaining backward compatibility with cards made for
2400	  the older ISA bus.  The EISA bus saw limited use between 1988 and
2401	  1995 when it was made obsolete by the PCI bus.
2402
2403	  Say Y here if you are building a kernel for an EISA-based machine.
2404
2405	  Otherwise, say N.
2406
2407source "drivers/eisa/Kconfig"
2408
2409config TC
2410	bool "TURBOchannel support"
2411	depends on MACH_DECSTATION
2412	help
2413	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2414	  processors.  TURBOchannel programming specifications are available
2415	  at:
2416	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2417	  and:
2418	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2419	  Linux driver support status is documented at:
2420	  <http://www.linux-mips.org/wiki/DECstation>
2421
2422config MMU
2423	bool
2424	default y
2425
2426config I8253
2427	bool
2428	select CLKSRC_I8253
2429	select CLKEVT_I8253
2430	select MIPS_EXTERNAL_TIMER
2431
2432config ZONE_DMA32
2433	bool
2434
2435source "drivers/pcmcia/Kconfig"
2436
2437source "drivers/pci/hotplug/Kconfig"
2438
2439config RAPIDIO
2440	bool "RapidIO support"
2441	depends on PCI
2442	default n
2443	help
2444	  If you say Y here, the kernel will include drivers and
2445	  infrastructure code to support RapidIO interconnect devices.
2446
2447source "drivers/rapidio/Kconfig"
2448
2449endmenu
2450
2451menu "Executable file formats"
2452
2453source "fs/Kconfig.binfmt"
2454
2455config TRAD_SIGNALS
2456	bool
2457
2458config MIPS32_COMPAT
2459	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2460	depends on 64BIT
2461	help
2462	  Select this option if you want Linux/MIPS 32-bit binary
2463	  compatibility. Since all software available for Linux/MIPS is
2464	  currently 32-bit you should say Y here.
2465
2466config COMPAT
2467	bool
2468	depends on MIPS32_COMPAT
2469	select ARCH_WANT_OLD_COMPAT_IPC
2470	default y
2471
2472config SYSVIPC_COMPAT
2473	bool
2474	depends on COMPAT && SYSVIPC
2475	default y
2476
2477config MIPS32_O32
2478	bool "Kernel support for o32 binaries"
2479	depends on MIPS32_COMPAT
2480	help
2481	  Select this option if you want to run o32 binaries.  These are pure
2482	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2483	  existing binaries are in this format.
2484
2485	  If unsure, say Y.
2486
2487config MIPS32_N32
2488	bool "Kernel support for n32 binaries"
2489	depends on MIPS32_COMPAT
2490	help
2491	  Select this option if you want to run n32 binaries.  These are
2492	  64-bit binaries using 32-bit quantities for addressing and certain
2493	  data that would normally be 64-bit.  They are used in special
2494	  cases.
2495
2496	  If unsure, say N.
2497
2498config BINFMT_ELF32
2499	bool
2500	default y if MIPS32_O32 || MIPS32_N32
2501
2502endmenu
2503
2504menu "Power management options"
2505
2506config ARCH_HIBERNATION_POSSIBLE
2507	def_bool y
2508	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2509
2510config ARCH_SUSPEND_POSSIBLE
2511	def_bool y
2512	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2513
2514source "kernel/power/Kconfig"
2515
2516endmenu
2517
2518source "arch/mips/kernel/cpufreq/Kconfig"
2519
2520source "net/Kconfig"
2521
2522source "drivers/Kconfig"
2523
2524source "fs/Kconfig"
2525
2526source "arch/mips/Kconfig.debug"
2527
2528source "security/Kconfig"
2529
2530source "crypto/Kconfig"
2531
2532source "lib/Kconfig"
2533