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