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