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