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