xref: /openbmc/linux/arch/mips/Kconfig (revision 609e478b)
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	select MIPS_CPC
2070	bool
2071
2072config MIPS_GIC_IPI
2073	bool
2074
2075config MIPS_CM
2076	bool
2077
2078config MIPS_CPC
2079	bool
2080
2081config SB1_PASS_1_WORKAROUNDS
2082	bool
2083	depends on CPU_SB1_PASS_1
2084	default y
2085
2086config SB1_PASS_2_WORKAROUNDS
2087	bool
2088	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2089	default y
2090
2091config SB1_PASS_2_1_WORKAROUNDS
2092	bool
2093	depends on CPU_SB1 && CPU_SB1_PASS_2
2094	default y
2095
2096
2097config 64BIT_PHYS_ADDR
2098	bool
2099
2100config ARCH_PHYS_ADDR_T_64BIT
2101       def_bool 64BIT_PHYS_ADDR
2102
2103config CPU_HAS_SMARTMIPS
2104	depends on SYS_SUPPORTS_SMARTMIPS
2105	bool "Support for the SmartMIPS ASE"
2106	help
2107	  SmartMIPS is a extension of the MIPS32 architecture aimed at
2108	  increased security at both hardware and software level for
2109	  smartcards.  Enabling this option will allow proper use of the
2110	  SmartMIPS instructions by Linux applications.  However a kernel with
2111	  this option will not work on a MIPS core without SmartMIPS core.  If
2112	  you don't know you probably don't have SmartMIPS and should say N
2113	  here.
2114
2115config CPU_MICROMIPS
2116	depends on SYS_SUPPORTS_MICROMIPS
2117	bool "Build kernel using microMIPS ISA"
2118	help
2119	  When this option is enabled the kernel will be built using the
2120	  microMIPS ISA
2121
2122config CPU_HAS_MSA
2123	bool "Support for the MIPS SIMD Architecture (EXPERIMENTAL)"
2124	depends on CPU_SUPPORTS_MSA
2125	depends on 64BIT || MIPS_O32_FP64_SUPPORT
2126	help
2127	  MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2128	  and a set of SIMD instructions to operate on them. When this option
2129	  is enabled the kernel will support allocating & switching MSA
2130	  vector register contexts. If you know that your kernel will only be
2131	  running on CPUs which do not support MSA or that your userland will
2132	  not be making use of it then you may wish to say N here to reduce
2133	  the size & complexity of your kernel.
2134
2135	  If unsure, say Y.
2136
2137config CPU_HAS_WB
2138	bool
2139
2140config XKS01
2141	bool
2142
2143#
2144# Vectored interrupt mode is an R2 feature
2145#
2146config CPU_MIPSR2_IRQ_VI
2147	bool
2148
2149#
2150# Extended interrupt mode is an R2 feature
2151#
2152config CPU_MIPSR2_IRQ_EI
2153	bool
2154
2155config CPU_HAS_SYNC
2156	bool
2157	depends on !CPU_R3000
2158	default y
2159
2160#
2161# CPU non-features
2162#
2163config CPU_DADDI_WORKAROUNDS
2164	bool
2165
2166config CPU_R4000_WORKAROUNDS
2167	bool
2168	select CPU_R4400_WORKAROUNDS
2169
2170config CPU_R4400_WORKAROUNDS
2171	bool
2172
2173#
2174# - Highmem only makes sense for the 32-bit kernel.
2175# - The current highmem code will only work properly on physically indexed
2176#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2177#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2178#   moment we protect the user and offer the highmem option only on machines
2179#   where it's known to be safe.  This will not offer highmem on a few systems
2180#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2181#   indexed CPUs but we're playing safe.
2182# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2183#   know they might have memory configurations that could make use of highmem
2184#   support.
2185#
2186config HIGHMEM
2187	bool "High Memory Support"
2188	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
2189
2190config CPU_SUPPORTS_HIGHMEM
2191	bool
2192
2193config SYS_SUPPORTS_HIGHMEM
2194	bool
2195
2196config SYS_SUPPORTS_SMARTMIPS
2197	bool
2198
2199config SYS_SUPPORTS_MICROMIPS
2200	bool
2201
2202config SYS_SUPPORTS_MIPS16
2203	bool
2204	help
2205	  This option must be set if a kernel might be executed on a MIPS16-
2206	  enabled CPU even if MIPS16 is not actually being used.  In other
2207	  words, it makes the kernel MIPS16-tolerant.
2208
2209config CPU_SUPPORTS_MSA
2210	bool
2211
2212config ARCH_FLATMEM_ENABLE
2213	def_bool y
2214	depends on !NUMA && !CPU_LOONGSON2
2215
2216config ARCH_DISCONTIGMEM_ENABLE
2217	bool
2218	default y if SGI_IP27
2219	help
2220	  Say Y to support efficient handling of discontiguous physical memory,
2221	  for architectures which are either NUMA (Non-Uniform Memory Access)
2222	  or have huge holes in the physical address space for other reasons.
2223	  See <file:Documentation/vm/numa> for more.
2224
2225config ARCH_SPARSEMEM_ENABLE
2226	bool
2227	select SPARSEMEM_STATIC
2228
2229config NUMA
2230	bool "NUMA Support"
2231	depends on SYS_SUPPORTS_NUMA
2232	help
2233	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2234	  Access).  This option improves performance on systems with more
2235	  than two nodes; on two node systems it is generally better to
2236	  leave it disabled; on single node systems disable this option
2237	  disabled.
2238
2239config SYS_SUPPORTS_NUMA
2240	bool
2241
2242config NODES_SHIFT
2243	int
2244	default "6"
2245	depends on NEED_MULTIPLE_NODES
2246
2247config HW_PERF_EVENTS
2248	bool "Enable hardware performance counter support for perf events"
2249	depends on PERF_EVENTS && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
2250	default y
2251	help
2252	  Enable hardware performance counter support for perf events. If
2253	  disabled, perf events will use software events only.
2254
2255source "mm/Kconfig"
2256
2257config SMP
2258	bool "Multi-Processing support"
2259	depends on SYS_SUPPORTS_SMP
2260	help
2261	  This enables support for systems with more than one CPU. If you have
2262	  a system with only one CPU, say N. If you have a system with more
2263	  than one CPU, say Y.
2264
2265	  If you say N here, the kernel will run on uni- and multiprocessor
2266	  machines, but will use only one CPU of a multiprocessor machine. If
2267	  you say Y here, the kernel will run on many, but not all,
2268	  uniprocessor machines. On a uniprocessor machine, the kernel
2269	  will run faster if you say N here.
2270
2271	  People using multiprocessor machines who say Y here should also say
2272	  Y to "Enhanced Real Time Clock Support", below.
2273
2274	  See also the SMP-HOWTO available at
2275	  <http://www.tldp.org/docs.html#howto>.
2276
2277	  If you don't know what to do here, say N.
2278
2279config SMP_UP
2280	bool
2281
2282config SYS_SUPPORTS_MIPS_CMP
2283	bool
2284
2285config SYS_SUPPORTS_MIPS_CPS
2286	bool
2287
2288config SYS_SUPPORTS_SMP
2289	bool
2290
2291config NR_CPUS_DEFAULT_4
2292	bool
2293
2294config NR_CPUS_DEFAULT_8
2295	bool
2296
2297config NR_CPUS_DEFAULT_16
2298	bool
2299
2300config NR_CPUS_DEFAULT_32
2301	bool
2302
2303config NR_CPUS_DEFAULT_64
2304	bool
2305
2306config NR_CPUS
2307	int "Maximum number of CPUs (2-256)"
2308	range 2 256
2309	depends on SMP
2310	default "4" if NR_CPUS_DEFAULT_4
2311	default "8" if NR_CPUS_DEFAULT_8
2312	default "16" if NR_CPUS_DEFAULT_16
2313	default "32" if NR_CPUS_DEFAULT_32
2314	default "64" if NR_CPUS_DEFAULT_64
2315	help
2316	  This allows you to specify the maximum number of CPUs which this
2317	  kernel will support.  The maximum supported value is 32 for 32-bit
2318	  kernel and 64 for 64-bit kernels; the minimum value which makes
2319	  sense is 1 for Qemu (useful only for kernel debugging purposes)
2320	  and 2 for all others.
2321
2322	  This is purely to save memory - each supported CPU adds
2323	  approximately eight kilobytes to the kernel image.  For best
2324	  performance should round up your number of processors to the next
2325	  power of two.
2326
2327config MIPS_PERF_SHARED_TC_COUNTERS
2328	bool
2329
2330#
2331# Timer Interrupt Frequency Configuration
2332#
2333
2334choice
2335	prompt "Timer frequency"
2336	default HZ_250
2337	help
2338	 Allows the configuration of the timer frequency.
2339
2340	config HZ_48
2341		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2342
2343	config HZ_100
2344		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2345
2346	config HZ_128
2347		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2348
2349	config HZ_250
2350		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2351
2352	config HZ_256
2353		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2354
2355	config HZ_1000
2356		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2357
2358	config HZ_1024
2359		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2360
2361endchoice
2362
2363config SYS_SUPPORTS_48HZ
2364	bool
2365
2366config SYS_SUPPORTS_100HZ
2367	bool
2368
2369config SYS_SUPPORTS_128HZ
2370	bool
2371
2372config SYS_SUPPORTS_250HZ
2373	bool
2374
2375config SYS_SUPPORTS_256HZ
2376	bool
2377
2378config SYS_SUPPORTS_1000HZ
2379	bool
2380
2381config SYS_SUPPORTS_1024HZ
2382	bool
2383
2384config SYS_SUPPORTS_ARBIT_HZ
2385	bool
2386	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2387		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2388		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2389		     !SYS_SUPPORTS_1024HZ
2390
2391config HZ
2392	int
2393	default 48 if HZ_48
2394	default 100 if HZ_100
2395	default 128 if HZ_128
2396	default 250 if HZ_250
2397	default 256 if HZ_256
2398	default 1000 if HZ_1000
2399	default 1024 if HZ_1024
2400
2401source "kernel/Kconfig.preempt"
2402
2403config KEXEC
2404	bool "Kexec system call"
2405	help
2406	  kexec is a system call that implements the ability to shutdown your
2407	  current kernel, and to start another kernel.  It is like a reboot
2408	  but it is independent of the system firmware.   And like a reboot
2409	  you can start any kernel with it, not just Linux.
2410
2411	  The name comes from the similarity to the exec system call.
2412
2413	  It is an ongoing process to be certain the hardware in a machine
2414	  is properly shutdown, so do not be surprised if this code does not
2415	  initially work for you.  As of this writing the exact hardware
2416	  interface is strongly in flux, so no good recommendation can be
2417	  made.
2418
2419config CRASH_DUMP
2420	  bool "Kernel crash dumps"
2421	  help
2422	  Generate crash dump after being started by kexec.
2423	  This should be normally only set in special crash dump kernels
2424	  which are loaded in the main kernel with kexec-tools into
2425	  a specially reserved region and then later executed after
2426	  a crash by kdump/kexec. The crash dump kernel must be compiled
2427	  to a memory address not used by the main kernel or firmware using
2428	  PHYSICAL_START.
2429
2430config PHYSICAL_START
2431	  hex "Physical address where the kernel is loaded"
2432	  default "0xffffffff84000000" if 64BIT
2433	  default "0x84000000" if 32BIT
2434	  depends on CRASH_DUMP
2435	  help
2436	  This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2437	  If you plan to use kernel for capturing the crash dump change
2438	  this value to start of the reserved region (the "X" value as
2439	  specified in the "crashkernel=YM@XM" command line boot parameter
2440	  passed to the panic-ed kernel).
2441
2442config SECCOMP
2443	bool "Enable seccomp to safely compute untrusted bytecode"
2444	depends on PROC_FS
2445	default y
2446	help
2447	  This kernel feature is useful for number crunching applications
2448	  that may need to compute untrusted bytecode during their
2449	  execution. By using pipes or other transports made available to
2450	  the process as file descriptors supporting the read/write
2451	  syscalls, it's possible to isolate those applications in
2452	  their own address space using seccomp. Once seccomp is
2453	  enabled via /proc/<pid>/seccomp, it cannot be disabled
2454	  and the task is only allowed to execute a few safe syscalls
2455	  defined by each seccomp mode.
2456
2457	  If unsure, say Y. Only embedded should say N here.
2458
2459config MIPS_O32_FP64_SUPPORT
2460	bool "Support for O32 binaries using 64-bit FP (EXPERIMENTAL)"
2461	depends on 32BIT || MIPS32_O32
2462	help
2463	  When this is enabled, the kernel will support use of 64-bit floating
2464	  point registers with binaries using the O32 ABI along with the
2465	  EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
2466	  32-bit MIPS systems this support is at the cost of increasing the
2467	  size and complexity of the compiled FPU emulator. Thus if you are
2468	  running a MIPS32 system and know that none of your userland binaries
2469	  will require 64-bit floating point, you may wish to reduce the size
2470	  of your kernel & potentially improve FP emulation performance by
2471	  saying N here.
2472
2473	  Although binutils currently supports use of this flag the details
2474	  concerning its effect upon the O32 ABI in userland are still being
2475	  worked on. In order to avoid userland becoming dependant upon current
2476	  behaviour before the details have been finalised, this option should
2477	  be considered experimental and only enabled by those working upon
2478	  said details.
2479
2480	  If unsure, say N.
2481
2482config USE_OF
2483	bool
2484	select OF
2485	select OF_EARLY_FLATTREE
2486	select IRQ_DOMAIN
2487
2488config BUILTIN_DTB
2489	bool
2490
2491endmenu
2492
2493config LOCKDEP_SUPPORT
2494	bool
2495	default y
2496
2497config STACKTRACE_SUPPORT
2498	bool
2499	default y
2500
2501source "init/Kconfig"
2502
2503source "kernel/Kconfig.freezer"
2504
2505menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2506
2507config HW_HAS_EISA
2508	bool
2509config HW_HAS_PCI
2510	bool
2511
2512config PCI
2513	bool "Support for PCI controller"
2514	depends on HW_HAS_PCI
2515	select PCI_DOMAINS
2516	select NO_GENERIC_PCI_IOPORT_MAP
2517	help
2518	  Find out whether you have a PCI motherboard. PCI is the name of a
2519	  bus system, i.e. the way the CPU talks to the other stuff inside
2520	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2521	  say Y, otherwise N.
2522
2523config HT_PCI
2524	bool "Support for HT-linked PCI"
2525	default y
2526	depends on CPU_LOONGSON3
2527	select PCI
2528	select PCI_DOMAINS
2529	help
2530	  Loongson family machines use Hyper-Transport bus for inter-core
2531	  connection and device connection. The PCI bus is a subordinate
2532	  linked at HT. Choose Y for Loongson-3 based machines.
2533
2534config PCI_DOMAINS
2535	bool
2536
2537source "drivers/pci/Kconfig"
2538
2539source "drivers/pci/pcie/Kconfig"
2540
2541#
2542# ISA support is now enabled via select.  Too many systems still have the one
2543# or other ISA chip on the board that users don't know about so don't expect
2544# users to choose the right thing ...
2545#
2546config ISA
2547	bool
2548
2549config EISA
2550	bool "EISA support"
2551	depends on HW_HAS_EISA
2552	select ISA
2553	select GENERIC_ISA_DMA
2554	---help---
2555	  The Extended Industry Standard Architecture (EISA) bus was
2556	  developed as an open alternative to the IBM MicroChannel bus.
2557
2558	  The EISA bus provided some of the features of the IBM MicroChannel
2559	  bus while maintaining backward compatibility with cards made for
2560	  the older ISA bus.  The EISA bus saw limited use between 1988 and
2561	  1995 when it was made obsolete by the PCI bus.
2562
2563	  Say Y here if you are building a kernel for an EISA-based machine.
2564
2565	  Otherwise, say N.
2566
2567source "drivers/eisa/Kconfig"
2568
2569config TC
2570	bool "TURBOchannel support"
2571	depends on MACH_DECSTATION
2572	help
2573	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2574	  processors.  TURBOchannel programming specifications are available
2575	  at:
2576	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2577	  and:
2578	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2579	  Linux driver support status is documented at:
2580	  <http://www.linux-mips.org/wiki/DECstation>
2581
2582config MMU
2583	bool
2584	default y
2585
2586config I8253
2587	bool
2588	select CLKSRC_I8253
2589	select CLKEVT_I8253
2590	select MIPS_EXTERNAL_TIMER
2591
2592config ZONE_DMA
2593	bool
2594
2595config ZONE_DMA32
2596	bool
2597
2598source "drivers/pcmcia/Kconfig"
2599
2600source "drivers/pci/hotplug/Kconfig"
2601
2602config RAPIDIO
2603	tristate "RapidIO support"
2604	depends on PCI
2605	default n
2606	help
2607	  If you say Y here, the kernel will include drivers and
2608	  infrastructure code to support RapidIO interconnect devices.
2609
2610source "drivers/rapidio/Kconfig"
2611
2612endmenu
2613
2614menu "Executable file formats"
2615
2616source "fs/Kconfig.binfmt"
2617
2618config TRAD_SIGNALS
2619	bool
2620
2621config MIPS32_COMPAT
2622	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2623	depends on 64BIT
2624	help
2625	  Select this option if you want Linux/MIPS 32-bit binary
2626	  compatibility. Since all software available for Linux/MIPS is
2627	  currently 32-bit you should say Y here.
2628
2629config COMPAT
2630	bool
2631	depends on MIPS32_COMPAT
2632	select ARCH_WANT_OLD_COMPAT_IPC
2633	default y
2634
2635config SYSVIPC_COMPAT
2636	bool
2637	depends on COMPAT && SYSVIPC
2638	default y
2639
2640config MIPS32_O32
2641	bool "Kernel support for o32 binaries"
2642	depends on MIPS32_COMPAT
2643	help
2644	  Select this option if you want to run o32 binaries.  These are pure
2645	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2646	  existing binaries are in this format.
2647
2648	  If unsure, say Y.
2649
2650config MIPS32_N32
2651	bool "Kernel support for n32 binaries"
2652	depends on MIPS32_COMPAT
2653	help
2654	  Select this option if you want to run n32 binaries.  These are
2655	  64-bit binaries using 32-bit quantities for addressing and certain
2656	  data that would normally be 64-bit.  They are used in special
2657	  cases.
2658
2659	  If unsure, say N.
2660
2661config BINFMT_ELF32
2662	bool
2663	default y if MIPS32_O32 || MIPS32_N32
2664
2665endmenu
2666
2667menu "Power management options"
2668
2669config ARCH_HIBERNATION_POSSIBLE
2670	def_bool y
2671	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2672
2673config ARCH_SUSPEND_POSSIBLE
2674	def_bool y
2675	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2676
2677source "kernel/power/Kconfig"
2678
2679endmenu
2680
2681config MIPS_EXTERNAL_TIMER
2682	bool
2683
2684menu "CPU Power Management"
2685
2686if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
2687source "drivers/cpufreq/Kconfig"
2688endif
2689
2690source "drivers/cpuidle/Kconfig"
2691
2692endmenu
2693
2694source "net/Kconfig"
2695
2696source "drivers/Kconfig"
2697
2698source "drivers/firmware/Kconfig"
2699
2700source "fs/Kconfig"
2701
2702source "arch/mips/Kconfig.debug"
2703
2704source "security/Kconfig"
2705
2706source "crypto/Kconfig"
2707
2708source "lib/Kconfig"
2709
2710source "arch/mips/kvm/Kconfig"
2711